实验4、黑盒测试:因果图法及测试用例设计

一、实验目的

1、掌握因果图的概念。

2、掌握因果图测试用例设计法。

二、实验任务

1、某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息N;如果第二列字符不是数字,则给出信息M。用因果图法测试该程序,并撰写实验报告。(注:可以用输出“Modify file”模拟程序中要求的修改文件)

实验步骤:

1)分析原因与结果

原因:

    1. 第一列字符是A

    2. 第一列字符是B

    3. 第二列字符是数字

结果:

    1. 进行文件修改

    2.  给出信息N

    3. 给出信息M

2)画出因果图

3)转化为决策表

序号

1.

2.

3.

4.

5.

6.

7.

8.

条件

1)

1

1

1

0

1

0

0

0

2)

1

1

0

1

0

1

0

0

3)

1

0

1

1

0

0

1

0

中间结果

11)

1

1

1

1

0

0

结果

21)

0

0

0

0

1

1

22)

1

1

0

0

0

0

23)

0

0

1

1

0

0

 4)根据决策表设计测试用例,得到测试用例表

测试 用例ID

第一列字符

第二列字符

预期结果

1

A

1

Modify file

2

B

9

Modify file

3

A

&

M

4

%

8

N

5

#

@

NM

测试过程:

这里只选用了一组测试用例进行测试,有需要的可以根据下面提供的代码自行测试

5)执行测试,填写软件缺陷报告(软件缺陷报告格式同实验2)

测试模块:

三角形

开 发 者:

测 试 员:

测试日期:

2024.4.24

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

BUG3

测试代码:

#include <iostream>

#include <string>

#include <cctype>

using namespace std;

int main()

{

string s1, s2;

bool b1 = true, b2 = true;

cin >> s1 >> s2;

if ( s1 != "A" && s1 != "B" ) {

cout << "N";

b1 = false;

}

for ( int i = 0; i < s2.size(); i++ ) {

if ( isdigit( s2[ i ] ) == false ) {

cout << "M";

b2 = false;

break;

}

}

if ( b1 && b2 )

cout << "Modify file";

cout << endl;

return 0;

}


 

2、对三角问题运用因果图法设计测试用例,并执行测试,撰写实验报告。

实验步骤:

1)分析原因与结果

原因:

    1. 1 <= a,b,c <= 200

    2. a + b > c

    3. a = b != c

    4. a = b = c

结果:

    1. 不构成三角形

    2. 普通三角形

    3. 等腰三角形

    4. 等边三角形

2)画出因果图

3)转化为决策表

序号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

条件

(1)

1

1

1

1

0

1

1

0

1

0

0

1

0

0

0

0

(2)

1

1

1

0

1

1

0

1

0

1

0

0

1

0

0

0

(3)

1

1

0

1

1

0

1

1

0

0

1

0

0

1

0

0

(4)

1

0

1

1

0

0

0

0

1

1

1

0

0

0

1

0

中间结果

(11)

1

1

0

1

0

0

0

0

0

0

结果

(21)

0

0

1

0

1

1

1

1

1

1

(22)

0

0

0

1

0

0

0

0

0

0

(23)

1

0

0

0

0

0

0

0

0

0

(24)

0

1

0

0

0

0

0

0

0

0

4)根据决策表设计测试用例,得到测试用例表

测试 用例ID

a

b

c

预期输出

1

-1

199

2

不构成三角形

2

15

201

15

不构成三角形

3

22

22

22

等边三角形

4

31

40

19

普通三角形

5

99

121

200

普通三角形

6

88

88

88

三角形

7

200

200

1

等腰三角形

测试过程:

这里只选用了两组测试用例进行测试,有需要的可以根据下面提供的代码自行测试

5)执行测试,填写软件缺陷报告(软件缺陷报告格式同实验2)

测试模块:

三角形

开 发 者:

测 试 员:

测试日期:

2024.4.24

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

当输入200,200,1时预期结果应为等腰三角形,但实际结果为普通三角形

BUG2

BUG3

BUG4

测试代码:

#include <stdio.h>

void triangle( int a, int b, int c ); // 函数声明 --- 作用域
 
int main(void)
{
    int x,y,z;
    printf("please input (length):\n");    
    printf("a:");
    scanf("%d",&x);
    printf("b:");
    scanf("%d",&y);
    printf("c:");
    scanf("%d",&z);
 
    triangle( x,y,z );//判断三角形类型
}
 
 
void triangle( int a, int b, int c )
{
    int temp;
    
    if( a > b )
    {//如果a比较b大,就相互转换
        temp = a;
        a = b;
        b = temp;    
    }
    if( a > c )
    {//如果a比较c大,就相互调换
        temp = a;
        a = c;
        c = temp;
    }
    if( b > c )
    {//如果b比较c大,就相互调换
        temp = b;
        b = c;
        c = temp;
    }
 
        if( a<0||b<0||c<0||a>200||b>200||c>200  )
    {
        printf("不构成三角形\n");
        return ;
    }
    else
    {
     if( a+b <= c )
    {
        printf("不构成三角形!!\n");
        return ;
    }
    else
    {
        if( a == b )
        {
            if( a != c )
                printf("等腰三角\n");
            else
                printf("等边三角\n");
        }
        else
        {
            printf("普通三角形\n");
        }
      }
  }
}

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值