XJTUSE-软件质量保证实操

前言

根据该博客的说法:

软件质量保证基本知识加复习建议-CSDN博客

就是让做的那个JUnit5的实验,考的也比较简单,我们只考到了让编写对于一个东西的测试代码,如果实验自己写的完成这个也不是很困难,然后再就是给了一个网易邮箱的注册界面,让等价类分析,然后还有路径测试,和边界值测试

我自己考过试的人的说法,自己编一些题目,进行实操试试看

网易邮箱(等价类测试)

题目

题目是自己编的

请根据以上界面,完成等价类分析,编写等价类测试用例。

分析

首先,将该界面的信息提取出来:

一共有四个可选的输入:

  1. 邮箱地址
  2. 密码
  3. 手机号码
  4. 勾选同意《条款》

而输出应该只有一个:

  1. 注册成功与否

对于输出不需要进行等价类分析了;

对于输入进行分析:

邮箱地址

注意到小字部分:以字母开头,支持字母、数字组合

所以说,邮箱地址的编写应该符合某种规范。

对于,需要符合某种规范的等价类规则如下:

因此,可以得到以下输入条件:

  1. 邮箱地址是否以字母开头
  2. 邮箱地址是否仅包含字母和数字

根据每个输入条件,违背一个得到一个无效等价类,得到了如下等价类:

  1. 有效等价类:以字母开头,是字母和数字的组合。
  2. 无效等价类:1、不以字母开头,但仅包含字母数字;2、以字母开头,包含其他字符。

密码

密码在界面好像没有过多限制,不过可以想到一些常规的限制,即我们自定义。

自定义以下输入条件:

  1. 密码长度
  2. 密码是否过于简单,比如只包含数字或者只包含字符。

得到以下等价类:

  1. 有效等价类:密码长度合规,且够复杂。
  2. 无效等价类:1、密码长度合规但过于简单;2、密码长度超标

手机号码

手机号码分析应该都会直接给了

输入条件:

  1. 手机号码长度
  2. 手机号码是否存在

等价类:

  1. 有效等价类:存在的手机号
  2. 无效等价类:1、不符合长度要求的手机号;2、符合长度要求但不存在的手机号。

勾选

只有勾选和未勾选两个选项,不赘述。

请注意,上述的分析存在不严谨之处,还带有主观色彩,主要是传达等价类测试的思想。

解答

注册邮箱的输入条件如下:

编号条件
A1邮箱地址是否以字母开头
A2邮箱地址是否只为字母数字组合
A3密码长度
A4密码是否过于简单
A5手机号码长度
A6手机号是否存在
A7是否勾选《条款》

注册邮箱的等价类划分如下:

编号有效等价类无效等价类
A1邮箱地址以字母开头(1)不以字母开头(2)
A2仅为字母数字组合(3)包含了其他字符(4)
A38<=密码长度<=15(5)密码长度>15(6);密码长度<8(7)
A4密码符合,够复杂(8)密码过于简单(9)
A58<=手机号码长度<=15(10)手机号码长度>15(11);手机号码长度<8(12)
A6手机号码存在(13)手机号码不存在(14)
A7勾选条款(15)不勾选条款(16)

 注册邮箱的等价类测试用例如下(注:这里采用了弱健壮等价类测试):

测试用例输入预期输出
邮箱地址密码手机号码勾选
1YiYo832YiYo832123134567955(存在)注册成功
2832YiYoYiYo832123134567956(存在)注册失败
3YiYo832****YiYo832123134567957(存在)注册失败
4YiYo832123456789123456000134567958(存在)注册失败
5YiYo832123134567959(存在)注册失败
6YiYo83212345678(过于简单)134567960(存在)注册失败
7YiYo832YiYo832123123456789123456000注册失败
8YiYo832YiYo83212313注册失败
9YiYo832YiYo832123123456789(不存在)注册失败
10YiYo832YiYo832123134567964(存在)注册失败

至此,等价类测试的一般大题步骤结束。

优化还存在,比如可以细化输入条件,还可以从输出等价类分析(如果有的话)。

三角形程序(边界值分析)

三角形程序在课上被反反复复提及了好多次,下面使用其程序进行边界值分析的讲解。

题目

 分析

如果是等价类测试还挺麻烦的,但是边界值测试属实是小打小闹,就三个输入,取值范围都一样。

给出:

  • min-  = 0
  • min = 1
  • min+ = 2
  • norm = 50
  • max- = 99
  • max = 100
  • max+ = 101

解答

看清楚题目的要求是什么边界值测试:

  1. 普通边界值测试:单缺陷假设,考虑5种值,4n+1个测试用例。
  2. 健壮性测试:单缺陷假设,考虑7种值,6n+1个测试用例。
  3. 最坏情况测试:多缺陷假设,考虑5种值,5^n个测试用例。
  4. 健壮最坏情况测试:多缺陷假设,考虑7种值,7^n个测试用例。

下面就以健壮性测试为例吧

健壮性测试的测试用例如下: 

用例输入预期输出
abc
1505050等边三角形
205050不构成三角形
315050等腰三角形
425050等腰三角形
5995050等腰三角形
61005050不构成三角形
71015050不构成三角形
195050101不构成三角形

一段小程序(DD路径)

DD路径可以看书,比较详细,P74-76

题目

