在实际工作中,什么样的系统或项目适合自动化测试呢?一般情况下可以从两个方面来考虑: 一是重复性和机械性程度;二是判断结果的智力程度,如图 17-1 所示。重复性和机械性越高的项 目越适合进行自动化测试,而智力程度越高的项目越不适合进行自动化测试。
适合自动化测试的对象可以归纳为以下几类: 重复性和机械性高的功能:重复性和机械性越高的项目越适合进行自动化测试,因为重 复性和机械性越高,说明回归测试的次数越多,并且给测试工程师带来疲倦程度可能会 越高,这种情况很适合进行自动化测试。 产品生命周期:一般产品生命周期越长的项目越适合进行自动化测试,因为产品生命周 期长,说明脚本在后期软件升级后还可以使用,当然如果每个升级版本之间功能和界面 变换很大也不适合,但一般不会出现这种情况,而是新增一些功能,这样以前版本的脚 本就可以直接使用,就可以更专注于新功能的测试。 多次执行 Build 版本:如果在一个发布的版本过程中(如即将发行 V2.0),有多个 Build 测试的版本,并且每个 Build 版本之间同一个功能修改的界面比较少,这种情况适合自动 化测试。
多平台测试:如果软件要支持多平台的运行(如软件需要在 Windows XP、Windows Vista、 Windows 7 和 Windows 8 系统运行),每个平台执行的测试用例都是一致的,这样可以采 用自动化测试,只要将脚本在不同的平台运行即可,这样可以提高效率。 其实研究某个软件是否适合自动化测试,主要研究收益比(Return On Investment,ROI),即 项目进行自动化测试需要的成本与进行手工测试需要的成本关系,很显然当自动化测试的成本比手 工测试的成本低时,就可以实施自动化测试。 下面介绍一个简单的自动化测试投入回报率的计算方法: (1)自动化测试成本=软硬件成本+脚本开发成本+(脚本执行一次的成本×脚本执行次数)+ (每个 Build 版本脚本维护成本×脚本执行次数); (2)手工测试成本=测试用例设计成本+(手工测试执行一次成本×测试用例执行次数)+(每 个 Build 版本测试用例维护时间×测试用例执行次数); (3)收益=手工测试成本-自动化测试成本; (4)ROI(收益比)=收益/自动化测试成本。