软件评测师知识点

2018年11月9日09:00:17
  • 软件评测师知识点已关闭评论
  • 472 views
  • A+
所属分类:软件评测师

白盒测试用例设计方法

2)判定覆盖
使得程序中的每一个判定至少都获得一次“真值”和“假值”的机会,或者说使得程序中的每一个分支都至少通过一次
3)条件覆盖
判定覆盖仅考虑了判定的结果,而没有考虑每个条件的可能结果。
对于每个判定中所包含的若干个条件,应设计足够多的测试用例,使得判定中的每个条件都至少取到一次“真值”和“假值”的机会,也就就是说,判定中的每个条件的所有可能结果至少出现一次
4)判定/条件覆盖
通过设计足够多的测试用例,使得运行这些测试用例时,判定中的每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次
5)条件组合覆盖
通过设计足够多的测试用例,使得运行这些测试用例时,每个判定中条件结果的所有可能组合至少出现一次
7)路径覆盖
通过设计足够多的测试用例,使得运行这些测试用例时,程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路至少经过一次)

路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,但它并未考虑判定中的条件结果的组合。因此,虽然说路径覆盖是一种非常强的覆盖度量标准,但并不能代替条件覆盖和条件组合覆盖度量标准。

 

 

int func(int x, int y, int z)

{

printf(“处理之前的数据输出\n”);

printf(“x=%d, y=%d, z=%d \n”, x, y, z);

if ((y > 1) && (z==0)) x = x / y;

if ((y == 2) || (x > 1) ) x = x + 1;

printf(“处理之后的数据输出 \n”);

printf(“x=%d, y=%d, z=%d \n”, x, y, z)

return x;

}

[PICTURE clip0210.bmp]

 

1)语句覆盖
[PICTURE clip0212.bmp]
[PICTURE clip0211.bmp]

 

 

》》》》》》》》》》》》》》》》》》》》》》》》》》

[PICTURE clip0213.bmp]

 

[PICTURE clip0214.bmp]

 

例题
[PICTURE clip0215.bmp]

供选择的答案

(1)X=90,Y=90;X=70,Y=70

(2)X=90,Y=70;X=70,Y=90

(3)X=90,Y=90;X=90,Y=75;X=75,V=90

(4)X=90,Y=75;X=75,Y=90;X=70,Y=70

(5)X=90,Y=90;X=90,Y=75;X=75,Y=90;X=70,Y=70

(6)X=80,Y=80;X=90,Y=70;X=70,Y=90;X=70,Y=70

(7)X=80,Y=80;X=90,Y=75;X=90,Y=90;X=75,Y=90;X=70,Y=70

(8)X=80,Y=80;X=90,Y=70;X=70,Y=90;X=70,Y=70;X=70,Y=75

(9)X=80,Y=80;X=90,Y=75;X=90,Y=70;X=70,Y=80;X=70,Y=75;X=70,Y=70

(10)X=90,Y=90;X=90,Y=75;X=90,Y=70;X=75,Y=90;X=70,Y=70;X=70,Y=90

(11)X=80,Y=80;X=90,Y=75;X=90,Y=70;X=70,Y=80;X=70,Y=75;X=70,Y=70;X=70,Y=90

(12)X=80,Y=80;X=80,Y=70;X=70,Y=80;X=70,Y=70;X=90,Y=75;X=90,Y=70;X=70,Y=75;X=75,Y=90;X=75,Y=80;X=70,Y=90

(1)不满足任何一个覆盖度量标准。

(2)条件覆盖。

(3)语句覆盖、判定覆盖。

(4)语句覆盖、条件覆盖。

(5)语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖。

(6)条件覆盖。

(7)语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖。

(8)条件覆盖。

(9)不满足任何一个覆盖度量标准。

(10)语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。

(11)没有必要再分析了。

(12)没有必要再分析了。

 

 

例子
Int IsLeap(int year)

{
if (year % 4 == 0)
{
if (year % 100 == 0)
{
if ( year % 400 == 0)
leap = 1;
else
leap = 0;
}
else
leap = 1;
}
else
leap = 0;
return leap;
}

 

[PICTURE clip0218.bmp]注意开头1和结尾12,注意节点9、10、11

[PICTURE clip0217.bmp]

 

【问题3】

假设输入的取值范围是1 000 < year < 2 001,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。
问题3要求设计满足基本路径覆盖的测试用例,且输入的取值范围是1 000 < year < 2 001。满足要求的答案有很多,
例如如下的一份测试用例数据:
注意格式问题
[PICTURE clip0219.bmp]

 

 

 

 

因果图

 

[PICTURE clip0220.bmp]

 

 

二进制十进制换算

https://jingyan.baidu.com/article/a3761b2bc231781576f9aa01.html

https://jingyan.baidu.com/article/495ba84109665338b30ede98.html

 

关系运算和集合运算

https://blog.csdn.net/hon_3y/article/details/62434993

模块耦合与内聚

耦合是程序结构中模块间相互关联紧密程度的度量,耦合程度取决于各个模块间接口的复杂程度、调用模块的方式,以及接口的信息量。耦合分为七种:
1、 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,非直接耦合的模块独立性最强

2、 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单变量(不是控制参数、公共数据结构和外部变量)来交换输入、输出信息的,这种耦合为数据耦合

3、 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合,这个记录是某一数据结构的子结构,而不是简单变更。

4、 控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,称为控制耦合

5、 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称为外部耦合。

6、 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区。

7、 内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。

内聚是一个模块内部各个元素彼此结合的紧密程度的度量,各元素之间的联系越紧密,内聚性越高,与其他模块间的耦合性就越低,而模块独立性就越强。
在设计模块时应尽量争取高内聚,内聚性分为七种:

 

 

1、 功能内聚:实现一个功能,内聚性最强

2、 信息内聚:完成多个功能,各个功能在同一数据结构上操作

3、 通信内聚:模块内各功能部分使用了相同的输入数据或产生相同的输出数据

4、 过程内聚:把流程图中某一部分划出组成模块,即过程内聚,如循环部分、判定部分、计算部分分成三个模块

5、 时间内聚:又称为经典内聚,大多为多功能模块,模块的各个功能的执行与时间有关,如初始化模块和终止模块

6、 逻辑内聚:把几种相关的功能组合在一起,由传送给模块的判定参数来确定执行哪一种功能。

7、 巧合内聚:模块内各部分之间没有联系,或即使有联系,也很松散,是内聚程序最低的模块。
---------------------

IP地址/子网掩码
https://www.cnblogs.com/xiaodingmu/p/7415069.html

https://jingyan.baidu.com/article/ae97a646d936ddbbfd461d02.html

UML类图与类的关系

虚线箭头指向依赖;

实线箭头指向关联;

虚线三角指向接口;

实线三角指向父类;

空心菱形能分离而独立存在,是聚合;

实心菱形精密关联不可分,是组合;

 

 

PV操作和信号量

https://www.cnblogs.com/nzbbody/p/4219957.html

 

结构化开发方法

 

安全防护策略

安全日志、入侵检测、漏洞扫描、安全审计、病毒防治、web防篡改、隔离防护

 

 

 

 

 

 

 

 

avatar