软件测试基础教程

                    第一部分            预备知识

第1章    软件测试的基本知识

    1.1    人,错误和测试

        1.1.1    错误,故障和失效

        1.1.2    测试自动化

        1.1.3    开发人员与测试人员是两种角色

    1.2    软件质量

        1.2.1    软件质量特性

        1.2.2    软件可靠性

    1.3    需求,运行结果和正确性

        1.3.1    输入域和软件正确性

        1.3.2    有效输入与无效输入

    1.4    正确性与可靠性

        1.4.1    正确性

        1.4.2    可靠性

        1.4.3    软件使用与操作剖面

    1.5    测试与调试

        1.5.1    制订测试计划

        1.5.2    构造测试数据

        1.5.3    运行被测软件

        1.5.4    指定被测软件的行为

        1.5.5    评价被测软件运行结果的正确性

        1.5.6    测试预言的构造

    1.6    测试度量

        1.6.1    组织级度量

        1.6.2    项目级度量

        1.6.3    过程级度量

        1.6.4    产品级度量:通用度量

        1.6.5    产品级度量:面向对象软件

        1.6.6    进度跟踪与趋势

        1.6.7    静态度量与动态度量

        1.6.8    可测试性

    1.7    软件测试与硬件测试

    1.8    测试与验证

    1.9    缺陷管理

    1.10    执行历史

    1.11    测试生成策略

    1.12    静态测试

        1.12.1    走查

        1.12.2    审查

        1.12.3    在静态测试中使用静态代码分析工具

        1.12.4    软件复杂性与静态测试

    1.13    基于模型的测试与模型检测

    1.14    控制流图

        1.14.1    基本块

        1.14.2    流图的定义与图形表示

        1.14.3    路径

    1.15    决定者与后决定者

    1.16    程序依赖图

        1.16.1    数据依赖性

        1.16.2    控制依赖性

    1.17    字符串,语言与正则表达式

    1.18    测试的类型

        1.18.1    分类因子C1:测试生成的依据

        1.18.2    分类因子C2:软件生命周期阶段

        1.18.3    分类因子C3:目标导向的测试

        1.18.4    分类因子C4:被测软件制品

        1.18.5    分类因子C5:测试过程模型

    1.19    饱和效应

        1.19.1    信赖度与真实可靠性

        1.19.2    饱和区间

        1.19.3    信赖度的错觉

        1.19.4    降低偏差Δ

        1.19.5    对测试过程的影响

    小结    参考文献注释    练习

                    第二部分            测试生成

第2章    基于需求的测试生成

    2.1    引言

    2.2    测试用例选择问题

    2.3    等价类划分

        2.3.1    缺陷定位

        2.3.2    关系与等价类划分

        2.3.3    变量的等价类

        2.3.4    一元划分与多元划分

        2.3.5    等价类划分的完整过程

        2.3.6    基于等价类的测试用例设计

        2.3.7    GUI设计与等价类

    2.4    边界值分析

    2.5    类别划分法

    2.6    因果图分析

        2.6.1    因果图中的基本符号

        2.6.2    创建因果图

        2.6.3    从因果图生成判定表

        2.6.4    避免组合爆炸的启发式方法

        2.6.5    从判定表生成测试用例

    2.7    基于谓词的测试生成

        2.7.1    谓词和布尔表达式

        2.7.2    谓词测试中的故障模型

        2.7.3    谓词约束

        2.7.4    谓词测试准则

        2.7.5    生成BOR,BRO和BRE充分性测试用例

        2.7.6    因果图与谓词测试

        2.7.7    故障传播

        2.7.8    谓词测试实践

    小结    参考文献注释    练习

第3章    基于有穷状态模型的测试生成

    3.1    软件设计与测试

    3.2    有穷状态机

        3.2.1    用输入序列激活FSM

        3.2.2    转换函数和输出函数的表格表示

        3.2.3    FSM的特征

    3.3    符合性测试

        3.3.1    重置输入

        3.3.2    测试的难题

    3.4    故障模型

        3.4.1    FSM的变体

        3.4.2    故障覆盖率

    3.5    特征集

        3.5.1    k等价划分的构造

        3.5.2    特征集的构造

        3.5.3    等价集

    3.6    W方法

        3.6.1    假设

        3.6.2    最大状态数

        3.6.3    转换覆盖集的计算

        3.6.4    构造集合Z

        3.6.5    导出测试集

        3.6.6    采用W方法测试

        3.6.7    错误检测过程

    3.7    部分W方法

        3.7.1    采用m=n的Wp方法测试

        3.7.2    采用m>n的Wp方法测试

    3.8    UIO串方法

        3.8.1    假设

        3.8.2    UIO串

        3.8.3    核心行为与非核心行为

        3.8.4    生成UIO串

        3.8.5    区分符号

        3.8.6    测试生成

        3.8.7    测试优化

        3.8.8    故障检测

    3.9    自动机理论与基于控制流的技术

        3.9.1    n路径覆盖

        3.9.2    自动机理论方法的比较

    小结    参考文献注释    练习

第4章    基于组合设计的测试生成技术

    4.1    组合设计

        4.1.1    测试配置和测试集

        4.1.2    输入空间与配置空间建模

    4.2    组合测试设计过程

    4.3    故障模型

    4.4    拉丁方阵

    4.5    相互正交的拉丁方阵

    4.6    对偶设计:二值参数

    4.7    对偶设计:多值参数

    4.8    正交矩阵

    4.9    覆盖矩阵与混合取值覆盖矩阵

        4.9.1    覆盖矩阵

        4.9.2    混合取值覆盖矩阵

    4.10    强度大于2的矩阵

    4.11    生成覆盖矩阵

    小结    参考文献注释    练习

