【技术前沿】软件测试自动化技术应用研究
研发部 陈嘉玲
软件测试是保证软件质量、开发进度和成本的重要手段。其目的是通过设计测试用例对系统进行相应的测试,来检验系统是否满足规定的需求以及与预期结果之间的差别,以保证系统的质量。
此外,软件测试还可以发现人们不易发现的错误或潜在的危险,保证产品投入使用后的低返修率,提高公司效益,维护公司形象和地位。得益于软件技术和编码技术的巨大发展,虽然软件设计和编码效率得到极大提高,但是软件测试的工作量并没有因此而减少,反而在软件的开发周期中,软件测试所占的比例会提高。
软件测试的过程大致如图l所示:
1 软件测试自动化
软件自动化测试流程如图2所示,软件测试团队以它为基础,根据实际要求,定制符合团队使用的软件测试流程。各部分的目的如下所述:制定测试计划以确定并描述要实施及执行的测试。设计测试以确定、描述和生成测试过程和测试用例。实施测试是实施(记录、生成或编写)设计测试中定义的测试过程,输出测试脚本,执行测试以确保整个系统按既定意图运行,系统集成员在各迭代中编译并链接系统。每一迭代都需要测试增加的功能,并重复执行以前版本测试过的所有测试用例(回归测试)。
评估测试生成并交付测试评估摘要,是通过复审并评估测试结果、确定并记录变更请求及计算主要测试评测方法来完成的。测试评估摘要以组织有序的格式提供测试结果和主要测试评测方法,用于评估测试对象和测试流程的质量。
1.1 自动化测试标准
自动化测试虽然能减少手工测试工作,但不能完全取代手工测试。完全自动化测试只是一个理想的目标,实际上要达到100% 的自动化测试,不仅所付代价高,而且操作上也难以实现。一般来说,自动化程度的利用率达到40%~60% 已经是相当高,在此级别以上,将大大增加测试相关的维护成本因此,我们要对自动化测试树立一个正确的认识,清醒地认识到自动化测试是人工测试的补充,而无法完全取代测试人员的作用。自动化测试的引入有相关的标准,要综合评估。根据实现成熟度, 自动化测试分5个级别,如表l所示。
自动化测试能提高测试效率,快速检测出软件中的性能和功能缺陷,但不可能发现测试脚本里的设计缺陷。测试要求测试者对测试中各种分支路径的校验点进行定制;若没有完整的定制,即使事实上出错的地方,测试工具也不会发觉。
表1
1.2 自动化测试工具
目前常用的自动化测试工具一般可以分为白盒测试工具、黑盒测试工具、性能测试工具,此外还有测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)工具。常用的白盒测试有Telelogic的Logiscope软件、Compuware的DevPartner软件以及IBM 的Rational Purify等;常用的黑盒测试工具有mM的Rational系列,如TeamTest Robot、Compuware的QACenterm等。如图2所示:
1.3 自动化测试在测试工作中的作用
在不同阶段测试采用自动化测试的优势如表2所示。
表2
2 软件测试自动化的设计及实施
2.1自动化测试系统框架设计
自动化测试的适用范围和实现机制主要包括以下关键要素,如表3所示。
表3
根据这些关键要素及测试的实现机制,确定软件自动化测试的体系框架 ,如图3所示。利用行业业务规则和自动化测试脚本语言可设计测试用例脚本。
图3
2.2 自动化测试脚本选择
自动化测试脚本包含测试工具中使用的数据和指令,如同步、比较信息、从何处读数据、数据存放在何处以及控制信息等,实际脚本语言与使用的工具有关。一个好的脚本应该满足被实现的测试用例的要求,即好的脚本应该是便于使用的,并且具有良好的可靠性和易维护性。一个好的脚本应该遵循以下标准:
◆ 注释:为用户和管理者提供帮助。
◆ 功能:执行单个任务但可以复用,每个脚本有一个明确单一的目的。
◆ 结构:易理解和易维护。
◆ 支持:提供给用户和管理者的文档应清晰、简洁、有助于复用和维护。
脚本技术分为:线性结构脚本、共享脚本、数据驱动脚本、关键字驱动脚本。每种脚本都有其各自的用途 ,并且在支持脚本完成测试用例的时间和开销上都各有长短。根据所要实现的测试用例体系,综合应用脚本技术,以最好的方法实现测试用例。
2.3 自动化测试的实施
选取合适的自动化测试工具,编写适用于各种工具的测试脚本,实现某测试用例。通过运行测试脚本即可执行该测试用例,并通过脚本自动检查测试用例的执行结果。与手工测试一样,要制定缺陷管理、13志分析、度量跟踪等规程来管理自动化测试的执行 。测试流程的控制基于科学的测试流程和具体的规范来实现,并用流程和规范严格约束、控制整个产品的测试周期,以确保产品的质量。
软件测试自动化有效率高、速度快、全面实行回归测试等优点,是软件测试的发展趋势。