Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【可靠性测试】什么是可靠性测试:定义、方法和工具

【可靠性测试】什么是可靠性测试:定义、方法和工具

作者头像
架构师研究会
发布于 2022-09-28 06:29:00
发布于 2022-09-28 06:29:00
4.1K0
举报
文章被收录于专栏:超级架构师超级架构师

什么是可靠性测试?

可靠性定义为在特定环境中指定时间段内无故障软件运行的概率。

执行可靠性测试是为了确保软件是可靠的,它满足其目的,在给定的环境中指定的时间量,并能够呈现无故障运行。

在这个机械化的世界里,现在人们盲目地相信任何软件。无论软件系统显示出什么结果,人们都相信该软件将永远是正确的。事实上,这是我们所有人都犯的一个常见错误。

用户认为显示的数据是正确的,软件将始终正确运行。这就是需要进行可靠性测试的地方。

根据 ANSI,软件可靠性定义为在特定环境中指定时间段内软件无故障运行的概率。

如果软件产品在特定环境中以无故障方式运行特定时间段,则称为可靠软件。

软件可靠性将减少软件开发过程中的故障。在电子设备或机械仪器中,软件不可能有“磨损”,这里的“磨损”只是由于软件系统中的“缺陷”或“错误”而发生。

什么是可靠性测试?

在当今世界,软件应用程序正被用于我们生活的方方面面,包括医疗保健、政府部门、电信等。

因此,我们需要有用户可以依赖的准确数据。可靠性测试涉及软件的质量和产品的标准化。如果我们能够重复测试用例,并且如果我们始终获得相同的输出,那么我们就说该产品是“可靠的”。

执行可靠性测试是为了确保软件在给定环境中的指定时间内是可靠的,满足其目的,并且能够呈现无故障运行。

我们什么时候使用可靠性测试?

以下是我们使用此测试的场景:

  • 找出系统中存在的故障及其背后的原因。
  • 确保系统质量。

测试用例的设计方式应确保软件的全面覆盖。测试用例应该定期执行,以便我们可以交叉检查当前结果和以前的结果,并验证它们之间是否有任何差异。如果它显示相同或相似的结果,则可以认为该软件是可靠的。

此外,我们可以通过在特定时间段内执行测试用例来测试可靠性,并检查它是否在该特定时间段后正确显示结果而没有任何故障。在进行可靠性测试时,我们必须检查内存泄漏、电池电量不足、网络不足、数据库错误等环境限制。

衡量软件可靠性的基本类型

下面列出了一些衡量软件可靠性的基本类型。

1) 重测信度

考虑以下我们正在测试功能的情况,比如说在上午 9:30 并在下午 1 点再次测试相同的功能。稍后,我们比较两个结果。我们在结果中得到了高度的相关性。然后我们可以说测试是“可靠的”。通常,0.8 或更高的可靠性意味着系统可以被认为是高度可靠的产品。

在这里,非常重要的是要注意,如果我们在一个测试用例中有 10 个步骤,则测试的长度保持不变,那么下次执行测试的步骤数将保持不变。

考虑参加“智商测试”并获得 144 分的人的特定示例。6 个月后,他参加了同样的“智商测试”,得到 68 分。在这种情况下,他不能被视为“可靠”的来源。

2) 并行或替代形式的可靠性

之所以这样称呼,是因为测试人员同时以两种形式进行测试。

3) 评价者间的可靠性

Inter-Rater Reliability 也称为 Inter-Observer 或 Inter-Coder Reliability。它是一种特殊类型的可靠性,由多个评估者或法官组成。它处理不同评级者/观察者提出的评级的一致性。

例如,考虑参加歌唱比赛并从多个评委那里获得 9、8、9(满分 10)分的参赛者。这个分数可以被认为是“可靠的”,因为它们相当一致。但是,如果他的得分是 9、3、7(满分 10),那么它就不能被认为是“可靠的”。

