您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

软件测试中的可用性、可维护性、可靠性有什么区别?

时间:2022-07-28 15:57:04  来源:  作者:软件测评闲聊站

我们生活在一个用户依赖于对服务的一致访问的可靠性时代。在相互竞争的服务之间进行选择时,对用户来说,没有比可靠性更重要的特性了。但是可靠性是什么意思呢?

为了回答这个问题,我们将根据可靠性工程中的其他度量来分解可靠性:可用性和可维护性。区分这些术语并不是语义问题。了解这些差异可以帮助您更好地将开发工作的优先级放在客户的满意度上。

可用性

可用性是可靠性最简单的组成部分。此度量描述服务运行的时间百分比,这也被称为服务的“正常运行时间”。可用性可以通过连续查询服务并以预期的速度和准确性确认返回的响应来监控。

服务的可用性是用户感知可靠性的主要因素。考虑到这一点,设定一个100%正常运行时间的目标是很诱人的。但是SRE告诉我们失败是不可避免的;导致停机的事故总是发生在工程预期之外。可用性通常用“9”表示,表示正常运行时间的百分比可以达到多少位小数。一些主要的软件公司会吹嘘自己的“5个9”或者99.99%的正常运行时间,但永远不会有可确保的100%的正常运行时间。

此外,用户是可以容忍甚至无法注意到服务的某些领域出现宕机。致力于改善超出预期的可用性的开发资源并不会增加客户的满意度,把这些资源用在可维护性上会更好。

可维护性

可靠性的另一个主要组成部分是可维护性。通过描述停机时间的产生和解决方式,将可维护性因素考虑到可用性中。当发生导致停机的事件时,可维护服务可以快速修复。事件越早得到解决,服务就越快恢复可用。

可维护性有两个主要组成部分:主动式可维护性和反应式可维护性。

主动式可维护性包括构建易于理解和更改的代码库。随着开发的进行,会出现与现有代码不兼容的问题。如果工程师写的是面条式代码,而不是优先考虑可维护性,就容易出问题,并且很难发现和解决问题。主动维护还包括质量保证和测试等程序。

反应式可维护性描述了服务在事故发生后被修复的能力。这受服务的事故响应过程的影响。大型事故的反应和防范是必要的,如果事故响应程序可靠,团队将迅速解决事件。适当的事故反应也有助于减少复发。高度可维护的服务允许工程师有效地汲取这些经验教训。

可维护性反映在可用性指标中。缩短停机时间或停机频率可以提高可用性。但是,可维护性不是实现可用性的唯一手段。采取这种方法可能导致发展资源分配不当。在可维护性方面的投资可能不会立即带来更好的正常运行时间。当您重构旧代码以解决技术债务时,服务的功能将与以前相同,并具有相同的可用性。直到事件发生,您才会看到这种高可维护性的好处。可维护性应该被看作是可靠性方面的投资,而不仅仅是可用性的一个组成部分。

可靠性

可靠性可以定义为当用户访问服务时,服务按预期运行的可能性。这似乎与我们定义可用性的方式相同,但有关键的区别。可用性检查服务是否工作,用户是否正在访问它。如果用户在所有时间、所有功能上统一访问服务,可用性将决定可靠性。一般情况下,这不可能发生。

以两种情形为例:

服务A:

用户登录页面的可用性为97%

目录搜索的可用性为97%

站点设置页面的可用性为97%

服务B:

用户登录页面具有可用性为99%

目录搜索的可用性为98%

网站设置页面的可用性为90%

仅从可用性度量来看,服务A胜出。但是如果登录页面被100%的用户使用,目录搜索被90%的用户使用,而站点设置页面只有30%的用户使用,那么服务B就会被认为更可靠。可靠性需要考虑实际使用情况,将可用性指标转化为客户满意度的度量指标。

通过理解系统的可靠性,开发人员可以避免浪费时间来改进超出客户预期的可用性。服务级别指标将延迟和可用性等指标捆绑到更有效的度量中。然后将服务水平目标设定在顾客不满意的阈值。这种方法从客户的角度来看可靠性,因为对他们来说,服务的可靠性比它的可用性更重要。

可维护性也可以通过这种标准来评估。响应事件所花费的时间耗尽了服务正常运行时间的错误预算……SLI和SLO可以帮助分配开发工作,以改进可维护性和最影响客户满意度的事件响应过程。

可靠性不仅仅是度量的集合或代码库的质量。这是一个全局概念,包含了用户的观点、变化和增长的必然性以及开发代码的人员。这种整体方法是SRE的基础,是实践的集合,也是提高服务可靠性的文化课程。



