这些文字是公司一次培训所用的PP资料,觉得讲得很有道理,真正好的软件必须要这样做,所以抄录了一些记载在自己的Blog上面。

  一、对软件测试的误解

  1.如果发布出去的软件有质量问题,那是软件测试人员的错。

  2.软件测试技术要求不高,至少比编程容易多了

  3.软件测试随便找一个能力差的人能做。

  4.软件测试是测试人员的事,与开发人员无关。

  5.设计-实现-测试,软件测试是开发后期的一个阶段

  二、如何理解软件测试

  软件测试是一种有效的提高软件质量的手段,但即使在投入上有所保证,测试也不能百分为百发现所有质量隐患。况且软件质量并不仅仅是测试出来的。

  很多人认为软件测试是运行一下软件,看看结果对不对。但实际上,如何在有限的投入下,提高软件测试的效率和产出是一件很见功底的事。好的测试人员不仅要掌握各种测试技术,还要具备丰富的编程经验和对BUG的敏感。测试的复杂之处,除了测试技术问题之外,还有测试管理问题。

  测试不是可有可无,随心所欲的。规范化的软件开发需要对软件测试早做计划,分配必要的时间,人力和财力等资源,并将其作为项目管理的一个部分加以控制和协调。

  开发和测试是软件项目相辅相成的两个过程,人员间的交流,协作和配合是提高整体效率的重要因素。

  软件产品开发完毕,再进行测试的观念是有悖于生命周期理论的。软件产品质量问题越晚发现,修复的代价越大。

  一些常识和经验之谈

  测试能提高软件的质量,但是提高质量不能依赖测试。

  测试只能证明缺陷存在,不能证明缺陷不存在。“彻底地测试”难以成为现实,要考虑时间、费用等限制,不允许无休止地测试。我们应当祈祷:软件的缺陷在产品被淘汰之前一直没有机会发作。

  测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试。

  每个开发人员应当测试自己的程序(份内之事),但是不能作为该程序已经通过测试的依据(所以项目需要独立测试人员)。80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错,测试应当循序渐进,不要企图一次性干完,注意“欲速则不达”。

  三、软件测试的定义

  软件测试是为了发现错误而执行程序的过程

  软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。