软件测试新技术的进展和应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试新技术的进展和应用

摘要:随着测试技术的发展和测试需求的扩大,自动化测试在软件测试中的优势越来越明显。本文通过对文献资料的阅读,介绍了自动化测试框架、自动化测试用例生成技术两种重要的自动化测试研究技术,对其目前的应用现状和实际使用情况进行了分析,提出了软件测试未来的发展趋势。

关键词:软件测试,自动化测试,测试框架,测试用例

1 引言

软件测试是软件质量保证的重要手段,通过软件测试可以发现软件缺陷,从而修改缺陷,提高软件的质量水平。软件产品的测试比硬件产品的检测要复杂得多,并且软件产品的测试不能充分利用检测工具,还需依赖测试人员的个人判断,对业务知识的掌握程度以及测试用例的设计能力,知识和经验。

随着计算机技术和软件技术的发展,近年来,软件测试在各个领域发挥着重要的作用。随着软件工程的发展,对系统化的软件测试技术和软件测试方法的研究也随之发展。软件测试从静态分析、动态测试等简单的查错行为发展成为系统化的工程行为。为了提高软件的测试效率,减少人员手工操作的次数,克服由于人员水平造成的测试差异,人们开始研究自动化测试技术。

本文通过对大量软件测试技术相关文献的阅读,分析了自动化测试框架、自动化测试用例生成技术两个软件自动化测试的热点问题,结合目前软件企业使用的测试工具,总结了软件自动化测试技术的应用现状和存在的问题,对未来软件测试技术的发展进行了展望。

2 自动化测试

随着软件系统规模的扩大和软件应用领域的不断扩展,软件系统的测试也变更越来越困难,传统的人工测试已无法满足人们的测试需要,虽然自动化测试不能从根本上解决问题,但其技术可以部分解决测试覆盖的问题和测试效率问题。

随着自动化测试技术的不断发展,自动化技术更加注重实用性、有效性和性能的不断提高,自动化软件测试技术同各种传统的人工测试技术相结合,大缩短了测试的时间和测试的开销,自动化测试已成为软件测试技术的重要研究方向。

目前,自动化测试技术的主要研究内容包括:测试自动化框架、测试自动化脚本技术、自动化测试用例生成技术、测试自动化的预测、自动测试与可靠性分析、自动化安全测试技术等。

3 自动化测试框架

自动化测试框架模型的研究是为了使整个测试过程可以建立在一个框架模型之上,这些过程包括编制测试计划、安排测试活动、实现测试及检查和评估测试结果等。

3.1基于程序结构的自动化测试框架

在文献[1]中,作者提出了一种面向程序结构测试的一体化自动测试框架模型——C-ATFM模型。该模型是基于C语言的面向程序的测试框架,集成了自组织的环境,采用源码嵌入式的测试探针技术,模型包括5个模块。

1)语法分析器:用于对源程序进行分析,使用了有限自动机对正则表达式所表示的规则进行

识别。

2)策略配置器:根据所要采用的测试方法来设计测试模型对测试活动的支持,使测试模型具

有较好的适应性,对自动测试的有效性非常重要。

3)指令生成器:自动采集和分析程序结构的控制流信息,在测试策略的控制下,针对不同测

试策略,计算程序动态测试过程,生成测试处理模块并插入到程序中,构成包含测试信息的被测程序,提交给仿真执行模块运行测试。

4)测试用例生成器:在自动测试过程中,为了尽量减少人工的介入,输入处理被实现为一个

独立的模块,在需要时被调用,以模拟人工输入,为程序提供必要的输入数据。测试用例的自动生成技术也是自动化测试的一个重要的研究方向,将在后面的文章中进行介绍。

5)指令仿真执行器:提供测试框架内部的仿真执行环境。

以上测试框架是基于程序结构的测试方法,即主要被用于白盒测试过程中。

3.2基于类的测试模型

面向对象的软件程序开发方法的出现,使软件测试者从传统的基于过程的测试转向基于类的测试。类的封装机制限制了对象对外部的可见性和外部以其的操作权限,而类的继承机制增加了软件测试的复杂性,多态和动态绑定为程序的执行带来了不确定性。由于以上问题的出现,人们开始讨论面向对象的软件测试模型。

文献[2]中给出了一种基于EDPN的类测试模型,作者基于面向对象软件测试的层次划分、测试方法,讨论了从UML图到EDPN图的转换,提出了一种基于EDPN的有标记的唯一输入输出测试用例的生成方式,并设计了基于EDPN模型的类测试模型。该模型可以通过唯一输入输出测试类的状态及状态转移;通过优化正交阵列测试类的交互;还可以通过生成协同路径方法测试类的层次。

4 自动化测试用例生成技术

测试用例可以定义为:①为了特定目标而设计的一组测试输入,执行条件和期望的输出结果;

②为某一测试项记录的特定的输入、预测结果和一组执行条件。

软件测试用例生成是软件测试的核心问题,如何选择较好的测试准则,对提高测试用例发现软件错误的效率具有重要意义。

4.1测试用例生成技术

软件工程技术对软件测试研究的影响表现在三个方面:软件开发过程模型决定了软件测试过程模型,软件体系结构决定了软件测试的层次划分,软件模型决定了软件测试用例生成方法。

文献[3]中提出了基于模型比较的测试方法,该方法将软件需求和软件实现转换为基准模型,通过比较得到需求模型和实现模型的差异,生成测试用例。文中采用了基于等价类的基于模型比较的测试方法和基于扩展有限状态机的基于模型比较的测试方法,并对两种方法进行了对比和分析。

文献[1]中针对不同的测试策略,设计了不同的测试用例自动生成的方法,其方法的设计和实现是基于程序规则说明的决策表技术。文中作者在其设计的自动化测试框架模型下,研究了基于程序规则说明的自动化测试技术,文中,作者采用了人工智能领域的问题求解方式,基于遗传算法的测试用例自动化生成技术和基于启发式学习的测试用例自动生成技术。

文献[2]的作者在给出基于EDPN的测试模型后,提出了一种基于带权EDPN迭代的面向对象系统的分割算法,以迭代的方法将面向对象系统分割成不同粒度而功能独立的测试子系统,并提出了基于组合EDPN模型的交互测试方法,解决了组合冲突和测试用例过多等问题。

4.2测试用例集约简技术

测试用例集约简技术是生成最小测试用例集,最大限度地对软件进行高效率的测试,降低软件测试成本的关键技术之一。测试用例集约简技术也是今年来人们普遍重视和深入研究的话题。

早在1974年,文献[4]的作者就提出了用于简化测试用例集的贪心算法。随着测试用例集约简技

相关文档
最新文档