软件是人类思维的产物,是群体性活动的结果,所以在软件开发的各个阶段都不可避免的会产生错误。例如,在需求分析时没有很好的理解用户的意图;在系统设计时对实体之间的关系没有正确地描述;在编码阶段出现了不易发现的逻辑错误;软件开发人员之间的配合出现失误等。尽管在每个阶段结束之前都对软件进行严格的技术评审,但经验表明审查并不能发现所有的差错。因此,软件编码完成后,在交付用户使用前,必须对软件进行严格的测试。软件测试是软件质量保证的关键步骤。
所谓软件测试,是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期结果),并利用这些测试用例去运行程序,以发现程序错误的过程。软件测试在软件生存周期中横跨两个阶段:通常在编写出每个模块之后对它做必要的测试(单元测试)。模块的编写者与测试者是同一个人。编码与单元测试属于软件生存周期的同一个阶段。在这个阶段结束之后,软件系统还要进行各种综合测试,这是软件生存周期的另一个独立的阶段,即测试阶段,通常由专门的测试人员承担这项工作。
说了这么多,大家可能急切的想知道,软件测试到底包含哪些内容,下面我用一张思维导图给大家简单总结一下软件工程中软件测试阶段的一些理论和方法。
PS:由于图比较大,请用鼠标点击图中内容,拖到空白处即可在浏览器中查看
作为软件工程的一个必要阶段,软件测试有自己的理论和严格的方法,在进行测试的时候一定要重视起来,避免软件测试的随意性。另外,软件测试人员的经验也是十分重要的,一个经验丰富的测试人员能够显著提高软件测试工作的效率。