5.3.1 软件测试过程
软件测试时需要以下三类信息:
(1) 软件配置:需求规格说明书、软件设计说明书和源程序等;
(2) 测试配置:测试方案、测试用例和测试驱动程序等;
(3) 测试工具:计算机辅助测试的有关工具。
软件经过测试之后,要根据预期的结果对测试的结果进行分析比较,对于出现的错误要进行纠正,并修改相应的文档。修改后的程序往往要经过再次测试,直到满意为止。在分析结果的同时,要对软件可靠性进行评价,如果总是出现需要修改设计的严重错误,软件质量和可靠性就值得怀疑,同时也需要做进一步的测试;如果软件功能能够正确完成,出现的错误易修改,可以断定软件的质量和可靠性可以接受或者所做的测试还不足以发现严重错误;如果测试发现不了错误,那么可以断定测试方案、测试用例考虑得不够细致充分,错误仍潜伏在软件中,应考虑重新制定测试方案,设计测试用例。
软件测试步骤
软件产品在交付使用之前,一般需要经过单元测试、集成测试、确认测试和系统测试,具体步骤如图5.5所示。
图5.5 软件测试步骤
单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正确实现了规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件体系结构的有关问题。确认测试主要检查已实现的软件是否满足需求规格说明书中确定的各种需求。系统测试将已确定的软件与其他系统元素(如硬件、其他支持软件、数据和人工等)结合在一起进行测试。如图5.6显示了软件开发过程中的测试与软件开发各阶段之间的关系。

图5.6 软件测试与软件开发过程的关系
测试人员组织
为了保证软件的开发质量,软件测试应贯穿于软件定义与开发的整个过程。因此,对分析、设计和实现等各阶段所得到的结果,包括需求规格说明、设计规格说明及源程序都应进行软件测试。为此,测试人员的组织也应是分阶段的。
(1) 需求分析评审
软件的设计和实现都是基于需求分析规格说明进行的,需求分析规格说明是否完整、正确、清晰是软件开发成败的关键。为了保证需求定义的质量,应对其进行严格的审查。
相应的审查小组由下列人员组成:
* 组长:1人
* 成员:包括系统分析员,软件开发管理者,软件设计、开发和测试人员和用户。
(2) 设计评审
软件设计是将软件需求转换成软件表示的过程。主要描绘出系统结构、详细的处理过程和数据库模式。按照需求的规格说明对系统结构的合理性、处理过程的正确性进行评价,同时利用关系数据库的规范化理论对数据库模式进行审查。
相应的评审小组由下列人员组成:
* 组长:1人
* 成员:包括系统分析员、软件设计人员、测试负责人员各一人。
(3) 程序的测试
软件测试是整个软件开发过程中交付用户使用前的最后阶段,是软件质量保证的关键。软件测试在软件生存周期中横跨两个阶段:通常在编写出每一个模块之后,就对它进行必要的测试,称为单元测试。编码与单元测试属于软件生存周期中的同一阶段,该阶段的测试工作由编程组内部人员进行交叉测试,应避免编程人员测试自己的程序。这一阶段结束后,进入软件生存周期的测试阶段,对软件系统进行各种综合测试。这时,测试工作由专门的测试组完成,测试组设组长一名,负责整个测试的计划、组织工作。测试组的其他成员由具有一定的分析、设计和编程经验的专业人员组成,人数根据具体情况可多可少,一般3~5人为宜。
软件测试文件
软件测试文件描述要执行的软件测试及测试的结果。由于软件测试是一个很复杂的过程,同时也涉及软件开发其它一些阶段的工作,对于保证软件的质量及其运行有着重要意义,必须把对它们的要求、过程及测试结果以正式的文件形式写出。测试文件的编写是测试工作规范化的一个组成部分。
测试文件不只在测试阶段才考虑,它在软件开发的需求分析阶段就开始着手,因为测试文件与用户有着密切的关系。在设计阶段的一些设计方案也应在测试文件中得到反映,以利于设计的检验。测试文件对于测试阶段工作的指导与评价作用更是非常明显的,需要特别指出的是,在已开发的软件投入运行的维护阶段,常常还要进行再测试或回归测试,这时仍须用到测试文件。
根据测试文件所起的作用不同,通常把测试文件分成两类,即测试计划和测试分析报告。测试计划详细规定测试的要求,包括测试的目的和内容、方法和步骤,以及测试的准则等。由于要测试的内容可能涉及到软件的需求和软件的设计,因此必须及早开始测试计划的编写工作。不应在着手测试时,才开始考虑测试计划。通常,测试计划的编写从需求分析阶段开始,到软件设计阶段结束时完成。测试报告用来对测试结果的分析说明,经过测试后,证实了软件具有的能力,以及它的缺陷和限制,并给出评价的结论性意见,这些意见即是对软件质量的评价,又是决定该软件能否交付用户使用的依据。由于要反映测试工作的情况,自然要在测试阶段内编写。
测试文件的重要性表现在以下几个方面:
|