软件测试期末复习

  • 第三章 黑盒测试
    • 等价类划分
    • 因果图
    • 边值分析
    • 功能测试
  • 第四章 白盒测试
    • 逻辑覆盖
    • 路径分析
    • 程序路径的树表示及路径编码
    • 程序插装
    • 断言语句
    • 程序变异

第三章 黑盒测试

等价类划分

1.划分等价类:把数目极多的输入情况划分成若干个等价类
如果用集合中的一个输入条件作为测试数据进行测试不能发现程序中的错误,那么使用集合中的其他输入条件进行测试也不可能发现错误

有效等价类vs无效等价类
有效等价类可以是一个,可以是多个
(1)如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。
(2)输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。
(3)如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划分成更小的等价类。
无效等价类至少是一个,可能有多个

2.确定测试用例

Eg:某程序规定:输入三个整数作为作为三边的边长构成三角形,当此三角形为一般三角形、等腰三角形及等边三角形时,分别做计算……。试用等价类划分方法为该程序的构成三角形部分进行测试用例设计。

(1)列出等价类表:


(2)列出覆盖上述等价类的测试用例

(3)列出覆盖无效等价类的测试用例

因果图

1.导出测试用例的步骤:分析原因和结果->画因果图(标明约束条件)->转换成判定表->写测试用例

2.因果关系
因果关系的基本符号:

(1)恒等:若c1是1,则e1也是1;否则e1为0
(2)非:若c1是1,则e1是0;否则e1是1
(3)或:若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入
(4)与:若c1和c2都是1,则e1为1;否则e1为0。“与”也可有任意个输入

3.输入和输出条件的约束
约束符号:

输入条件的约束:
(1)E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1
(2)I约束(或):a、b和c中至少有一个必须是1,即a、b和c不能同时为0
(3)O约束(唯一):a和b必须有一个,且仅有1个为1
(4)R约束(要求):a是1时,b必须是1,即不可能a是1时b是0
输出条件的约束:
M约束(强制):若结果a是1,则结果b强制为0

Eg:某个软件的规格说明书包含这样的要求:第一列字符必须是A或者B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第1列字符不正确,则给出信息L;如果第2列字符不是数字,则给出信息M。

原因:
1:第一列字符是A;
2:第一列字符是B;
3:第二列字符是数字;
结果:
21:进行文件的修改;
22:给出信息L;
23:给出信息M。

边值分析

1.单变量边界值的选取

五点法vs七点法
五点法:选择最大值、略低于最大值、正常值、略高于最小值、最小值
七点法:选择略大于最大值、最大值、略低于最大值、正常值、略高于最小值、最小值、略低于最小值
弱边界值用五点法,强分析法用七点法

2.多变量组合情况下边界值的选取
对于n变量函数,使除一个以外的所有变量取正常值,对剩余的那个变量应用五点法(或七点法)取最小值、略高于最小值、正常值、略低于最大值、最大值,对每个变量都重复进行。

功能测试

1.功能测试的系统化
(1)数字型简单变量
(2)数组、向量型变量
(3)多维数组
多维数组的某一复合分量满足一定的规范结构。这时,我们就应以此复合分量为基本的测试数据生成单位

2.模块功能的分解测试(对子函数的功能测试)

(1)平行子函数

(2)顺序子函数

(3)控制子函数(常常被用来选择计算函数或终止循环与递归过程)

第四章 白盒测试

逻辑覆盖

1.几种常用的逻辑覆盖测试方法
语句覆盖:测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次
Eg:

测试用例:
A=2,B=0,X=3 路径为ace,达到语句覆盖
A=2,B=1,X=3 路径为abe,未能达到语句覆盖

判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。
测试用例:
A=2,B=0,X=3
A=1,B=1,X=1
达到判定覆盖

条件覆盖:要使每个判断中每个条件的可能取值至少满足一次
T1:A>1
T2: B=0
T3: A=2
T4: X>1

3个测试用例把4个条件的8种情况均做了覆盖。但满足条件覆盖并不一定满足判定覆盖。

