什么是软件测试软件测试的目的是什么(什么是软件测试?软件测试的目的?)

什么是软件测试?为了保证软件的质量和可靠性,我们应该尽一切努力在分析和设计等每个开发阶段结束之前对软件进行严格的技术评估。但由于人的能力有限,考试并不能发现所有的错误。而且在编码阶段会引入大量的误差。这些错误和缺陷,如果任其发展,直到软件交付并投入运行,最终都会暴露出来。但到那时,不仅纠正这些错误的代价会更高,而且往往会造成非常糟糕的后果。软件测试是软件投入运行前对软件需求分析、设计规格说明和编码的最终评审,是软件质量保证的关键步骤。如果定义了软件测试,可以说软件测试就是执行程序寻找错误的过程。换句话说,软件测试就是根据软件开发各个阶段的规范和程序的内部结构,精心设计一批测试用例(即输入一些数据得到预期的结果),并利用这些测试用例运行程序来发现程序错误的过程。软件测试跨越了软件生命周期中的两个阶段:通常,在每个模块编写完成后,根据需要进行测试(称为单元测试)。与编码单元测试属于软件生命周期的同一阶段。这一阶段结束后,将对软件系统进行各种最终测试,这是软件生命周期的另一个阶段,即测试阶段,通常由专门的测试人员承担。大量统计数据表明,软件测试的工作量往往占到软件开发总工作量的40%以上。极端情况下,关系到人民生命安全的软件测试成本可能相当于软件工程其他开发步骤总成本的三到五倍。因此,我们必须高度重视软件测试工作,千万不要认为程序写完了,软件开发工作就差不多完成了。事实上,仍有大约相同数量的开发工作要完成。就测试而言,它的目标是发现软件中的错误,但发现错误并不是我们的最终目标。软件工程的根本目标是开发完全满足用户需求的高质量软件。软件测试的目的基于不同的岗位,有两种完全不同的测试目的。从用户的角度来看,一般希望通过软件测试暴露出软件中隐藏的错误和缺陷,以此来考虑产品能否被接受。从软件开发者的角度来看,希望测试是一个表明软件产品没有错误,验证软件已经正确满足用户需求,建立用户对软件质量信心的过程。因为程序中往往会出现很多意想不到的问题,可能会被忽略,很多隐藏的错误只有在特定的情况下才会暴露出来。如果我们不尽可能地专注于发现错误,这些隐藏的错误和缺陷就不会被发现,而会被遗留到运行阶段。如果你站在用户的角度,你应该致力于揭露程序中的错误。在选择测试用例时,考虑那些容易发现程序错误的数据。以下规则也可视为测试的目的或定义:1。测试是执行程序以发现程序中错误的过程;2.一个好的测试计划是一个有可能发现到目前为止还没有发现的错误的计划;3.一个成功的测试是在测试中发现了到目前为止还没有发现的错误。从上面的规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这与一些人通常认为的“测试是为了表明程序是正确的”、“成功的测试是测试没有发现任何错误”等等完全相反。正确理解测试目标是非常重要的,它决定了测试方案的设计。如果为了表明程序是正确的而对程序进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,我们会尽力设计一个最能暴露错误的测试方案。

由于测试的目标是揭露程序中的错误,从心理学的角度来看,程序编写人员自我测试是不合适的。因此,在综合测试阶段,通常由其他人组成测试团队来完成测试工作。另外,应该认识到,测试永远不能证明程序是正确的。即使经过最严格的测试,程序中仍可能潜伏着未被发现的错误。测试只能找出程序中的错误,不能证明程序中没有错误。