Tags:软件测试   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
软件测试的痛点在哪儿?
俗话说:“仁者见仁,智者见智”。个人的见解和看法始终有限。软件测试能成为IT行业中一个独立的部门,一定有它专业特性。软件测试要往简单处讲就是功能点点点测试。一、功能测试...【详细内容】
2023-08-05  Search: 软件测试  点击:(222)  评论:(0)  加入收藏
软件测试 | 为什么使用Spring Boot
Spring Boot 简介Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开 发过程。该框架使用了特定的方式来进行配置,从而使开发...【详细内容】
2023-06-24  Search: 软件测试  点击:(165)  评论:(0)  加入收藏
中台架构给软件测试工程师带来哪些挑战
前面的文章里我们讲了系统架构从单体架构到微服务架构演进的过程中,对我们软件测试工程师带来的影响,本文我们继续看一下中台架构下,会对接口测试带来哪些影响。从微服务再往后...【详细内容】
2023-05-10  Search: 软件测试  点击:(254)  评论:(0)  加入收藏
什么是软件测试?5分钟带你快速了解!
经常有人问我,你的公司是做什么的?我回答“软件测试”,看着对方一脸的迷茫。何为软件测试?软件测试究竟测试什么?一、软件测试的定义和意义软件测试是伴随着软件工程的重要组成部...【详细内容】
2023-03-22  Search: 软件测试  点击:(123)  评论:(0)  加入收藏
软件测试遇到问题时如何定位缺陷?
遇到缺陷的定位问题,主要是为了提高修改缺陷的效率,帮助开发人员能够更快找到,节省时间,在学测试的时候,项目练习过程中可以按照下面的套路来定位缺陷: 1.首先打开抓包工具,查看前...【详细内容】
2022-09-26  Search: 软件测试  点击:(298)  评论:(0)  加入收藏
软件测试中的设计思维
设计思维是一种强大的范式,软件测试人员和 QA 专业人员可以使用它来创建更多以用户为中心的软件。 据Adobe称,当设计以最高优先级和高质量的方式实施时,以设计为主导的公司报告...【详细内容】
2022-09-02  Search: 软件测试  点击:(382)  评论:(0)  加入收藏
软件测试人员需要掌握编程能力吗?
网上有很多人互相讨论:软件测试是否需要掌握编程能力。其实这个问题并不难回答。对于基础的软件测试人员来说,编程能力并非必须的技能,随着测试岗位的变化以及研究能力的逐渐深...【详细内容】
2022-08-28  Search: 软件测试  点击:(369)  评论:(0)  加入收藏
软件测试中的可用性、可维护性、可靠性有什么区别?
我们生活在一个用户依赖于对服务的一致访问的可靠性时代。在相互竞争的服务之间进行选择时,对用户来说,没有比可靠性更重要的特性了。但是可靠性是什么意思呢?为了回答这个问...【详细内容】
2022-07-28  Search: 软件测试  点击:(507)  评论:(0)  加入收藏
几个常见的软件测试面试题与解答
在我们找工作的时候面试这一关是非常重要的,他直接关系着我们的去留,也关系着我们的待遇问题,记下一下知识点,说不定就可以帮助你通过面试,那么小编下面就来和大家说说,以下几个常...【详细内容】
2022-03-22  Search: 软件测试  点击:(391)  评论:(0)  加入收藏
阿里资深软件测试工程师总结的这几点,让小白轻松搞懂性能调优
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  Search: 软件测试  点击:(281)  评论:(0)  加入收藏
▌简易百科推荐
Meta如何将缓存一致性提高到99.99999999%
介绍缓存是一种强大的技术,广泛应用于计算机系统的各个方面,从硬件缓存到操作系统、网络浏览器,尤其是后端开发。对于Meta这样的公司来说,缓存尤为重要,因为它有助于减少延迟、扩...【详细内容】
2024-04-15    dbaplus社群  Tags:Meta   点击:(3)  评论:(0)  加入收藏
SELECT COUNT(*) 会造成全表扫描?回去等通知吧
前言SELECT COUNT(*)会不会导致全表扫描引起慢查询呢?SELECT COUNT(*) FROM SomeTable网上有一种说法,针对无 where_clause 的 COUNT(*),MySQL 是有优化的,优化器会选择成本最小...【详细内容】
2024-04-11  dbaplus社群    Tags:SELECT   点击:(3)  评论:(0)  加入收藏
10年架构师感悟:从问题出发,而非技术
这些感悟并非来自于具体的技术实现,而是关于我在架构设计和实施过程中所体会到的一些软性经验和领悟。我希望通过这些分享,能够激发大家对于架构设计和技术实践的思考,帮助大家...【详细内容】
2024-04-11  dbaplus社群    Tags:架构师   点击:(2)  评论:(0)  加入收藏
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(5)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(9)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(16)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(14)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(9)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(15)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(10)  评论:(0)  加入收藏
站内最新
站内热门
站内头条