完整word版软件测试与质量保证期末复习资料整理word文档良心出品.docx
- 文档编号:15684622
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:17
- 大小:202.68KB
完整word版软件测试与质量保证期末复习资料整理word文档良心出品.docx
《完整word版软件测试与质量保证期末复习资料整理word文档良心出品.docx》由会员分享,可在线阅读,更多相关《完整word版软件测试与质量保证期末复习资料整理word文档良心出品.docx(17页珍藏版)》请在冰点文库上搜索。
完整word版软件测试与质量保证期末复习资料整理word文档良心出品
复习提纲
第一部分软件测试概述
1.软件测试的背景
1.1软件危机与软件质量
软件质量保证SQA,软件测试ST;
1.2软件缺陷(分类,来源,累积和放大效应)
●常见的软件缺陷:
1.软件没有达到规格说明书表明的功能
2.软件出现了规格说明书指明不会出现的问题
3.软件没有达到规格说明书虽未指明,但应该达到的功能
4.软件功能超出规格说明书指明的范围
5.软件测试人员或者用户认为软件难以理解、不易使用、运行速度慢。
●原因:
1.软件的需求规格说明书;
2.软件的设计;
3.代码的错误
●累积和放大效应:
前期的软件缺陷会在后期逐步扩大
1.3软件测试的意义
为了发现软件缺陷,软件测试必不可少;开销占总成本的30%~50%;
2.软件测试的含义
2.1什么是软件测试
是为了发现错误而执行程序的过程。
2.2软件测试的目的
发现问题;
对质量或可接受性做出判断;
2.3软件测试的对象
1.需求分析
2.概要设计
3.详细设计
4.编码
2.4测试≠调试
测试→发现错误→调试;这是一个交叉循环的过程;
测试是一种检验,有一套完整的理论,不需要了解设计细节,有非程序设计者完成,且测试的设计和执行能够自动化;
2.5软件测试的特征
●风险性——彻底测试程序是不可能的;
●不修复原则——并非所有软件缺陷都需要修复;
●群集现象——错误的集中;
●寄生虫性——找到缺陷越多,残存的缺陷越多
3.软件测试的过程
3.1软件测试的生命周期
需求规格说明→设计→编码→测试→缺陷分类→缺陷隔离→缺陷解决
3.2软件测试的步骤
1.制定测试计划
2.设计测试用例和测试过程
3.运行测试用例(核心)
4.评估测试结果
3.3测试用例=输入+预期输出
3.4通过维恩图理解测试用例——相交的地方尽可能大
3.5测试用例的设计
–3.5.1功能性测试(黑盒测试)
●依据于软件的规格说明;
●与软件的具体实现无关;
●优:
并行进行,测试用例与实现的改变无关;
●缺:
用例冗余度大;会有漏洞,不能发现多余缺陷;
–3.5.2结构性测试(白盒测试)
●依据于程序实现;
●利用程序内部的逻辑结构;
●优:
具有覆盖率指标;
●缺:
不能发现遗漏缺陷;
4.错误与缺陷分类
●以出现相应错误的开发阶段来划分;
●以相应失效产生的后果来划分;
●以解决难度来划分;
●以不解决会产生的风险来划分
5.软件测试的级别
1.单元测试——详细设计信息,白盒测试为主;
2.集成测试——概要设计信息,模块的组合测试;
3.系统测试——软件需求;
4.确认测试——依照需求规格说明书;
5.验收测试——用户参与,黑盒测试;
6.软件测试的分类
●静态测试——不运行被测试程序;
●动态测试——运行被测试的程序;
●自动测试——利用自动化测试工具;
●人工测试——人工走查和代码审查;
第二部分黑盒测试
1.边界值测试(书:
第5章)
•边界值分析(依据,含义,方法)
●含义:
针对各种边界情况设计测试用例;
●依据:
大量的错误是发生在输入或输出范围的边界上;
●方法:
以基于但却像和输入空间的边界值分析,设有n个输入变量,则对应有4n+1个测试用例。
●局限性:
只适用于变量之间没有依赖的情况;不适用于布尔变量;
•健壮性测试
●含义:
例外情况时的系统表现;n个变量对应6n+1个测试用例;
•最坏情况测试
●用例为边界值集合的笛卡儿积(5n个测试用例)
•健壮最坏情况测试——7n个测试用例
•特殊值测试——主观性和有效性
•随机测试——使用随机数生成器,直到每种输出至少出现一次;
2.等价类测试(书:
第6章)
•等价类测试的思想
⏹依据:
集合的划分,无冗余(不代表测试用例不冗余),完备性;
⏹基本思想:
①划分等价类;②从中选取测试用例,以覆盖所有的等价类;
⏹关键:
如何划分等价类;
⏹特点:
典型的黑盒测试方法
•有效/无效等价类
●有效等价类:
合理的输入数据,是否实现了预期的功能;
●无效等价类:
无意义的输入数据,检验程序对于无效数据的处理;
•强/弱,健壮/一般等价类测试
●弱一般等价类:
单缺陷假设,不考虑无效值,不完备
●强一般等价类:
多缺陷假设,不考虑无效值,不完备
●弱健壮等价类:
单缺陷假设,考虑无效值,不完备;
●强健壮等价类:
多缺陷假设,考虑无效值,完备;
•基于输入/输出的等价类测试
•等价类测试的经验
•根据输入条件,划分等价类的原则
●如果确知以划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类。
•等价类测试的步骤(案例)
⏹建立等价类表;
⏹生成测试用例,规定一个唯一的编号;
⏹对有效等价类:
用一个测试用例覆盖尽可能多;
⏹对无效等价类:
每个测试用例只覆盖一个;
•不适合情况
●输入条件之间存在依赖关系;
●由多个输入条件的取值组合,决定是否执行某操作;
3.基于决策表测试(书:
第7章)
•案例
•特点
⏹能够表示复杂逻辑关系;
⏹在详细设计和测试阶段均可使用;
⏹最严格的黑盒测试方法;
•适用于:
●逻辑很突出;
●输入输出之间存在因果关系;
4.因果图测试法,基于正交表的测试法(了解)
●因果图测试法:
考虑输入情况的各种组合,和输入情况之间的相互制约关系;
●基于正交表的测试法:
选出食量的,具有代表性的点;
5、黑盒测试总结
●如果变量引用的是物理量,可采用定义域测试和等价类测试;
●如果变量时独立的,可采用定义域测试和等价类测试;
●如果变量不是独立的,可采用决策表测试;
●如果可保证是单缺陷假设,可采用边界值分析和健壮性测试;
●如果可以保证是多缺陷假设,可采用最坏情况测试、健壮最坏情况测试、决策表测试。
●如果程序包含大量的异常处理,可采用健壮性测试和决策表测试;
●如果变量引用的是逻辑量,可采用等价类测试用例和决策表测试;
第三部分白盒测试
1.逻辑覆盖分类及其含义
●含义:
根据一定的逻辑覆盖的目标以及程序内部的逻辑结构生成测试用例;
●分类:
◆语句覆盖——每个语句至少执行一次
◆判定覆盖——对于每个判断,每个取真,取假分支至少经历一次,有可能查不出某个子条件的错误;
◆条件覆盖——每个子条件的可能取值至少执行一次,不一定满足判定覆盖
◆判定-条件覆盖——前两者的结合,有可能查不出某个子条件中的错误;
◆条件组合覆盖——每个判断的所有可能的子条件取值组合至少执行一次,没有考虑多个判定之间的组合;
◆路径覆盖——所有可能的路径;
2.基本路径测试——将测试路径压缩在一定的限度内
●控制流图
一圈一个区域,圈外也算是区域;
●从程序导出控制流图,遇到复合条件时的转换—复合条件改为单个条件的嵌套的判断;
环路复杂性=V(G)=边数E-节点数N+2(或等于区域数)
图矩阵(了解)——用矩阵来计算控制流图,有方向的;
适合测试控制密集型的程序。
3.数据流测试
●数据流问题
定义变量:
值被改变;
使用变量:
使用了内存中的变量
变量的定义-使用路径
定义节点
使用节点:
①谓词使用(判断语句);②计算使用;
定义-使用路径:
从定义节点到使用节点;
定义清晰路径:
定义-使用路径中没有其他定义节点;
覆盖路径时,不考虑即是定义又是使用的节点;
适合测试计算密集型和控制密集型的程序
路径覆盖准则:
1 全定义一使用路径准则——包含全部的定义清晰路径
2 全定义准则——每个定义节点到一个使用的定义清晰路径
3 全使用准则——定义节点到每个使用节点的定义清晰路径
4 全谓词使用/部分计算使用准则——每个定义节点到所有谓词使用节点的定义清晰路径
5 全计算使用/部分谓词使用准则——每个定义节点到所有计算使用节点的定义清晰路径
●基于程序片的测试(了解)
影响某个变量在某个点上的取值的一组程序语句
4.用白盒测试的覆盖率指标评估黑盒测试
覆盖C(M,S)=所覆盖的路径数n/总路径数s
冗余R(M,S)=测试用例个数m/总路径数s
净冗余NR(M,S)=测试用例个数m/所覆盖的路径数n
第四部分软件测试的级别
1.确认与验证的区别
确认:
关注最终产品,与用户需求相一致;
验收:
关注各个开发阶段;与当前步骤的规范相一致;
2.确认测试(黑盒测试)
含义——是否满足用户的需求
依据——说明书的确认准则;
α测试:
与β测试:
的区别
Α测试由若干用户或公司内部人员进行测试;
Β测试由最终用户进行测试;
3.验收测试、回归测试的含义
验收测试:
主要由用户执行,检查是否符合验收标准;
回归测试:
在软件被修改之后,重新执行以前执行过的测试用例;(bug被修复后可能会产生新的bug);
4.单元测试,
含义——对源代码的每一个单元和模块进行测试,以发现模块内部的错误
白盒为主,黑盒为辅;
错误的检查范围:
●模块接口测试(数据流的检查,参数,返回值,全局量);
●局部数据结构测试(与变量相关的错误,数据类型,数组越界和地址异常);
●边界测试(边界值、运行时间);
●错误处理测试(出错的描述、显示、处理);
●路径测试(基本执行路径,最常见的错误执行路径);
测试方法:
①静态测试;
②动态测试:
驱动模块——模拟调用模块;
桩模块——模拟被调用模块;
5.集成测试——找出模块间的接口和交互错误
基于功能分解树的集成(关注静态结构)
●分类
●比较
优点
缺点
一次性集成
可以说没有
很难定位错误
自顶向下集成
较早发现控制方面的错误
过多的回归测试,大量桩模块(模块数-1)
自底向上
驱动模块(总-底层),并行测试多个模块
主控部分出错要导致返工
混合渐增式
桩和驱动模块少
定位缺陷的难度(子系统一次性集成
基于调用图的集成(模块之间的调用关系)
●分类:
①成对集成;②邻居集成;
●缺点:
缺陷难以隔离和定位,回归测试量大;
基于路径的集成(关注模块间的交互)
模块可执行路径——始于一个源节点,终于一个汇节点;
MM-路径——起点:
主模块的源节点,终点:
消息静止点;从主模块开始,到主模块结束;与系统测试无缝连接,面向对象软件
案例
集成测试的组织与实施(了解)
6.系统测试
含义——由确认测试的软件和系统的其他成分结合在一起,进行集成测试和确认测试
常见的系统测试(理解定义)
●功能测试——检验功能的实现;
●性能测试——性能是否达标;
●负载测试——边界(满负载)的情况下的性能问题
●压力测试——资源紧缺的情况下的功能或性能问题;
●配置测试——保证硬件的组合多样化;
●兼容性测试——两个软件之间的交互;
●安全性测试——安全性和保密性是否发挥作用,漏洞;
●可靠性测试——平均失效时间,因故障而停机时间;
●恢复测试——故障后的恢复情况,不对系统造成任何伤害;
●安装测试——安装过程中出现的错误;
●易用性测试——使用的合理性和方便性;
●文档测试——系统文档的齐全、多余和规范
例子
第五部分软件测试工具
软件测试工具的常见功能
⏹测试计划和管理
⏹源代码控制
⏹自动测试用例生成;
⏹标准测试用例包
⏹内存泄露测试
⏹测试框架
⏹捕获、回放与比较(无人照料、机械重复测试)
⏹模拟负载测试
⏹模拟并发测试
⏹测试覆盖率分析
优点
●测试流程和数据的标准化、规范化;
●与项目计划、开发计划集成;
●测试用例、缺陷报告、缺陷分析与测试计划集成;
●测试文档管理
●缺陷跟踪和管理、测试评估;
●测试脚本和测试用例可以重复使用、重新编辑;
●测试数据与测试过程/脚本分离;
●适合回归测试与压力测试、负载测试、疲惫测试;
●管擦程序内部信息(对象属性、方法,内部数据变化;
缺点
⏹费用风险
⏹集成风险
⏹银弹风险——没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。
⏹测试套件(不同厂商之间没有统一标准)
⏹本地化问题
⏹平台多样性
开发测试工具的著名公司
第六部分软件质量保证
1软件质量保证及其目标
SQA——确保软件的开发过程和结果符合预期要求,按照规程进行评价;尽早地检测错误;
目标——在软件开发的各个阶段(需求分析,规格定义,设计,编码,测试,维护)进行过程控制;
2.缺陷管理
bug的生命周期:
未确定的→新加入的(已确定为bug)→需要帮助的(找开发人员)→被重新分配的→被解决的→被验证的
bug的严重程度和优先级别
严重程度:
Critical——Grave——Serious——Blocker——Important——Normal——Minor——Trival
优先级别:
Immediate——Urgent——High——Normal——Low
3.SQA模型
CMM与微软实践
CMM分为几个级别?
——初始级→可重复级→已定义级→已管理级→优化级
微软测试的两大经验:
里程碑(MileStone)和每日构建(Dailybuild)的含义?
里程碑(CMM2)——每个里程碑完成部分功能;便于团队集中力量完成一个又一个功能;
提供多个机会以适应需求的更改;
每日构建(CMM3)——使模块得以及时整合;最新代码checkin放入代码库;
第七部分Beta测试——有计划地把产品分发到目标市场,收集反馈信息
1.Beta测试的特点
在产品发布之前,邀请公司的客户参与产品的测试工作;
并不是实验室的测试;
2.Beta测试的组织结构图
3.如何选择高效的Beta测试参与者?
确定测试参与人员数
确定测试候选人的条件
确定申请表
确定并发布召集书
4.如何高效的获得Beta测试结果?
找到动力,驱动参与者;
第八部分软件本地化测试
1.软件国际化和软件本地化的含义及其关系
国际化(基础)——处理多种语言和文化传统,不需要重新设计源程序代码的软件工程方法;
本地化——按照国家需要进行加工,是国际化用于特定的本地环境的体现;
2.软件本地化测试的内容(再创造过程)
功能性测试(基本功能);
翻译测试(术语准确性);
可用性测试(UI);
兼容性测试(硬件,版本);
文化、宗教、喜好等适用性测试;
手册验证(联机文件,在线帮助)
3.理解Unicode,Hard-Code和资源文件(.rc)的作用
Unicode——同意的字符编码标准,采用双字节对字符进行编码,16位;
Hardcode——指程序代码中包含一些特定的数据,本应作为变量处理,而将其数据存在数据库或初始化文件中;
资源文件.rc——可直接调整用户界面的灵活性,以适应翻译文本的尺寸;
第九部分高级内容
1.变异测试的基本思想和过程
对测试集的充分性进行评估;没有测试数据的选择规则;排错能力强,自动化程度高;
基本思想:
对程序进行微调,若产生结果不同,则变异体被杀死,若相同,则为活的变异体;
2.程序的中间表示形式(IR)(了解)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 软件 测试 质量保证 期末 复习资料 整理 文档 良心 出品