软件测试-功能测试(测试用户报告)

在软件测试中,有几种常用的测试用例设计方法,每种方法都有其特定的应用场景和优缺点。以下是几种常见的测试用例设计方法:

正交表的表现形式可描述如下:

L 行数(水平数因素数)

行数(Runs):正交表中行的个数,也就是实验的次数,也指测试用例的个数。

因素数(Factors):指正交表中列的个数。

水平数(Levels):任何单个因素能够取得的值的最大个数。

如何选择正交表是一个关键问题。首先考虑因素的个数,其次考虑因素水平的个数,最后考虑正交表的行数,且选择符合条件的行数最少的一个正交表进行套用。笔者会通过案例详细讲解它的套用方法。

读者可能会有疑问,正交实验法是根据正交性从全面实验中挑选出部分有代表性的点进行实验,它的选择原理是什么呢?为什么这个表格可以代表所有的实验可能呢?主要是因为选择出来的这些有代表性的点具备了“均匀分散、齐整可比”的特点。

整齐可比性: 在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在实验中每个因素的每个水平与其他因素的每个水平参与实验的几率是完全相同的,这就保证在各个水平中最大程度的排除了其他因素水平的干扰。因而,能最有效地进行比较和做出展望,容易找到好的实验条件。

均衡分散性: 在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了实验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的实验条件。

以上特点充分体现了正交表的两大优越性,通俗地说,每个因素的每个水平与另一个因素的每个个水平都能够出现一次组合,这就是正交性。使用正交实验法设计测试用例的步骤如下:

进入下一章节

  1. 等价类划分法(Equivalence Partitioning):

    • 根据输入域的特性,将输入数据划分为若干个等价类,然后从每个等价类中选择一个代表性的值作为测试用例。
    • 这种方法可以有效地减少测试用例的数量,同时覆盖了各个等价类的情况。
    • 例如,对于一个要求输入 1 到 100 的数字的功能,可以选择 1、50、100 作为测试用例,分别代表小于、中间和大于范围的情况。
  2. 正交法

    交实验法是套用正交表来设计测试用例的方法。

    那什么是正交表呢?古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方,正交表由此演化而来。正交表是通过运用数学理论在拉丁方和正交拉丁方的基础上,从大量的(实验)数据中挑选合适的、有代表性的条件组合构造而成的规格化表格。

    正交实验法是一种基于正交表的、高效率、快速、经济的实验设计方法,它研究的“多因素多水平”的情况,然后套用正交表来随机地产生用例(用例之间没有主次之分),是一种提高测试覆盖率的简单易用的方法。

    因素(Factor):在一项实验中,凡是被考查的变量就称为因素。

    水平(Level):在实验范围内,因素被考查的值称为水平。

    前文有提到,正交实验法是套用正交表来随机地产生用例的一种方法。一些测试新人容易陷入“研究如何得出正交表”的错误思维,在此提醒一下,正交表格是无数科学家的智慧凝聚而成,读者无需去深究正交表是如何得出的,我们在设计测试用例的时候直接去套用对应的表格即可。

    查询正交表的方式有 2 种:

  3. 为方便读者使用,本书在附录 1 中列出了一些常用的正交表格。可通过附录查询适合的正交表。
  4. 通过链接查询:http://support.sas.com/techsup/technote/ts723_Designs.txt
  5. 确定有哪些因素?
  6. 确定每个因素有几个水平?
  7. 选择合适的正交表。
  8. 把变量的值映射到表中。
  9. 加上认为可疑且没有在表中出现的组合。
  10. 把每一行的各因素水平的组合作为一个测试用例
  11. 边界值分析法(Boundary Value Analysis):

    • 在等价类划分的基础上,选择处于边界值的数据作为测试用例,以验证系统对边界情况的处理能力。
    • 通常会选择边界值、边界值的上下限以及边界值附近的值作为测试用例。
    • 这种方法有助于发现输入数据边界处的错误,是一种常用的测试用例设计方法。
  12. 场景法

    场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。我们知道,现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想已被引入到软件测试中,生动的描述出事件触发时的情景。提出这种思想的是 Rational 公司,在 RUP2000 中文版当中有其详尽的解释和应用。

    场景法一般包含基本流和备选流,从一个流程开始,通过描述经过的路径来确定测试用例的过程,经过遍历所有的基本流和备选流来完成整个场景。我们通常以正常的用例尝尽刚开始分析,再着手分析其他的场景。

    基本流也叫有效流或正确流,主要是模拟正确的业务操作过程的情景。

    备选流也叫无效流或错误流,主要是模拟错误的业务操作过程的情景。

    基本流一般采用直黑线表示,是经过用例的最简单路径,无任何差错,程序从开始直接执行到结束;备选流则采用不同颜色表示。一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中,备选流一般代表了各种错误情况。

    下图展示了一个场景的示例图,在下图中,有一个基本流和 4 个备选流。每个经过的可能路径可以确定不同的用例场景。从“用例开始”到“用例结束”,遍历所有的路径,可以确定以下 8 个用例场景。(为了方便,场景 5、6、8 只考虑了备选流 3 循环执行一次的情况。)

    场景 1:基本流

    场景 2:基本流 备选流 1

    场景 3:基本流 备选流 1 备选流 2

    场景 4:基本流 备选流 3

    场景 5:基本流 备选流 3 备选流 1

    场景 6:基本流 备选流 3 备选流 1 备选流 2

    场景 7:基本流 备选流 4

    场景 8:基本流 备选流 3 备选流 4

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值