4.4日总结

白盒测试实验五

程序伪代码

注意:

1)参数表中EMPTAB 为职员表,DEPTTAB为部门表;

2) ESIZE为职员表长度,DSIZE为部门表长度;

  3)ERRCODE为出错码

 

MAXSALERS = 0;

ERRCODE = 0;

if(ESIZE <= 0 || DSIZE <= 0)

ERRCODE = 1;

else

{

for(i = 1; i < DSIZE ; i++) //选出各部门中最大的销售额值

if(SALES[i] > MAXSALES)

MAXSALES = SALES[i];

for(j = 1; j < DSIZE; j++) //循环找出销售额最大的部门

if(SALES[j] == MAXSALES)

{

FOUND = false;

for(int k = 1; k < ESIZE ; k++) //检查销售额最大部门的所有人员

if(EMPTAB.DEPT(k) == DEPTTAB.DEPT(j))

{

FOUND = true;

if(SALARY(k) >= 15000.00 or JOB(k) = 'M') //满足条件的人员加工资

SALARY(k) = SALARY(k) + 100.00;

else

SALARY(k) = SALARY(k) + 200.00;

}

if(FOUND == false)

ERRCODE == 2;

}

}

 

采用判定覆盖、条件覆盖对该程序进行用例设计

 

1.判定覆盖测试用例设计(需覆盖所有判断分支)

​空表测试​

输入:ESIZE=0, DSIZE=0

预期:ERRCODE=1

覆盖分支:if(ESIZE <= 0 || DSIZE <= 0)

​无最大销售额部门职员测试​

输入:

DEPTTAB = [{Dept:"A", Sales:5000}, {Dept:"B", Sales:3000}]

EMPTAB = [{Name:"X", Dept:"C", Salary:8000}]

预期:ERRCODE=2

覆盖分支:if(FOUND == false)

​正常加薪测试​

输入:

DEPTTAB = [{Dept:"A", Sales:8000}, {Dept:"B", Sales:3000}]

EMPTAB = [

{Name:"X", Dept:"A", Salary:10000, Job:"E"},

{Name:"Y", Dept:"A", Salary:16000, Job:"E"},

{Name:"Z", Dept:"A", Salary:12000, Job:"M"}

]

预期:

X工资+200 → 10200

Y工资+100 → 16100(≥15000)

Z工资+100 → 12100(经理)

ERRCODE=0

覆盖分支:

if(SALARY(k) >= 15000.00 or JOB(k) = 'M') 的True/False分支

2.条件覆盖测试用例设计(需覆盖所有条件组合)

条件组合

测试用例描述

输入数据

预期结果

ESIZE≤0 ∧ DSIZE≤0

两表均为空

ESIZE=0, DSIZE=0

ERRCODE=1

ESIZE>0 ∧ DSIZE≤0

仅部门表为空

ESIZE=2, DSIZE=0

ERRCODE=1

ESIZE≤0 ∧ DSIZE>0

仅职员表为空

ESIZE=0, DSIZE=2

ERRCODE=1

有最大销售额部门 ∧ 有职员 ∧ 工资<15000 ∧ 非经理

普通职员加200

EMPTAB:[{Dept:"A",Salary:10000}]
DEPTTAB:[{Dept:"A",Sales:5000}]

工资→10200

有最大销售额部门 ∧ 有职员 ∧ 工资≥15000

高薪职员加100

EMPTAB:[{Dept:"A",Salary:15000}]
DEPTTAB:[{Dept:"A",Sales:5000}]

工资→15100

有最大销售额部门 ∧ 有职员 ∧ 是经理

经理职员加100

EMPTAB:[{Dept:"A",Salary:8000,Job:"M"}]
DEPTTAB:[{Dept:"A",Sales:5000}]

工资→8100

有最大销售额部门 ∧ 无职员

部门无员工

EMPTAB:[{Dept:"B",Salary:8000}]
DEPTTAB:[{Dept:"A",Sales:5000}]

ERRCODE=2

posted @ 2025-06-19 09:44  Mini-Q  阅读(4)  评论(0)    收藏  举报