第5章    回归测试的选择,最小化和优先级排序

    5.1    什么是回归测试

    5.2    回归测试过程

        5.2.1    测试重确认,选择,最小化和优先级排序

        5.2.2    测试准备

        5.2.3    测试排序

        5.2.4    测试执行

        5.2.5    输出比较

    5.3    回归测试选择问题

    5.4    回归测试选择方法集

        5.4.1    全测试策略

        5.4.2    随机选择测试

        5.4.3    选择遍历修改测试用例

        5.4.4    测试最小化

        5.4.5    测试优先级排序

    5.5    利用执行轨迹进行回归测试的选择

        5.5.1    获取执行轨迹

        5.5.2    选择回归测试用例

        5.5.3    处理函数调用

        5.5.4    处理声明中的变化

    5.6    利用动态切片进行回归测试的选择

        5.6.1    动态切片

        5.6.2    计算动态切片

        5.6.3    选择测试用例

        5.6.4    潜在依赖

        5.6.5    计算相关切片

        5.6.6    语句的添加和删除

        5.6.7    标识切片变量

        5.6.8    简化的动态依赖图

    5.7    测试选择算法的可扩展性

    5.8    测试最小化

        5.8.1    集合覆盖问题

        5.8.2    测试最小化过程

    5.9    测试优先级排序

    5.10    回归测试工具

    小结    参考文献注释    练习

                    第三部分            测试充分性评价与测试增强

第6章    基于测试流和数据流的测试充分性评价

    6.1    测试充分性基础

        6.1.1    什么是测试充分性

        6.1.2    测试充分性的度量

        6.1.3    通过测试充分性来增强测试

        6.1.4    无效性和测试充分性

        6.1.5    错误检测和测试增强

        6.1.6    单次和多次执行

    6.2    基于控制流的测试充分性准则

        6.2.1    语句覆盖和块覆盖

        6.2.2    条件和判定

        6.2.3    判定覆盖

        6.2.4    条件覆盖

        6.2.5    条件/判定覆盖

        6.2.6    多重条件覆盖

        6.2.7    线性代码序列和跳转覆盖

        6.2.8    改进的条件/判定覆盖

        6.2.9    复合条件的MC/DC充分测试

        6.2.10    MC/DC覆盖的定义

        6.2.11    最小MC/DC测试

        6.2.12    错误检测和MC/DC充分性

        6.2.13    短路计算和无效性

        6.2.14    测试集对需求的追踪

    6.3    数据流概念

        6.3.1    定义和使用

        6.3.2    c-use和p-use

        6.3.3    全局和局部的定义与使用

        6.3.4    数据流图

        6.3.5    def-clear路径

        6.3.6    def-use对

        6.3.7    def-use链

        6.3.8    优化

        6.3.9    数据上下文和有序的数据上下文

    6.4    基于数据流的测试充分性准则

        6.4.1    c-use覆盖

        6.4.2    p-use覆盖

        6.4.3    all-use覆盖

        6.4.4    k-dr链覆盖

        6.4.5    使用k-dr链覆盖

        6.4.6    无效的c-use和p-use

        6.4.7    上下文覆盖

    6.5    控制流和数据流

    6.6    包含关系

    6.7    结构性测试与功能性测试

    6.8    覆盖度量的可量测性

    小结    参考文献注释    练习

第7章    基于程序变异的测试充分性评价

    7.1    导引

    7.2    变异和变体

        7.2.1    一阶变体与高阶变体

        7.2.2    变体的语法与语义

        7.2.3    强变异和弱变异

        7.2.4    为什么要变异

    7.3    用变异技术进行测试评价

        7.3.1    测试充分性评价的步骤

        7.3.2    测试充分性评价的替代过程

        7.3.3    被区分的变体与被杀掉的变体

        7.3.4    区分变体的条件

    7.4    变异算子

        7.4.1    算子类型

        7.4.2    变异算子的语言依赖性

    7.5    变异算子的设计

        7.5.1    评判变异算子优良的准则

        7.5.2    指导准则

    7.6    变异测试的基本原则

        7.6.1    称职程序员假设

        7.6.2    耦合效应

    7.7    等价变体

    7.8    通过变异进行错误检测

    7.9    变体的类型

    7.10    C语言的变异算子

        7.10.1    什么没有被变异

        7.10.2    线性化

        7.10.3    执行序列

        7.10.4    执行序列的影响

        7.10.5    全局标识符集和局部标识符集

        7.10.6    全局引用集与局部引用集

        7.10.7    程序常量变异

        7.10.8    运算符变异

        7.10.9    语句变异

        7.10.10    程序变量变异

    7.11    Java语言变异算子

        7.11.1    传统变异算子

        7.11.2    继承

        7.11.3    多态与动态绑定

        7.11.4    方法重载

        7.11.5    Java特有的变异算子

    7.12    综合比较:Fortran 77,C与Java变异算子

    7.13    变异测试工具

    7.14    低成本变异测试

        7.14.1    划分变异函数的优先级

        7.14.2    选择使用部分变异算子

    小结    参考文献注释    练习

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容