关于测试小记
可靠性测试
可靠性测试是一种评估软件在特定条件下,长时间运行时的稳定性和可预测性的测试过程。它主要关注软件是否能在各种条件下持续提供正确的服务,以及是否能够处理潜在的异常情况而不出现故障。
可靠性测试通常包括以下几个方面:
稳定性测试:评估软件长时间运行下的性能稳定性,检查是否存在内存泄露、资源耗尽等问题。
容错性测试:验证软件在面对错误输入或操作时的恢复能力,确保其能够正确处理异常情况并提供相应的错误提示。
负载/压力测试:模拟高负载或高并发情况下的软件行为,确保系统在极端条件下仍能保持稳定运行。
疲劳测试:连续不断地运行软件,以检验其能否持续稳定地工作。
恢复性测试:评估软件在发生故障后,重启并恢复正常运行的能力。
总的来说,可靠性测试是确保软件产品在实际运行中能够长期稳定工作的重要环节。通过这些测试,开发者可以发现并修复潜在的问题,从而提高软件的可靠性和用户满意度。
定量描述
MTTF(Mean Time To Failure):即平均无故障时间,它衡量软件在故障之间平均运行的时间长度。MTTF越长,表示软件的可靠性越高。计算公式为:MTTF = 总运行时间 / 故障次数。
MTTR(Mean Time To Repair):即平均修复时间,它衡量发现软件故障到修复完成所需的平均时间。MTTR越短,表示软件的可维护性越好。计算公式为:MTTR = 总修复时间 / 故障次数。
缺陷密度:通常定义为每千行代码(KLOC)中的缺陷数量。这个指标可以帮助开发者了解软件的质量控制水平。计算公式为:缺陷密度 = 总缺陷数 / 代码千行数。
可靠性增长率:衡量在测试过程中软件可靠性的提升速度。通过持续的测试和缺陷修复,软件的可靠性应该呈现出增长的趋势。这通常通过可靠性增长模型来计算,如Duane模型或AMSAA模型。
可用性:衡量软件在特定时间内可供使用的程度。它考虑了软件的稳定性和可维护性,以及系统停机对用户的影响。计算公式为:可用性 = MTBF / (MTBF + MTTR)。
• MTBF(Mean Time Between Failures)表示平均无故障时间,即软件系统在两次故障之间正常运行的平均时间。
• MTTR(Mean Time To Repair)表示平均修复时间,即从发现软件系统故障到修复完成所需的平均时间。
这个公式的核心思想是,系统的可用性由两部分组成:系统正常运行的时间和系统因故障而无法运行的时间。MTBF越长,表示系统越稳定;MTTR越短,表示系统的可维护性越好。因此,可用性高的软件系统意味着它在大部分时间内都是可用的,对用户的影响较小。
常见的测试
黑盒
黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。
黑盒测试主要测试的错误类型有:
①不正确或遗漏的功能;
②接口、界面错误;
③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。
常见方法:等价类划分,边界值分析法,错误推测法,因果图
因果图方法是一个非常有效的黑盒测试方法,它能够生成没有重复性的且发现错误能力强的测试用例,而且对输入、输出同时进行了分析。
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。
白盒
白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。
白盒测试使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序进行测试。
基本要求:
保证一个模块中的所有独立路径至少被执行一次;
对所有的逻辑值均需要测试真、假两个分支;
在上下边界及可操作范围内运行所有循环;
检查内部数据结构以确保其有效性。
应用白盒法时,手头必须有程序的规格说明以及程序清单。
白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。
最彻底的白盒法是覆盖程序中的每一条路径,但是由于程序中一般含有循环,所以路径的数目极大,要执行每一条路径是不可能的,只能希望覆盖的程度尽可能高些。
覆盖程度
从低到高:
语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。
判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次(仅要求取到每一个结果)。
条件覆盖:执行足够的测试用例,使程序中每个判断的每个条件的每个可能取值至少执行一次;
判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果(所有结果被取过)。
条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。
基本路径测试:设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径。这是最强的覆盖准则。但在路径数目很大时,真正做到完全覆盖是很困难的,必须把覆盖路径数目压缩到一定限度。
参考资料:【软件测试】白盒测试与黑盒测试_白盒测试和黑盒测试-CSDN博客
可靠性测试-CSDN博客