判定-条件覆盖:使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次

既满足判定覆盖(覆盖了4个分支bcde),又满足条件覆盖(覆盖了8种情况),但少了一条路径acd

路径覆盖:要求覆盖程序中所有可能的路径

路径分析

着眼于路径分析的测试可称为路径测试,完成路径测试的理想情况是做到路径覆盖

1.程序路径表达式
(1)路径的弧序列表示及节点序列表示


(2)路径表达式

引入两个运算:乘和加
乘:弧a和弧b相乘,所得的乘积为ab,它表示先沿弧a再沿弧b所经历的路段
加:弧a与弧b相加,其和a + b表示两弧是或的关系,是并行的路段


图(a)的路径表达式为:e(a + b)(c + d)f
图(b)的路径表达式为:ab(1+cb+(cb)2+…)d

2.程序中路径数的计算
(1)程序复杂度计算

V=E-N+2
V:复杂度
E:边数
N:结点数(判断框也算结点)


3.计算独立路径数
独立路径:某一程序的独立路径是从程序入口到出口的多次执行中,每次至少一个语句(包括运算、赋值、输入输出或判断)是新的


程序路径的树表示及路径编码

1.路径“与/或”树及其特征

2.简化路径树
AND结点下有AND结点(a)
OR结点下有OR结点(c)

AND结点有一子结点是叶结点A,A相邻结点也是叶结点(a)
AND结点有一子结点是叶结点A,A相邻结点是OR结点(b)
AND结点有一子结点是叶结点A,A相邻结点是AND结点(c)


3.路径编码

任一路径的编码是从根结点出发遍历该路径各叶结点而后回到根结点经历的所有OR结点出端编码的序列

程序插装

程序插装:是一种基本的测试手段,在软件测试中有着广泛的应用。简单地说是通过往被测程序中插入操作来实现测试目的的方法,通过用于排错。

断言语句

断言语句:有时在程序中的特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实,我们把插入的这些语句称为为断言

程序变异

错误驱动测试:是指该方法是针对某类特定程序错误的

程序强变异
程序强变异意味着对测试数据集中的每一元素,都要对程序P及其变异因子进行测试,所以要求测试数据集D和变异因子集m(P)都需精心挑选。这是强变异方法成功的关键。

m(P)是对P进行微小改动得到的,也是一个程序,称为P的变异因子
假设P有测试数据集D,若P在D上是正确的,可以找出P的变异因子的某一集合
M={M( P)|M( P)是P的变异因子}。

若M中每一元素在D上都存在错误,则认为程序的正确程度较高。
若M中某些元素在D上不存在错误,则可能存在三种情况:
(1)这些变异因子与P在功能上是等价的;
(2)现有的测试数据不足以找出P与其变异因子间的差别;
(3)P可能含有错误,而其某些变异因子却是正确的;

强变异两大弱点:一是要运行所有的变异因子,从而成倍地提高了测试的成本;二是决定程序与其变异因子是否等价是一个递归不可解问题

程序弱变异
与强变异的区别在于:强变异是产生实际的变异因子,而弱变异并不产生,而只是选择测试数据,使得变异前后程序部件产生不同的值。

第五章、第六章复习总结

