51Testing软件测试论坛

标题: 测试用例设计指南 [打印本页]

作者: maoshan    时间: 2007-1-24 17:10
标题: 测试用例设计指南
1 测试用例设计步骤
步骤1:首先使被测单元运行
任何单元测试说明的第一个测试用例应该是以一种可能的简单方法执行被测单元。看到被测单元第一个测试用例的运行成功可用增强人的自信心。如果不能正确执行,最好选择一
个尽可能简单的输入对被测单元进行测试/调试。
这个阶段适合的技术有:
模块设计导出的测试
对等区间划分
步骤2:正面测试
正面测试的测试用例用于验证被测单元能够执行应该完成的工作。测试设计者应该查阅
相关的设计说明;每个测试用例应该测试模块设计说明中一项或多项陈述。如果涉及多个设
计说明,最好使测试用例的序列对应一个模块单元的主设计说明。
适合的技术:
设计说明导出的测试
对等区间划分
状态转换测试
步骤3:负面测试
负面测试用于验证软件不执行其不应该完成的工作。这一步骤主要依赖于错误猜测,需
要依靠测试设计者的经验判断可能出现问题的位置。
适合的技术有:
错误猜测
边界值分析
内部边界值测试
状态转换测试
步骤4:设计需求中其他测试特性用例设计
如果需要,应该针对性能、余量、安全需要、保密需求等设计测试用例。
在有安全保密需求的情况下,重视安全保密分析和验证是方便的。针对安全保密问题的
测试用例应该在测试说明中进行标注。同时应该加入更多的测试用例测试所有的保密和安全
冒险问题。
适合的技术:
设计说明导出的测试
应该或已有测试用例所达到的代码覆盖率。应该增加更多的测试用例到单元测试说明中
以达到特定测试的覆盖率目标。一旦覆盖测试设计好,就可以构造测试过程和执行测试。覆
盖率测试一般要求语句覆盖率和判断覆盖率。
适合的技术:
分支测试
条件测试
数据定义-使用测试
状态转换测试
步骤5:测试执行
使用上述5 个步骤设计的测试说明在大多少情况下可以实现一个比较完整的单元测试。

到这一步,就可以使用测试说明构造实际的测试过程和用于执行测试的测试过程。该测试过程可能是特定测试工具的一个测试脚本。
测试过程的执行可以查出模块单元的错误,然后进行修复和重新测试。在测试过程中的动态分析可以产生代码覆盖率测量值,以指示覆盖目标已经达到。因此需要在测试设计说明中需要增加一个完善代码覆盖率的步骤。
步骤6:完善代码覆盖
由于模块单元的设计文档规范不一,测试设计中可能引入人为的错误,测试执行后,复杂的决策条件、循环和分支的覆盖率目标可能并没有达到,这时需要进行分析找出原因,导致一些重要执行路径没有被覆盖的可能原因有:
不可行路径或条件 ―― 应该标注测试说明证明该路径或条件没有测试的原因。
不可到达或冗余代码 ―― 正确处理方法是删除这种代码。这种分析容易出错,特
别是使用防卫式程序设计技术(Defensive Programming Techniques)时,如有疑
义,这些防卫性程序代码就不要删除。
测试用例不足 ―― 应该重新提炼测试用例,设计更多的测试用例添加到测试说明
中以覆盖没有执行过的路径
理想情况下,覆盖完善阶段应该在不阅读实际代码的情况下进行。然而,实际上,为达
到覆盖率目标,看一下实际代码也是需要的。覆盖完善步骤的重要程度相对小一些。最有效
的测试来自于分析和说明,而不是来自于试验,依赖覆盖完善步骤补充一份不好的测试设计。
适合的技术:
分支测试
条件测试
设计定义――试验测试
状态转换测试

2 用例设计的一般原则
注意到前面产生测试说明步骤可以用下面的方法完成:
通常应该避免依赖先前测试用例的输出,测试用例的执行序列早期发现的错误可能
导致其他的错误而减少测试执行时实际测试的代码量;
测试用例设计过程中,包括作为试验执行这些测试用例时,常常可以在软件构建前就发现BUG。还有可能在测试设计阶段比测试执行阶段发现更多的BUG。
在整个单元测试设计中,主要的输入应该是被测单元的设计文档。在某些情况下,
需要将试验实际代码作为测试设计过程的输入,测试设计者必须意识到不是在测试
代码本身。从代码构建出来的测试说明只能证明代码执行代码完成的工作,而不是
代码应该完成的工作。

3、测试用例设计技术
广义地分为两类:
黑盒测试:使用单元接口和功能描述,不需了解被测单元的内部结构
白盒测试:使用被测单元内部如何工作的信息
灰盒测试:借助于源代码和测试工具等手段,通过黑盒和白盒测试相结合的方法进行测试的技术。
测试设计最重要的因素是经验和常识。测试设计者不应该让某种测试技术阻碍经验和常识的
运用。
白盒测试用例设计:使用程序设计的控制结构导出测试用例。
采用白盒测试的目的主要是:
保证一个模块中的所有独立路径至少被执行一次;
对所有的逻辑值均需要测试真、假两个分支;
在上下边界及可操作范围内运行所有循环;
检查内部数据结构以确保其有效性。

黑盒测试用例设计:使用详细设计导出测试用例。
采用黑盒测试的目的主要是:
检查功能是否实现或遗漏;
检查人机界面是否错误;
数据结构或外部数据库访问错误;
性能等其它特性要求是否满足;
初始化盒终止错误




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2