注意:这些评分将在很大程度上取决于不同评委/评分者之间的普遍共识。一旦你完成了一系列观察,那么你就可以确定分数之间存在某种稳定性,并且在那段时间之后,我们可以说它们是一致的。

因此,评分稳定性是对多个观察者的衡量。值得注意的是,在讨论评估者间的可靠性时,观察者的技能也起着重要作用。为了提高评估者间的可靠性,评估者需要培训或适当的指导。

考虑上面的 Excel 表,查看两个不同的评分者 Rater1 和 Rater2 对 12 个不同项目的评分。评分者 1 已在评分板上独立评分。在这里,使用记分板,我们现在将计算两个评分者之间的一致性百分比。这称为两个评分者之间的评分者间可靠性或评分者间一致性。

在第三列中,如果评分者给出的分数匹配,我们将输入“1”。如果分数匹配,我们将给出“0”。之后,我们将在列中找到数字“1”和“0”。这里是 8。

‘1’的数量=8

项目总数=12

同意百分比 = (8/12) *100 =67%。67% 不算多。评分者需要有更多的共识,以便他们可以相应地讨论和改进结果。

不同类型的可靠性测试

下面讨论了各种类型的可靠性测试以供您参考:

1) 功能测试:

此测试确定适用性,即它测试应用程序是否按预期用途执行。在这里,它将检查应用程序的互操作性,以测试它与其他组件以及与应用程序交互的系统。

它确保了系统在 Beta 测试期间检查是否没有发现错误的准确性。

除此之外,它还测试某种安全性和合规性。安全测试与防止有意或无意地未经授权访问应用程序有关。在合规性方面,我们将检查应用程序是否遵循某些标准,例如标准、规则等。

2) 负载测试

负载测试将检查系统与竞争系统或性能相比的性能。它还基于正在使用系统的并发用户数以及系统对用户的行为。

系统必须以更短的响应时间(例如 5 秒)响应用户命令并满足用户的期望。

3)回归测试

回归测试中,我们将检查系统是否运行良好,以及是否没有由于在软件中添加新功能而引入错误。当错误已修复并且测试人员需要再次测试时,也会执行此操作。

可靠性测试计划

在 SDLC(软件开发生命周期)的不同阶段,用户可能会提出许多关于产品未来的问题,例如“它们是否可靠”。对于这些问题,我们需要有一个明确的解决方案。通过适当的模型,我们可以预测产品。

两种类型的模型包括:

  • 预测模型
  • 估计模型

在预测测试中,我们使用历史数据、统计数据以及机器和学习来预测结果。我们只需要写一份报告。在预测模型中,我们只能得到一些历史信息。使用此信息,我们可以构建散点图并绘制现有历史数据的外推线,我们可以预测即将到来的数据。

这种类型的模型在开发或测试阶段本身之前执行。在 Estimation Testing 中,除了使用历史数据外,我们还会使用当前数据。在这里,我们可以预测产品在当前或未来时间的可靠性。这种类型的测试在软件开发生命周期的最后阶段执行。

可靠性测试工具

测试人员需要确定软件的可靠性估计。这将导致在软件可靠性中使用各种工具。

通过使用标准化工具,我们可以:

  • 检测故障信息。
  • 选择正确的模型来对软件进行预测。
  • 生成有关故障的报告。

市场上有各种用于测量软件可靠性的工具,其中一些工具如下所述:

CASRE(计算机辅助软件可靠性评估工具):这不是免费软件,我们需要购买它。

CASRE 可靠性测量工具基于现有的可靠性模型构建,有助于更好地估计软件产品的可靠性。该工具的 GUI 提供了对软件可靠性的更好理解,并且非常易于使用。

在测试过程中,它可以帮助用户在使用一组故障数据时了解系统的可靠性是在增加还是减少。Carse 通过绘制失败次数与测试间隔时间的关系来提供 2D 视图,因此用户可以获得表示系统的图表,如下图所示。

