二、典型系统级测试的种类

  从软件测试自动化的定义、目的和自动化测试的标准,很容易推出软件自动化测试主要适用于系统级的测试,而不适用于单元测试。典型的系统级的测试主要包括:集成测试、回归测试、系统测试和性能测试。

  1、集成测试

  集成测试是指在系统的各个功能模块集成为一个完整的软件系统初期所进行的测试。这一阶段,主要集中于测试顶层模块和重要模块,自动测试程序相对较小,只需完成简单的功能测试,不需要进行深入测试。由于在软件开发周期中,同一软件的功能结构不可能有大的变化,所以自动测试程序需要完成以下测试目标:

  一是系统顶层模块测试;

  二是系统重要模块测试;

  三是与系统重要模块相关的底层模块测试。

  2、回归测试

  回归测试是指在软件测试过程中,由于需要软件开发部门及时修改软件错误,所以会产生新的测试版本。在每个测试版本提交测试部门以后,测试部门的人员首先对其要进行回归测试,以检测软件是否达到基本测试目标。一般来讲,回归测试的方法和测试用例是相对固定的,所以可以用自动测试程序完成这一测试。

  在回归测试过程中,自动测试程序主要完成以下测试目标:

  一是集中测试用户相关功能;

  二是只对测试用例子集进行选择功能测试;

  三是决定接受或拒收这一测试版本。

  3、系统测试

  系统测试是指在系统已成为一个相对稳定的可测试版本以后,对系统进行的大规模的、多周期的、全面的功能测试。自动测试程序在这一阶段中,可以完成对全部功能或部分功能的测试。

  在系统测试过程中,自动测试程序可以完成以下测试目标:

  一是覆盖系统所有功能;

  二是覆盖系统关键功能;

  三是利用特殊的测试用例进行极限测试和边界测试;

  四是完成所有与文本相关的用户界面和联机帮助文档的测试。

  4、性能测试

  性能测试是通过对被测系统进行长时间、多用户、大数据量等压力负载的测试,以验证软件系统是否能够达到用户提出的性指标,同时发现软件系统中存在的性能瓶颈,优化软件,后起到优化系统的目的。性能测试类型包括负载测试,强度测试,容量测试等。

  在性能测试过程中,自动化测试可以完成以下测试目标:

  一是评估系统的能力:测试中得到的负荷和响应时间等数据可以被用于验证所计划的模型的能力,并帮助做出决策。

  二是识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

  三是系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能并检测软件中问题,因为长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

  四是验证稳定性和可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的方法。

  使用自动化测试的过程中会遇到许多问题,意外出现的问题尤其难以处理。