引言
对程序的一次测试活动一般包括五个步骤:
(l)确定测试方法,如边界值分析等;
(2)设计测试用例,包括输人值、期望结果等;
(3)建立测试实施,即组织测试脚本、测试输入、期望输出等测试信息;
(4)执行测试实施;
(5)测试结果分析,包括比较真实测试结果与期望结果。
通常,测试活动中的简单重复性测试工作适合自动化,例如上述活动中的后三个步骤川。目前的软件测试工具实现了部分自动化,但主要局限在半自动化建立测试实施、自动执行测试实施、自动比较真实测试结果与期望结果,本文称这些自动化的部分为自动测试过程。
本文首先研究了目前软件测试工具通常采用的自动测试过程,指出它们的瓶颈,然后,针对对象式被测件,提出了改进的白动测试过程,并基于.NET技术,讨论了改进的自动测试过程中关键技术的实现。
1当前测试工具采用的自动测试过程
自动测试过程的核心是测试脚本。当前测试工具产生测试脚本的方式有二种:
(l)手工编写;
(2)工具捕获人工测试场景产生;
(3)工具基于人工提供的信息白动产生。
捕获/回放测试工具通常采用方式(l)和(2)为提供了可执行程序的被测件产生测试脚本,单元测试工具通常采用方式(3)为提供了源代码的被测件产生测试脚本,它们的典型自动测试过程事务流程分别如。可以看出,当前自动测试过程中主要存在如下几个问题:
(l)由于能力和劳动量的限制,利用手工运行或人工分析结果产生测试脚本具有如下的缺点:
l)对于规模较大的被测件,利用人工运行或分析结果产生的测试脚本不可能达到全面测试软件产品的目的;
2)对于经常改变的被测件,产生测试脚本所需的人工劳动量随被测件的改变而剧增。
(2)对于不能单独运行且源代码不可得的被测件,无法产生测试脚本。
(3)完全手工设计测试用例,对测试人员来说是一项任务繁重的工作。
(4)测试信息直接编码成测试脚本,导致每次编辑测试信息后,都要重新调试测试脚本。
(5)集成测试中需要人工分析并构造桩模块,这样的桩模块很难全面精确反映被模拟模块的特点。当前软件测试工具采用的自动测试过程中存在着人工干预过多、测试效率低的缺点,远远不能满足目前软件开发过程中边开发、边测试的要求。改进自动测试过程,尽可能减少人工干预,对于成功实施软件测试是至关重要的。