等价类划分法,边界值分析法,因果图法,功能图分析法,综合的案例分析, 同时对黑盒测试的几种方法进行的比较,最后介绍了常用的几种黑盒测试的工具。 一:1.等价类划分 在软件测试中,穷举法虽然是最安全最保险的一种方法但成本代价高,一般是不可取的。我们可以通过等价类划分方法花费最小的代价来完成最高效的测试。 等价类划分是把程序输入域划分成若干子集,然后从子集中选取少数具有代表性的数据进行测试。在子集集合中,各个输入数据对于揭露程序中的错误是等价的。等价类分为有效等价类和无效等价类。 1.1有效等价类 对于程序规格来说合理的、有意义的输入数据的集合,检验程序是否实现了规格说明中的功能和性能。 1.2无效等价类 不合理的、无意义的输入数据集合,验证程序处理意外数据的能力。 2.边界值分析法 以往的测试经验表明,由于需求界定不准确、设计不严密、程序书写手误等等原因,对于这些数据范围边界的判断是软件极容易出错的地方。大量的错误往往发生在输入或输出范围的边界上,因此针对各种边界情况设计测试用例,可以检查出更多的错误。 3. 因果图法:等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。因果图法着重测试规格说明中的输入与输出间的依赖关系。 5. 功能图分析法是用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成。 功能图法生成测试用例 功能图由状态迁移图和布尔函数组成。状态迁移图用状态、迁移来描述一个状态,指出数据输人的位置(或时间),而迁移则指明状态的改变,同时要依靠判定表和因果图表示的逻辑功能。 那么采用什么样的方法生成测试用例?从功能图生成测试用例,得到的测试用例数是可接受的。问题的关键是如何从状态迁移图中选取测试用例。若用节点代替状态,用弧线代替迁移,状态迁移图就可转化成一个程序的控制流程图形式。问题就转化为程序的路径测试问题了(白盒测试范畴概念)。 测试用例生成规则是为了把状态迁移(测试路径)的测试用例与逻辑模型的测试用例组合起来,从功能图生成实用的测试用例。在一个结构化的状态迁移中定义了3种形式的循环,即顺序、选择和重复。但分辨一个状态迁移中的所有循环是有困难的。 从功能图生成测试用例的过程如下。 (1)生成局部测试用例:在每个状态中,从因果图生成局部测试用例。局部测试库由 原因值(输人数据)组合与对应的结果值(输出数据或状态)构成。 (2)测试路径的生成:利用上面的规则生成从初始状态到最后状态的测试路径。 (3)测试用例的合成:合成测试路径与功能图中每个状态的局部测试用例,结果是从初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。 (4)测试用例的合成算法:采用条件构造树。 二:比较与选择 测试用例的设计方法不是单独存在的,具体到每个测试项目都会用到多种方法,每种类型的软件有各自的特点,每种测试用例设计的方法也有各自的特点,针对不同软件,如何利用这些黑盒方法是非常重要的,在实际测试中往往是综合使用各种方法才能有效地提高测试效率和测试覆盖度,这就需要用户认真掌握这些方法的原理,积累更多的测试经验,以有效地提高测试水平。 以下是各种测试方法选择的综合策略,可供用户在实际应用过程中参考。 (1)首先进行等价类划分,包括输人条件和输出条件的等价划分,将无限测试变成有限 测试,这是减少工作量和提高测试效率最有效的方法。 (2)在任何情况下都必须使用边界值分析方法,经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。 (3)可以用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验。(4)对照程序逻辑检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆 盖标准,应当再补充足够的测试用例。 (5)如果程序的功能说明中含有输人条件的组合情况,则一开始就可选用因果图法和 判定表驱动法。 (6)对于参数配置类的软件要用正交试验法,选择较少的组合方式达到最佳效果。(7)功能图法也是很好的测试用例设计方法,可以通过不同时期条件的有效性设计不 同的测试数据。 (8)对于业务流清晰的系统可以利用场景法贯穿整个测试案例过程,在案例中综合使 用各种测试方法。 三:黑盒测试工具 软件功能测试是典型的黑盒测试,主要检查实际软件的功能是否符合用户的需求。那么,如何高效地完成功能测试? 选择一款合适的功能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。目前,用于功能测试的工具软件有很多,针对不同架构软件的工具也不断推陈出新,主要的专业开发软件测试工具有 Mercury Interactive 公司的 WinRunner 、 Rational 公司的 Robot 、 Compuware 公司的 QARun 。其基本原理都是通过录制和回放来实现自动化的功能测试,只是在具体实现形式上有所差别。开源的功能测试工具如下: Selenium (http://seleniumhq. org /); 。 AutolT (http://www, autoitscript . com /); AutoHotKey (http://ahkbbs. cn / Help /);· MaxQ (http://maxq. tigris . org /); 。 Twist (http://studios. thoughtworks , com / twist );。 Canoo WebTest (http://webtest. canoo . com /)。 其中, Selenium 是一个用于 Web 应用程序测试的工具,如图10—9所示。 Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样,支持的浏览器有 IE 、 Mozila Firefox 、 Safari 、 Google Chrome 、 Opera 等。这个工具的主要功能是测试与浏览器的兼容性,测试应用程序看是否能够很好地工作在不同浏览器和操作系统上。测试系统功能创建回归测试如验软件功能和用户需求,支持自动录制动作和自动生成. Net 、 Java 、 Perl 等不同语言的脚本。
|