使用 CASRE

  • 用户可以选择故障数据。
  • 指定未来多远,我们想要预测产品的可靠性。
  • 选择可靠性模型。
  • 为结果选择合适的模型。
  • 打印失败结果。
  • 将结果保存到磁盘。

其他用于测试可靠性的工具包括 SOFTREL、SoRel(软件可靠性分析和预测)、WEIBULL++ 等。

结论

与其他形式的测试相比,可靠性测试的成本很高。因此,为了经济高效地进行测试,我们需要有一个适当的测试计划和测试管理

在 SDLC 中,可靠性测试起着重要的作用。如上所述,使用可靠性指标将为软件带来可靠性并预测软件的未来。很多时候,如果软件的复杂度很高,软件的可靠性就很难获得。

谢谢大家关注,转发,点赞和点在看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 首席架构师智库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《架构师》反思:系统可靠性
最近系统学习了一个系统可靠性及其相关知识,今天在这总结一下。 首先,什么是系统的可靠性呢?系统的可靠性是指在规定的时间内及规定的环境下完成规定功能的能力,也就是系统的无故障运行概率。 我会从以下几个方面来归纳主要内容: 1. 故障模型 2. 可靠性模型 3. 可靠性指标 4. 可靠性设计 故障模型 系统故障是指硬件或者软件的错误状态,一般引进故障的原因是这些:部件的失效、环境的物理干扰、操作错误或不正确的设计。 按照时间的长短,故障可以分为:永久性、间歇性、瞬时性。 故
用户1172223
2018/01/26
4.7K0
什么是软件可靠性测试?
“可靠”一词意味着某种事物是可靠的,并且每次都会给出相同的结果。可靠性测试也是如此。
用户10443079
2023/03/22
1.5K0
什么是软件可靠性测试?
电子产品可靠性预计怎么做?
电子产品可靠性预计(Electronic Product Reliability Prediction)是通过一系列的分析和计算方法,预测电子产品在实际工作环境下的故障率、寿命以及性能稳定性。
不脱发的程序猿
2024/11/26
2870
电子产品可靠性预计怎么做?
聊一下软件可靠性测试方法及意义
根据国家标准GB/T25000.23.2019可靠性主要包括成熟度,可用性,容错性,易恢复性,可靠性的依从性,用于验证系统,产品或组件在指定条件下,指定时间内执行指定功能的程度。
漫谈测试
2024/08/07
3320
聊一下软件可靠性测试方法及意义
【架构质量】可靠性系列#1:可靠性与韧性
每当我与客户和合作伙伴谈论可靠性时,我都会被提醒,虽然组织和客户之间的目标和优先级不同,但归根结底,每个人都希望他们的服务能够发挥作用。作为客户,您希望能够在方便的时候在线进行操作。作为一个组织或服务提供商,您希望您的客户在他们想要的任何时候执行他们想要执行的任务。
架构师研究会
2022/07/29
4650
【愚公系列】软考高级-架构设计师 103-软件可靠性基本概念
软件可靠性是指软件在特定条件下能够正常运行并达到预期功能的能力。在现代社会中,软件可靠性扮演着非常重要的角色,其作用主要体现在以下几个方面:
愚公搬代码
2024/08/12
2370
系统设计中的六性要求指什么
软件可靠性主要包括软件复杂度、软件冗余、软件健壮性、软件避错和软件程序可读性检验。
北京华盛恒辉科技
2024/08/23
2620
【新版系统架构】第九章-软件可靠性基础知识
软件可靠性模型是为预计或估算软件的可靠性所建立的可靠性框图和数学模型,建立可靠性模型是为了将复杂系统的可靠性逐级分解为简单系统的可靠性,以便于定量预计、分配、估算和评价复杂系统的可靠性。
阿提说说
2023/10/16
5220
【软件测试】稳定性和可靠性测试在软件开发中的重要性
软件测试的某些方面经常会在那些刚接触流程的人中造成混淆——例如在稳定性和可靠性测试之间划清界限。两者通常可以互换使用,并且有一个共同的目标,即确保系统可以在选定的时间范围内稳定运行。
架构师研究会
2022/09/30
2.4K0
【愚公系列】软考高级-架构设计师 104-软件可靠性建模与管理
软件可靠性建模与管理对于帮助团队提高软件系统的质量、稳定性和用户满意度具有重要作用。通过科学的建模方法和有效的管理策略,团队可以更好地发现和解决软件系统中的问题,持续改进软件系统的性能,提升竞争力和市场地位。因此,软件开发和运营团队应该重视可靠性建模与管理,将其纳入整个软件开发周期中,并不断优化和完善。
愚公搬代码
2024/08/12
2090
【愚公系列】软考高级-架构设计师 105-设 计 、 测 试 、 评 价
设计、测试和评价在软件开发过程中扮演着至关重要的角色,它们相互交织,共同确保软件的质量、可靠性和用户体验。
愚公搬代码
2024/08/13
1890
软考分类精讲-系统可靠性分析与设计
系统故障模型 系统可靠性分析—可靠性指标 可靠性与可用性 系统可靠性是系统在规定的时间内及规定的环境条件下,完成规定功能的能力, 也就是系统无故障运行的概率。 系统可用性是指在某个给定时间点上系统能够
cwl_java
2019/10/26
1.2K0
可靠性测试的基础知识——可靠性的计算方法
指单位时间内失效的元件数与元件总数的比例,以λ表示,当λ为常数时,可靠性与失效率的关系为: R(t)=е^(-λt),指数分布下近似于1−λt。
全栈程序员站长
2022/09/06
6.6K0
软件工程与软件测试_软件工程导论第三版课后答案
测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。
全栈程序员站长
2022/09/27
5900
测试 Linux 的可靠性
IBM Linux Technology Center (LTC) 成立于 1999 年 8 月,想让 Linux 成功的共同梦想使其与 Linux 开发团体直接合作。它的 200 多名员工使之成为开放源代码开发者的较大团队组织之一。他们提供的代码范围包括,从补丁到结构化的内核改变,从文件系统和国际化工作到 GPL'd 驱动程序。他们还致力于追踪 IBM 内部进行的 Linux 相关开发。
一见
2018/08/07
1.8K0
网络可靠性和可用性之间有什么区别?
网络可靠性是衡量基础设施无中断运行时间长短的标准。可靠性通过几个不同的公式进行评估。
星融元Asterfusion
2023/10/30
9970
网络可靠性和可用性之间有什么区别?
软件质量测试知识点
软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。即计算机程序、规程、文档和软件系统运行所必需的数据。
Meng小羽
2019/12/24
2.2K0
【云+社区年度征文】RTO/RPO驱动的系统可靠性架构设计
可靠性、可用性、可维护性(Reliability, Availability, Maintainability - RAM)是软件开发过程中的三个重要方面。本文与大家探讨下关于高可靠性的设计,首先来看下关于可靠性的定义。
大江小浪
2020/12/03
1.9K0
【云+社区年度征文】RTO/RPO驱动的系统可靠性架构设计
干货 | 为什么自己设计的嵌入式系统不如工业级产品稳定?
国内很多企业非常关注产品功能,而对稳定性关注甚少,常常产品功能很炫可是稳定性往往差强人意。今天我们来聊聊产品稳定性。
AI 电堂
2020/08/04
7550
干货 | 为什么自己设计的嵌入式系统不如工业级产品稳定?
基于模式挖掘的可靠性治理探索与实践
对于亿级流量的线上系统来说,可靠性是至关重要的。从字面上理解,可靠性要求故障少、可信赖。与安全性一样,它们都是信息系统的固有属性之一,也是保障产品质量的关键因素。
美团技术团队
2023/10/19
3020
基于模式挖掘的可靠性治理探索与实践
推荐阅读
相关推荐
《架构师》反思:系统可靠性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档