#include "stdio.h"
void  main()
  {                            ①//1
    int  n,i;
    int  x=0;
	int  y=0;
	printf("请输入n\n");
	scanf("%d",&n);
	printf("请输入i\n");
	scanf("%d",&i);

    while ( n-- > 0 )               ②//2
    {
	     if ( i==0 )                ③//3
		     x=y+2;               ④//4
        else                    
	         if ( i==1 )            ⑤//5
              y=y+10;           ⑥//6
           else                  
              x=y+20;            ⑦//7
	}// while                       ⑧ //8
    printf("x=%d,y=%d\n",x,y);     
}// main                                  ⑨//9

问题:

(1)画出上述算法的程序流图;

(2)求程序的环复杂度并设计该程序的基本路径测试用例。

网上找的题目,估计考试不会考循环,但原理差不多

解答

DD路径

 

环复杂度

V(G)=E-N+2

E=11

N=9

所以V(G)=11-9+2=4

语句覆盖

编号输入
ni覆盖语句
1201、2、3、4、8、9
2211、2、3、5、6、8、10
3221、2、3、5、7、8、11

判定覆盖

同语句覆盖

由于判断都只涉及一个变量,条件覆盖,判定-条件覆盖,条件组合覆盖不再给出。

路径覆盖

一共有四条独立路径

路径1:1-2-3-4-8-9

路径2:1-2-3-5-6-8-9

路径3:1-2-3-5-7-8-9

路径4:1-2-9

用例编号

路径

输入数据

预期输出

1

1-2-3-4-8-9

n=1,i=0

x=2,y=0

2

1-2-3-5-6-8-9

n=1,i=1

x=0,y=10

3

1-2-3-5-7-8-9

n=1,i=2

x=20,y=0

4

1-2-9

n=0,i=3

x=0,y=0

三角形程序(等价类测试)

题目

输入三个数a、b、c,分别作为三角形的三条边,通过程序判定该三角形的类型是否为一般三角形、等腰三角形或等边三角形。用等价类划分法为该程序设计测试用例。分析:题目中给出和隐含的对输入条件的要求:(1)三个数(2)非零数(3)正数(4)两边之和大于第三边(5)等腰(6)等边。如果 a 、 b 、 c 满足条件( 1 ) ~ ( 3 ),则输出下列四种情况之一: 

1) 如果不满足条件(4),则程序输出为 " 非三角形 " 。  

2) 如果三条边相等即满足条件(6),则程序输出为 " 等边三角形 " 。 

3) 如果只有两条边相等、即满足条件(5),则程序输出为 " 等腰三角形 " 。 

4) 如果三条边都不相等,则程序输出为 " 一般三角形 " 。  

列出等价类表并编号,根据编号设计覆盖有效等价类和无效等价类的测试用例。

解答

1.对于输入进行等价类测试:

输入条件的等价类:

输入等价类

有效等价类

无效等价类

参数个数

三个数(1)

小于三个数(4)

大于三个数(5)

参数是否为零

a,b,c!=0(2)

a=0(6)

b=0(7)

c=0(8)

参数是否为正数

a,b,c>0(3)

a<0(9)

b<0(10)

c<0(11)

为有效类设计测试用例:

测试数据

期望结果

覆盖范围

a=10,b=10,c=10

等边三角形

等价类(1)(2)(3)

为每一个无效等价类设计至少一个测试用例:

测试数据

期望结果

覆盖范围

a=10,b=10

输入无效

等价类(4)

a=10,b=10,c=10,d=10

输入无效

等价类(5)

a=0,b=10,c=10

输入无效

等价类(6)

a=10,b=0,c=10

输入无效

等价类(7)

a=10,b=10,c=0

输入无效

等价类(8)

a=-10,b=10,c=10

输入无效

等价类(9)

a=10,b=-10,c=10

输入无效

等价类(10)

a=10,b=10,c=-10

输入无效

等价类(11)

2.对于输出进行等价类测试:

输出条件的等价类:

输出等价类

条件

输出结果

1

不满足条件(4)

非三角形

2

满足条件(6)

等边三角形

3

满足条件(5),而且a=b!=c

等腰三角形

4

满足条件(5),而且a=c!=b

等腰三角形

5

满足条件(5),而且c=b!=a

等腰三角形

6

满足条件(4),而且三边不相等

一般三角形

为每一个输出条件的等价类设计至少一个测试用例:

测试数据

期望结果

覆盖范围

a=10,b=10,c=100

非三角形

等价类(1)

a=10,b=10,c=10

等边三角形

等价类(2)

a=10,b=10,c=15

等腰三角形

等价类(3)

a=10,b=15,c=10

等腰三角形

等价类(4)

a=15,b=10,c=10

等腰三角形

等价类(5)

a=6,b=8,c=10

一般三角形

等价类(6)

3.综合输入输出等价类,得到全部测试用例:

测试数据

期望结果

覆盖范围

a=10,b=10,c=100

非三角形

输出等价类(1)

a=10,b=10,c=10

等边三角形

输出等价类(2)

a=10,b=10,c=15

等腰三角形

输出等价类(3)

a=10,b=15,c=10

等腰三角形

输出等价类(4)

a=15,b=10,c=10

等腰三角形

输出等价类(5)

a=6,b=8,c=10

一般三角形

输出等价类(6)

a=10,b=10

输入无效

输入等价类(4)

a=10,b=10,c=10,d=10

输入无效

输入等价类(5)

a=0,b=10,c=10

输入无效

输入等价类(6)

a=10,b=0,c=10

输入无效

输入等价类(7)

a=10,b=10,c=0

输入无效

输入等价类(8)

a=-10,b=10,c=10

输入无效

输入等价类(9)

a=10,b=-10,c=10

输入无效

输入等价类(10)

a=10,b=10,c=-10

输入无效

输入等价类(11)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值