软件测试期末复习知识点(第三章、第四章)相关推荐

  1. 面向对象开发期末复习概述(三)

    面向对象开发期末复习概述(三) 第4章对象和类 & 第5章子类和继承&第6章 接口与实现 OOP是:Object Oriented Programming(面向对象编程) 类和对象的区 ...

  2. 山东大学软件工程期末复习知识点总结

    山大软院软件工程期末复习知识点总结,根据任课老师所给提纲及课件等资料进行整理. 考试范围全覆盖. 文档电子版下载地址 目录 第一章 1.1软件工程(SE)的定义.目的.方法.作用: //1.2开发模式 ...

  3. python期末复习知识点总结

    期末复习知识点总结 第一章 1.6 Python编程规范与代码优化建议 1.7 模块 模块的导入方式 补:Python编程规范与代码优化建议 注释 以符号#开始,表示本行#之后的内容为注释. #eg1 ...

  4. 《数据库系统原理及应用教程》期末复习知识点整理手写资料(Ch1-Ch5)

    阅读前注意: 1. 本复习资料配套书目<数据库系统原理及应用教程>(苗雪兰等,第五版) ,是对应于课程"数据库原理及应用(专业选修课)"的期末复习知识点归纳总结手写笔记 ...

  5. 数据库期末复习知识点:(仅供参考)

    数据库期末复习知识点: 一运用SQL 基本sql语句 授权sql语句: 实体完整性sql语句: 二 ER 画出ER图,并转换成关系模式. 三.范式 范式 存储结构 一运用SQL 基本sql语句 (1) ...

  6. 软件测试期末复习重点

    1.软件测试的定义以及软件测试的目的/意义. (1)定义: 软件测试就是一个过程或一系列过程,用来确定计算机代码完成了其应该完成的功能,不执行其不该有的操作. 或:软件测试是由"验证(Ver ...

  7. 计算机导论期末考试知识点,计算机导论期末复习(知识点).doc

    计算机导论期末复习(知识点) 计算机导论期末复习(知识点) 单选题30%(每题1分,总30分) 判断题20%(每题1分,总20分) 问答题30%(7题左右,总30分) 综合回答题20%(2题,总20分 ...

  8. 无线传感器网络(WSN)期末复习知识点总结 中国地质大学

    无线传感器网络(WSN)期末复习知识点总结(不全,不全,不全) 第一章主要初步了解WSN以及其构成(重要指数

  9. 他的体育课在下午五点结束使用计算机,外研版七年级上册英语期末复习知识点整理(1-5Module)...

    外研版七年级上册英语期末复习知识点整理(上) Module 1 重点短语 1.be from... =come from...来自...... 2....years old               ...

最新文章

  1. Cisco路由器命令基础篇
  2. 杀手洗车房:黑客能困住并攻击汽车
  3. Linux的命令组成
  4. MFC多语言实现方法
  5. 西门子mag6000接线_电磁流量计MAG5000或MAG6000,通过脉冲输出累积流量,脉冲输出如何接线,如何设置参数?...
  6. tensorflow打印模型结构_五行代码用图提升模型表现,TensorFlow开源NSL神经结构学习框架...
  7. LinkedHashMap,HashMap,TreeMap
  8. 【计算机本科补全计划】王道单科--栈的实现以及一些性质
  9. 鸿蒙音波萨顶顶,萨顶顶把古代论文唱成歌,撒贝宁评价:“最难合作的艺人之一”...
  10. 美团——“疯狂”的吸血鬼
  11. [老码团队]Swift中的协议 - 用协议来实现委托模式
  12. SVM与K-Means
  13. java 半小时_java获取当前时间加半小时之后的时间
  14. ABBYY FineReader Pro for Mac有哪些特性(下)
  15. pythonocc 如何把TopoDS_Edge转换成Geom_Curve
  16. 为什么牛逼的程序员都不用 “ ! = null “ 做判空?
  17. 服务器导入导出文件,Excel Server Tutorial
  18. 帧结构和物理资源(RB,PRB,VRB,REG,RBG)
  19. 001、操作系统的学习
  20. Google 使用技巧

热门文章

  1. 关于一个非寿险费率厘定例子的学习笔记
  2. oracle检查约束的创建,检查约束调用函数Oracle SQL开发人员
  3. griddle - 基于CountingBloomFilter实现的轻量级过滤组件
  4. html5当中支持的视频格式
  5. 评测3款高颜值的mobi阅读器(ios手机适用)
  6. 【调剂】渤海大学2020年硕士研究生调剂信息
  7. opensuse 安装ati驱动
  8. 三个小项目入门Go语言|字节青训营笔记
  9. 图像处理之特殊灰度算法技巧
  10. idea community社区版 运行springboot项目