软件在经过功能测试后,接下来就需要考虑软件的性能问题,比如一个服务器软件是否可以长时间运行而不报错?是否可以在多用户并发时仍然能够从容应对?这些都在性能测试的讨论范围内。
很多软件都有其特定的性能或效率目标,这些特征描述为在特定的负载和配置环境下软件的响应时间和资源消耗。
所谓响应时间,就是软件对一个具体的操作进行响应所需的时间。
另外,软件在启动时需要消耗多少资源也是需要重点测试的。如果一个软件一启动就CPU占用100%,内存占用也100%,那这款软件的性能测试肯定是不能通过的。
接下来分别介绍稳定性测试(reliability testing)、负载测试(load testing)、压力测试(stress testing)和重复测试(repetition testing)。
1.稳定性测试
稳定性测试又叫可靠性测试。如果软件的目标中包含对可靠性的特别描述,就必须设计专门的稳定性测试用例。测试稳定性的目标可能很困难。比如上面提到的某公司的官网,要求系统在整个运行期间,正常运行时间必须占99.97%。通常用平均故障间隔时间(Mean Time Between Failure,MFBF)来衡量系统的稳定性,MTBF值越大,系统的稳定性就越高。
例如针对手机终端的入库版本测试,就要求在7×24小时的测试周期内,MTBF值不能大于2,如果测试的结果大于2,那么测试就是不通过的。
2.负载测试(www.xing528.com)
负载测试,又叫重负测试,是使软件在一个理想的条件下运行,提供充分的条件让其发挥作用,让软件处理尽可能大的数据文件。如果正在测试某公司的官网服务器,服务器同时支持1 000个用户并发上网,那么就让这1 000个用户不停地访问官网,最大限度地发挥服务器的能力,直到它不堪重负而暴露缺陷为止。
负载测试的另一个对象就是时间。对于大多数软件,长期稳定地工作是很重要的。某些软件要求能够永远运行下去,而无须频繁重新启动。
3.压力测试
压力测试,又叫压迫测试。与负载测试相反,压力测试是不断地给待测试的软件增加压力,直到软件最终崩溃,以测试软件的最大承压能力。比如某公司的官网服务器配置上标明支持1 000个用户同时并发,而当并发用户数达到1 500时,服务器崩溃,那么就知道服务器的最大用户并发数为1 500人。
4.重复测试
重复测试是不断地执行相同的测试步骤,最简单的就是不停地启动和关闭软件,还可以反复读写数据或者反复选择同一个操作。当用户反馈一个有明确操作步骤,但并不会每次都出现的缺陷时,就需要进行重复测试。这样的测试步骤可能进行几次,也可能进行几千上万次。
从白盒测试的角度来讲,进行反复测试的主要目的就是检查是否会出现内存泄漏问题,如果计算机内存被分配进行某些操作,但在操作完成后又没有完全释放,就会产生一个常见的软件问题,结果是最后程序耗尽了操作系统的内存空间。
如果某个软件在启动时工作状况良好,但随着时间的推移软件的工作速度越来越慢,或者经过一段时间的运行后表现得非常不稳定,那么就有可能出现了内存泄漏的问题。重复测试就是为发现此类缺陷而进行的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。