软件测试是一项极富创造性、极具挑战性的工作。为了尽可能发现软件中的错误,提高软件产品的质量,在软件测试的实践中应把握以下几项测试原则:
1.测试应基于用户需求
所有的测试标准应建立在满足客户需求的基础上,从用户角度来看,最严重的错误是那些导致程序无法满足需求的错误。应依照用户的需求配置环境并且依照用户的使用习惯进行测试并评价结果。假如系统不能完成客户的需求和期望,那么,这个系统的研发是失败。同时在系统中发现和修改缺陷也是没有任何意义的。
在开发过程中用户的早期介入和接触原型系统就是为了避免这类问题的预防性措施。有时候,可能产品的测试结果非常完美,可最终的客户并不买帐。因为,这个开发角度完美的产品可能并不是客户真正想要的产品。
2.做好软件测试计划是做好软件测试工作的关键
软件测试是有组织、有计划、有步骤的活动因此测试必须要有组织有计划,并且要严格执行测试计划避免测试的随意性。测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等以及评价标准。另外,回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
项目测试相关的活动依赖于测试对象的内容。对于每个软件系统,比如测试策略、测试技术、测试工具、测试阶段以及测试出口准则等等的选择,都是不一样的。同时,测试活动必须与应用程序的运行环境和使用中可能存在的风险相关联。因此,没有两个系统可以以完全相同的方式进行测试。比如,对关注安全的电子商务系统进行测试,与一般的商业软件测试的重点是不一样的,它更多关注的是安全测试和性能测试。
3.应尽早的开始软件测试并不断的进行软件测试
软件项目一启动,软件测试也就是开始。由于软件的复杂性和抽象性,在软件生命周期各阶段都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段去。在需求分析和设计阶段就应开始进行测试工作,编写相应的测试计划及测试设计文档,同时坚持在开发各阶段进行技术评审和验证,这样才能尽早发现和预防错误,杜绝某些缺陷和错误,提高软件质量。尽早开展测试准备工作使测试人员能够在早期了解到测试的难度,预测测试的风险,有利于制定出完善的计划和方案,提高软件测试及开发的效率,规避测试中存在的风险。尽早开展测试工作,有利于测试人员尽早发现软件中的缺陷,大大降低错误修复的成本。测试工作进行得越早,越有利于提高软件的质量,这是预防性测试的基本原则。
4.测试前必须明确定义好产品的质量标准
只有建立了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。同样,测试用例应该确定期望输出结果。如果无法确定测试期望结果,则无法进行检验。必须用预先精确对应的输入数据和输出结果来对照检查当前的输出结果是否正确,做到有的放矢。系统的质量特征不仅仅是功能性要求,还包括了很多其他方面的要求比如稳定性、可用性、兼容性等等。
5.避免测试自己的软件
由于心理因素的影响或者程序员本身错误的理解了需求或者规范导致程序中存在错误,应避免程序员或者编写软件的组织测试自己的软件。一般要求有专门的测试人员进行测试,并且还要求用户参与,特别是验收测试阶段,用户是主要的参与者。
6.应充分注意测试中的集群现象
一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。错误集中发生的现象,可能和程序员的编程水平和习惯有很大的关系。因此,对发现错误较多的程序段,应进行更深入的测试。
7.必须检查每个实际输出结果
这个原则可能最显而易见,但也同样常常被忽视。应当彻底检查每个测试的执行结果,避免因为疏忽或者对结果与预期结果的一致性主观臆断造成错误遗漏。
8.穷举测试是不可能的
由于时间和资源有限,穷举测试是不可能的,软件测试不能无限进行下去,应适时终止。此外,应避免冗余测试。
9.测试设计决定了测试的有效性和效率
测试设计决定了测试的有效性和效率,测试工具只能提高测试效率而非万能。根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。除了检查程序是否做了应该做的事,还要看程序是否做了不该做的事;另外,测试用例的编写不仅应当根据有效和预料的输入情况,也需要根据无效和未预料的输入情况。
10.注意保留测试设计和说明文档,并注意测试设计的可重用性
妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护等提供方便。
>>戳戳,免费下载自动化测试工具TestWriter~(功能测试、回归测试、兼容性测试必备)