分类:
2011-05-27 19:38:20
敏捷测试技术研究--IASN·爱朔科技 |
随着敏捷开发过程流行,敏捷测试方法也开始受到更多的关注。同时,用例的选择和生成也是测试中的一个重要研究领域,测试用例的质量将直接决定测试的科学性和有效性。本文基于集成测试框架F(Framework for Integrated Test),并结合两两组合覆盖的测试用例自动生成技术,实现从接口参数边界值的确定,到以HMTL形式显示集成测试结果过程的半自动化过程。 |
敏捷开发过程,指的就是一种与传统的瀑布模型开发和CMM(Capability Maturity Model,开发的能力成熟度模型)所追求的严谨的文档制度截然相反的开发过程。这一开发过程注重开发和成员之间的关系而不是以开发的进程和使用的工具为重点,注重所开发的产品而不是追求广泛的文档编制,注重开发过程中与客户的协同工作而不是以签订合同的谈判为工作的核心,注重在开发过程中随时调整计划而不是同意完全遵循某一开发计划,以实现所谓开发过程的“敏捷”。
1.2 敏捷测试及其研究现状
敏捷方法的发展,打破了传统的瀑布开发模型,改变了整个开发过程中的角色和定位。由于在敏捷开发运动的初期,主要依靠开发人员来进行推动。很多测试人员不了解敏捷方法,仍然习惯了按照传统的瀑布模式进行测试,即按照V模型所指导的步骤进行测试,保证与需求、设计的相符合,但这样很容易形成了一种测试思维的定势。当“用户需求不明确”、“需求变化较快”时,沿用传统测试方法的测试人员将变的无所适从。
目前比较流行的敏捷测试方法有测试驱动开发和相关环境驱动测试等。还有很多国外知名专家按照“敏捷”的原理为测试开发了相应的测试框架,其中最着名的就是Kent Beck等提出的xUnit系列单元测试框架和Ward Cunningham等提出的Framework for Integrated Test(F)集成测试框架。xUnit系列提出的比较早,目前已有一套完善的测试工具和方法论来支持了,适用于各种语言的单元测试。F框架是当前国内外的研究重点,很多知名的测试专家如Lisa Crispin等都在如何使用F进行有效的测试方面得出了很多的研究成果。
1.3 基于接口参数的测试用例自动生成算法
在测试工作中,由于输入、输出空间,特别是输入空间的无限性,使得无法对进行全面的测试。因此,如何从大量的输入数据中挑选适量的具有代表性、典型性的数据,特别是怎样用较少的测试用例对进行较全面的测试是测试人员面临的一大难题。
测试用例的选择无论是对黑箱测试还是对白箱测试都起着关键的作用,决定着测试的质量和效果。所谓测试用例选择就是指从所有的可用测试用例中选出少量典型的测试用例,以达到对测试域的最大限度覆盖。多年来,许多研究者对之进行了广泛而深入的研究,并取得了许多研究成果。常用的基于接接口参数的黑箱测试用例选择方法是对系统每个接口参数采用边际值分析法和等价类划分法等选取一组典型的值,然后在这些取值组合中随机选取一组测试用例,或者使用一些启发式方法从中进行筛选。但这些方法的缺点是带有主观倾向性,不具有普遍性。
二。 基于敏捷测试的相关技术讨论
2.1 F框架及应用
在敏捷开发过程中,测试是至关重要的,尤其是在最为流行的敏捷开发过程:极限编程(XP)中显的更为突出。诚然,所有的过程都提到测试,但一般都不怎么强调。可是XP将测试作为开发的基础,要求每个程序员写一段源码时都得写相应的测试码。这些测试片段不断地积累并被整合到系统中。这样的过程会产生一个高度可靠的建造平台,为进一步开发提供了良好的基础。
但是,即使是单元测试工具JUnit也存在一些缺点:比如JUnit里要进行数据填充,但是数据经常改变,使维护工作变成了可怕的噩梦,测试不同的组合,需要不同的数据,这也许会使测试工作变得日益复杂。而目前的集成测试又缺乏有效的方法论,不能自动化,测试的质量比较依赖测试人员的水平。
Framework for Integrated Test(简称F)就是一个用于增强交流和协作的工具。F创建了一个在客户和程序员之间的反馈循环。F让客户和测试人员可以使用诸如Microsoft Office之类的工具来给出程序应当如何表现的例子——而无需成为直接编码的程序员。F自动针对实际的程序检测那些例子,这样就在业务世界和工程世界之间建立了一个简单而且有效的桥梁。
F给予了客户和程序员一个关于的精确交流的方法。客户所给的具体的例子让程序员能深刻理解将要构建的产品。程序员的对于装置的工作和可以让客户给出不同的例子进行试验来获取对于如何真正工作更深入的了解。这样通过一起工作,整个可以学会更多关于产品的内容并产生更好的结果。
2.2 测试用例自动生成技术
正交试验设计起源于科学试验,它由田口玄一博士在1949年创立,并于60年代初从日本传人中国。它应用依据Galois理论导出的正交表,从大量试验条件中挑选出适量的、有代表性的条件来合理地安排试验。运用这种方法安排的试验具有“均匀分散、整齐可比”的特点。“均匀分散”性使试验点均衡地分布在试验范围内,让每个试验点有充分的代表性;“整齐可比”性使试验结果的分析十分方便,可以估计各因素对指标的影响,找出影响事物变化的主要因素。
但正交试验设计仍然存在着一些有待解决的弊端:比如正交表难以构造,因素、水平过多时测试用例数目还是过多等。所以一些专家又提出一种基于对接口参数进行组合覆盖的黑箱测试用例自动生成算法模型,据此来得到一个对所有接口参数进行两两组合覆盖的测试用例表。这种方法有着类似正交试验设计的特点,实际上,在特定情况下,这种算法模型得出的测试用例表就是正交表。
三。技术实现的考虑
3.1 基于F框架对进行集成测试
使用基于F框架的开源F工具来实现真正的测试先行开发过程,并让客户、需求提报工程师、开发人员、以及测试人员进行协同工作,达到需求更精准、减少需求更改、测试数据与JUnit单元测试代码分离的目的,让这一切更简洁、更易于维护。
将根据以下步骤进行研究:
1) 使用F框架进行实际项目测试的实践,从中提炼出一套使用F框架进行集成测试的通用方法。
2) 通过实践,对F框架进行合理的改进和拓展,结合JUnit单元测试,现实单元测试和集成测试的无缝连接,达到提高质量的效果。
3) 在理论研究和实践的基础上,规约出适用于单元测试和集成测试的通用方法。
3.2 整合测试用例的自动生成技术至F
按照敏捷过程中“简单”原则,本课题将编写一个辅助接口测试的工具,用来自动产生少而有效的测试用例,以达到对测试域的最大限度覆盖。通过该工具产生的测试用例表,能符合F框架的要求,并可被F所执行而得到HTML形式的可视化的测试结果。通过这种方式,大大增加了测试的自动化。
为了实现该目标,将按照以下步骤进行研究:
1) 查看“正交试验设计方法”的原理及其资料,了解测试用例生成的规则。
2) 查阅两两覆盖测试用例生成的相关算法,并根据算法用程序实现,进行实践研究。
3) 根据实践研究,对两两覆盖测试用例进行改进,以期能更高效的实现测试用例的生成。
4) 修改依据改进后的算法实现的测试工具,使其输入输出符合F框架的要求。在此基础上,把此工具集成到F框架中。
四。 小结
本文讨论了当前测试中的两大重要研究领域:敏捷测试方法和测试用例的选择与生成技术。进一步的工作是,根据“敏捷”的集成测试框架F需要人工构造表格形式的数据作为输入的前提,深入研究如何自动生成F需要的表格数据?再对F进行扩展,为F嵌入测试用例表格自动生成功能。其中测试用例集的生成将依据各参数两两覆盖的原则,以求达到对测试域的最大限度覆盖。
文章来源于IASN·爱朔科技