软件测试的原则和经验
目前流行的软件测试有八项基本原则,这八项基本原则可以指导我们更有效的执行软件测试。
1、应当把“尽早和不断的测试”作为开发者的座右铭
测试应该尽早进行,最好在需求阶段就开始介入,不要等到软件产品做完了才开始。
2、程序员应该避免检查自己的程序,软件测试应该由第三方构造。程序员对自己的程序已经产生抗体,所以测试自己的程序无法测试深层次的缺陷。
3、设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断,电源断电等。
4、一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。测试中存在群集现象,错误喜欢发现在相同的模块以及相关的开发人员编写的程序。
5、对测试错误结果一定要有一个确认过程。一般由A测试出来的错误,一定要有一个B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试的结果要进行严格的确认,是否真的存在这个问题,问题的严重程度是否正确等。
6、制定严格的测试计划,并把测试时间安排的尽量宽松。不要希望在极短的时间内完成一个高水平的测试。一定要制定测试计划,但不要为了做测试计划文档而制定测试计划,测试计划一定要有指导性。
7、回归测试的关联性一定要引起充分注意。修改一个错误而引起更多错误出现的现象并不少见。
8、妥善保存一切测试过程文档。测试的重现性往往要靠测试文档来体现。软件测试过程中产生的文档要纳入配置管理库,进行严格的版本控制,不能随意的修改测试文档,需要制定变更测试文档的流程。
软件测试经验:
1、测试的Good Enough原则。对于相对复杂的产品或系统来说,zero-bug是一种理想,good-enough则是我们的原则。Good-enough原则是一种权衡投入/产出比的原则:不充分的测试是不负责任的,而过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们的操作困难在于,如何界定什么样的测试是不充分的,什么样的测试是过分的。针对这种情况,测试人员最好制定最低测试通过标准和测试内容,然后具体问题具体分析。
2、测试的木桶原理和80-20原则。
1)依据软件产品全面质量管理的概念,产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充的检查手段,是提高产品质量的必要条件,也是提高产品质量最直接、最uaijie的手段,但决不是一种根本手段。反过来说,如果把提高产品质量的砝码全部押在测试上,那将是一个漫长而恐怖的灾难。
2)Bug的80-20原则。一般情况下,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug,而系统测试又能找出其余Bug中的80%,最后的4%的Bug可能只有在用户的大范围、长时间的使用之后才会暴露出来。因为测试只能尽可能多的发现缺陷,无法保证能发现所有错误。
3、测试人员永远不要保证什么。在任何时候都不要表露出有了测试人员或者有了像你一样的测试人员,产品绝对没有任何问题了。这是在自己打自己的嘴,测试人员要给自己留个退路,要表露出谦虚的一面,“尽量少在用户使用时发现问题”,“我会竭尽全力做好测试工作”。
4、测试人员编写的文档是代表自己。测试人员的任何文档代表的是你本人,所以文档一定要写的漂亮,所谓漂亮就是要求格式、版面整齐,没有错别字,语言通顺,表达清楚,没有歧义,一般的技术人员都能读懂你的文档。
5、测试人员要学会逆向思维。开发人员一般都是从正面满足需求,比较少去考虑不满足需求的部分,测试人员就要从逆向思维考虑,有哪些是开发人员没有考虑到的、不满足需求的部分。
6、编写缺陷一定要保证重现。在保证重现缺陷的时候,要注意缺陷不要描述太啰嗦,一般在3-个步骤要完成操作。
7、测试一定要依据需求。离开了需求,叫做你根本没有真正测试被测项目。
8、关注对用户不利的缺陷。要更多的考虑用户能否正确、完整的使用被测软件,用户使用这套软件能够给他们的工作带来好处。不要过多考虑用户不在意的问题。
9、适当的引入测试工具提高测试效率。完全的手工测试过程是非常浪费时间和资源的,所以测试人员应该根据公司的实际情况适当的引入测试工具。一般情况首先引入的是测试管理工具,把整个测试过程管理起来,然后考虑其他测试工具。
10、测试人员是服务人员。整个项目组的人都是测试人员服务的对象,针对不同的人,我们应该提供不同的帮助与协助