软件测试
物流系统研发部 刘定文
2009-5
为打造中国第一物流品牌做好系统监理工作
软件测试的目的
测试流程标准化
测试过程规范化
促使软件生产更系统、更专业化
软件测试的原则
不应测试自己开发的程序
设计测试用例时,不仅有确定的输入数据,还有确定的
输出数据
测试用例不仅有合理的,也要有非合理的
除了检查程序是否做完了它应该做的事,还要检查它是
否做了不应该做的事。
保留全部测试用例,作为软件的组成部分
程序中存在错误的概率与在该段程序中已发现的错误数
成正比
教程目录
第一课:测试模型
第二课:测试分类
第三课:验收测试
第四课:系统测试
第五课:集成测试
第六课:单元测试
第七课:基于应用服务器的测试
第八课:软件测试用例
第九课:测试用例设计的基本原则
第十课:软件测试用例设计方法
第十一课:测试用例设计编写标准
第十二课:测试用例的组织和跟踪
第十三课:测试结果分析和质量分析报告
第十四课:软件测试项目管理
第一课:测试模型:v模型
软件测试模型 : v模型 、 W模型
一、 v模型:
V模型反映出了测试活动与分析设
计活动的关系。V模型指出:
单元和集成测试应检测程序的执行
是否满足软件设计的要求;
系统测试应检测系统功能、性能的
质量特性是否达到系统要求的指标;
验收测试确定软件的实现是否满足
用户需要或合同的要求。
V模型存在一定的局限性,它仅仅把
测试作为在编码之后的一个阶段,
是针对程序进行的寻找错误的活动,
而忽视了测试活动对需求分析、系
统设计等活动的验证和确认的功能。
图例1:V 模型
第一课:测试模型:w模型
软件测试模型 : v模型 、 W模型
二、 W模型:
W模型伴随着整个软件开发周
期,而且测试的对象不仅仅是
程序,需求、设计等同样要测
试,测试与开发是同步进行的。
W模型有利于尽早地全面的发
现问题。
例如,需求分析完成后,测试
人员就应该参与到对需求的验
证和确认活动中,以尽早地找
出缺陷所在。同时,对需求的
测试也有利于及时了解项目难
度和测试风险,及早制定应对
措施,这将显著减少总体测试
时间,加快项目进度。
图例2:W模型
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试阶段:
1.设计阶段
2.单元测试阶段
3.集成测试阶段
4.系统测试阶段
5.验收测试阶段
6.回归测试(复测)阶段
按测试类型:
1.功能测试
2.界面测试
3.数据处理测试
4.流程测试
5.压力测试
6.并发测试
7.安全测试
8.性能测试
9.安装测试
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试阶段:
1.设计阶段
2.单元测试阶段
3.集成测试阶段
4.系统测试阶段
5.验收测试阶段
6.回归测试阶段
1.设计阶段:
对需求分析结果,概要设计,详细设计书进行检查.
分析工作量与人力资源配置编写软件测试计划。
2.单元测试:
单元测试完成对软件最小的结构的测试,一般用来
验证模块的功能属性,它利用设计文档作为指导,
主要使用白盒测试技术;但也可以测试其它项目,
如性能、可用性等等,可使用“黑盒”或“白盒”
方法进行。在单元测试中,检查出模块内部的错误
是单元测试的主要工作。
单元测试时机: 紧接在编码之后,源程序编制完
成并通过复审和编译检查完成。
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试阶段:
1.设计阶段
2.单元测试阶段
3.集成测试阶段
4.系统测试阶段
5.验收测试阶段
6.回归测试阶段
3.集成测试:
集成测试是组装软件的系统测试技术,按设计要求
把通过单元测试的各个模块组装在一起之后,进行
集成测试以便发现与接口有关的各种错误。
为什么要做集成测试?
每个模块都能单独工作,但这些模块集成在一起之
后却不能正常工作。主要原因是,模块相互调用时
接口会引入许多新问题。
有那些常见问题?
数据经过接口可能丢失;
一个模块对另一模块可能造成不应有的影响;
几个子功能组合起来不能实现主功能;
误差不断积累达到不可接受的程度;
全局数据结构出现错误。
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试阶段:
1.设计阶段
2.单元测试阶段
3.集成测试阶段
4.系统测试阶段
5.验收测试阶段
6.回归测试阶段
4.系统测试:
系统测试应该由若干个不同测试组成,目的是充分
运行系统,验证系统各部件是否正确
软件开发完毕后应与系统中其它成分集成在一起,
此时需要进行一系列系统测试。包括恢复测试、安
全测试、强度测试和性能测试等。
在系统测试时强调系统与外部设备联合调试。以检
验系统完整性,正确性。
5.验收测试:
系统开发生命周期方法论的一个阶段,这时相关的
用户和/或独立测试人员根据测试计划和结果对系
统进行测试和接收。它让系统用户决定是否接收系
统。它是一项确定产品是否能够满足合同或用户所
规定需求的测试。这是管理性和防御性控制。
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试阶段:
1.设计阶段
2.单元测试阶段
3.集成测试阶段
4.系统测试阶段
5.验收测试阶段
6.回归测试阶段
6.回归测试:
回归测试就是漏洞修复完成后再对软件进行测试,
以确保软件没有产生“回归”或因修复而变得更 糟,
这种测试一般要重新运行最初发现问题的原始测试
程序。
回归测试有两个焦点:
1.有没有产生新的漏洞
2.修复是否确实使缺陷消除。
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试类型:
1.功能测试
2.界面测试
3.数据处理测试
4.流程测试
5.压力测试
6.并发测试
7.安全测试
8.性能测试
9.安装测试
1.功能测试
对软件功能进行的测试,主要检查软件功能是否实
现了软件功能说明书(软件需求)上的功能要求。
2.界面测试
对软件的用户界面进行的测试,主要检查用户界面
的美观度、统一性、易用性等方面的内容。
3.数据处理测试
对软件数据接口进行的测试,主要检查软件数据处
理中输入、处理、输出数据过程。
4.流程测试
按操作流程进行的测试,主要有业务流程、数据流
程、逻辑流程、正反流程,检查软件在按流程操作
时是否能够正确处理。
第二课:测试分类
测试分类划分方法:1.按测试阶段、 2.按测试类型
按测试类型:
1.功能测试
2.界面测试
3.数据处理测试
4.流程测试
5.压力测试
6.并发测试
7.安全测试
8.性能测试
9.安装测试
5.压力测试
在软件的极限条件下进行的测试,主要有对数据的
极限值、边界值操作,对软件进行致命操作等。
6.并发测试
网络环境、并发环境、多用户条件下进行测试。
7.安全测试
对软件安全性方面的测试,主要检测软件中加密、
解密、数据备份、恢复、病毒检测,网络架构问题。
8.性能测试
对软件整体性能的测试,对适应性、健壮性、可恢
复性、灾难恢复能力
9.安装测试
在不同PC条件、操作系统、模拟客户机,网络环境
进行安装测试.
第三课:验收测试
验收测试:
1.验收测试任务
2.验收测试内容
3.验收测试标准
4.配置复审
5.α、β测试
6.验收测试过程
1.验收测试任务:
验收测试的任务:功能和性能是否符合用户需求(需求
分析文档)。
验收测试是向未来的用户表明系统能够像预定要求工作。
经集成测试后。
2.验收测试内容:
1.安装(升级)
2.功能测试(正例、重要算法、边界、时序、反例、错
误处理)
3.性能测试(正常的负载、容量变化)
4.压力测试(临界的负载、容量变化)
5.配置测试
6.平台测试
7.安全性测试、恢复测试(在出现掉电、硬件故障或切
换、网络故障等情况时,系统是否能够正常运行)
8.可靠性测试
第三课:验收测试
验收测试:
1.验收测试任务
2.验收测试内容
3.验收测试标准
4.配置复审
5.α、β测试
6.验收测试过程
3.验收测试标准:
1.软件是否符合需求所有功能和性能
2.文档资料是否完整(开发类文档)
《需求分析说明书》、《概要设计说明书》、
《详细设计说明书》、《数据库设计说明书》、
《测试计划》、《测试报告》、《程序维护手册》、
《程序员开发手册》、《用户操作手册》、
《项目总结报告》。
3.准确人机界面
4. 配置复审:
验收测试的另一个重要环节是配置复审。复审的目的在
于保证软件配置齐全、分类有序,并且包括软件维护所
必须的细节。
第三课:验收测试
验收测试:
1.验收测试任务
2.验收测试内容
3.验收测试标准
4.配置复审
5.α、β测试
6.验收测试过程
5.α、β测试
验收测试时不可能完全预见用户实际使用程序的情况:
α测试是指软件开发公司组织内部人员模拟各类用户行
对即将布署软件产品(称为α版本)进行测试,发现错
误并修正。α测试的关键在于尽可能逼真地模拟实际运
行环境和用户对软件产品的操作并尽最大努力涵盖所有
可能的用户操作方式。
β版本经过α测试调整后产生。β测试组织各方面的典
型用户实际使用,并要求用户报告异常情况、提出批评
意见。然后软件开发公司再对β版本进行改错和完善。
一般包括功能度、安全可靠性、易用性、可扩充性、兼
容性、效率、资源占用率、用户文档八个方面。
第三课:验收测试
验收测试:
1.验收测试任务
2.验收测试内容
3.验收测试标准
4.配置复审
5.α、β测试
6.验收测试过程
6.验收测试过程
1.编制《验收测试计划》和《项目验收准则》:根据软
件需求和验收要求编制测试计划,制定需测试的测试项,
制定测试策略及验收通过准则,并经过客户参与的计划
评审。
2.测试设计和测试用例设计:根据《验收测试计划》和
《项目验收准则》编制测试用例,并经过评审。
3.测试环境搭建:建立测试的硬件环境、软件环境等。
(可在委托客户提供的环境中进行测试)
4.测试实施:测试并记录测试结果。
5.测试结果分析:根据验收通过准则分析测试结果,作
出验收是否通过及测试评价。
6.测试报告:根据测试结果编制缺陷报告和验收测试报告,
并提交给客户。
第四课:系统测试
系统测试:
1.系统测试目的
2.系统测试对象
3.系统测试步骤
1.系统测试的目的
系统测试是将已经确认的软件、计算机硬件、外设、网
络等其他元素结合在一起,进行信息系统的各种组装测
试和确认测试,其目的是通过与系统的需求相比较,发
现所开发的系统与用户需求不符或矛盾的地方,从而提
出更加完善的方案。
2.系统测试对象
系统测试的对象不仅仅包括需要测试的产品系统的软件,
还要包含软件所依赖的硬件、外设甚至包括某些数据、
某些支持软件及其接口等。因此,必须将系统中的软件
与各种依赖的资源结合起来,在系统实际运行环境下来
进行测试
3.系统测试步骤分为三个步骤:
1.模块测试,测试每个模块的程序是否有错误
2.组装测试,测试模块之间的接口是否正确;
3.确认测试,测试整个软件系统是否满足用户功能和性
能的要求。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
1. 集成测试的定义
集成测试是单元测试的逻辑扩展。集成是指多个单元
的聚合,许多单元组合成模块,而这些模块又聚合成
程序的更大部分,如分系统或系统。
集成测试采用的方法是测试软件单元的组合能否正
常工作,以及与其他组的模块能否集成起来工作。
测试构成系统的所有模块组合能否正常工作。集成
测试所持的主要标准是《软件概要设计规格说明》,
任何不符合该说明的程序模块都应该加以记载并上报。
2. 集成测试的目的
集成测试的目的是确保各单元组合在一起后能够按既
定意图协作运行,并确保增量的行为正确。它所测试
的内容包括单元间的接口以及集成后的功能。使用黑
盒测试方法测试集成的功能。并且对以前的集成进行
回归测试。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
3. 集成测试的标准
集成测试应由专门的测试小组来进行(测试人员,开发
人员,设计人员),整个测试活动在评审人员出席的情
况下进行。
在完成预定的组装测试工作之后,测试小组应负责对
测试结果进行整理、分析,形成测试报告。测试报告
中要记录实际的测试结果、在测试中发现的问题、解
决这些问题的方法以及解决之后再次测试的结果。此
外还应提出目前不能解决、还需要管理人员和开发人
员注意的一些问题,提供测试评审和最终决策,以提
出处理意见。
检测标准:
1、成功地执行了测试计划中规定的所有集成测试;
2、修正了所发现的错误;
3、测试结果通过了专门小组的评审。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
4. 集成测试方法
集成测试主要有两种方法:
1.非渐增式测试方法
2.渐增式测试方法。
非渐增式测试方法
先分别测试每个模块,再把所有模块按设计
要求放在一起结合成所要的程序。
渐增式测试方法
把下一个要测试的模块同已经测试好的模块
结合起来进行测试,测试完以后再把下一个
应该测试的模块结合进来测试。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
非渐增式与渐增式两种测试方法的比较:
1.非渐增式测试方法需要编写的测试用例较多,工作
量较大;渐增式测试方法开销小。
2.渐增式测试方法发现模块间接口错误早;而非渐增
式测试方法晚。
3.非渐增式测试方法发现错误,较难诊断;而使用渐
增式测试方法,如果发生错误则往往和最近加进
来的那个模块有关。
4.渐增式测试方法测试更彻底
5.渐增式测试方法需要较多的机器时间
6.使用非渐增式测试方法,可以并行测试。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
渐增式测试:自顶向下和自底向上两种方法。
1.自顶向下集成
从主控模块(“主程序”)开始,沿着软件的控
制层次向下移动,从而逐渐把各个模块结合起来。
在组装过程中,可以使用深度优先的策略,或宽
度优先的策略。
M1
M2 M3 S4
M5 M6
M8
S7
图例3:自顶向下集成
深度优先:M1->M2->M5->M8->M6->M3->S7->S4
宽度优先:M1->M2->M3->S4->M5->M6->S7->M8
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
渐增式测试方法:自顶向下和自底向上两种方法。
1.自顶向下集成实施步骤:
(1)对主控模块进行测试,测试时用存根程序代
替所有直接附属于主控模块的模块。
(2)根据选定的结合策略(深度优先或宽度优先)
,每次用一个实际模块代替一个存根程序
(新结合进来的模块往往又需要新的存根程
序)
(3)在结合下一个模块的同时进行测试
(4)为了保证加入模块没有引进新的错误,可能
需要进行回归测试(即,全部或部分地重复
以前做过的测试)。
从第2步开始不断地重复进行上述过程,直至
完成。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
渐增式测试:自顶向下和自底向上两种方法。
2.自底向上集成:
自底向上测试是从“原子”模块(即软件结构最低层
的模块)开始组装测试,因测试到较高层模块时,所
需的下层模块功能均已具备。
M
c
M
a
M
b
D
2
D
1
D
3
族2
族
3
族
1
图例4:自底向上集成
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
渐增式测试:自顶向下和自底向上两种方法。
2.自底向上集成步骤:
1 把低层模块组织成实现某个子功能的模块(cluster);
2 测试驱动模块控制测试数据的输入和测试结果的输出;
3 对每个模块群进行测试;
4 删除测试使用的驱动模块,用较高层模块把模块群组织
成为完成更大功能的新模块群。
从第一步开始循环执行上述步骤,直至整个程序构造完毕。
第五课:集成测试
集成测试:
1.集成测试定义
2.集成测试目的
3.集成测试标准
4.集成测试方法
两种集成策略比较:
“自顶向下”法的主要优点:不需要测试驱动程
序,能够在测试阶段的早期实现并验证系统
的主要功能,而且能在早期发现上层模块的
接口错误。
“自顶向下”法的主要缺点:需要存根程序,可
能遇到与此相联系的测试困难,低层关键模
块中的错误发现较晚,而且用这种方法在早
期不能充分展开人力。
第六课:单元测试
单元测试:
1.单元测试定义
2.单元测试内容
3.单元测试过程
单元测试定义:
单元测试是在软件开发过程中要进行的最低级别的测
试活动,在单元测试活动中,软件的独立单元将在与
程序的其他部分相隔离的情况下进行测试。
第六课:单元测试
单元测试:
1.单元测试定义
2.单元测试内容
3.单元测试过程
单元测试内容:
1.模块测试项目:
1.模块接口
2.局部数据结构
3.重要的执行通路
4.出错处理通路
5.影响上述各方面特性的边界条件
2.输入/输出的测试要点
1.参数数目和由调用模块送来的变元的数目是否相等?
2.参数的属性和变元的属性是否匹配?
3.传送给被调用模块的变元的数目是否等于那个模块的
参数的数目?
4.传送给被调用模块的变元属性和参数的属性是否一致
?
5.传送给内部函数的变元属性、数目和次序是否正确?
6.全程变量的定义和用法在各个模块中是否一致
第六课:单元测试
单元测试:
1.单元测试定义
2.单元测试内容
3.单元测试过程
单元测试内容:
3. 输入/输出的测试要点
1.格式说明书与输入/输出语句是否一致?
2.缓冲区大小与记录长度是否匹配?
3.文件结束条件处理了吗?
4.输入/输出错误检查并处理了吗?
5.输出信息中由文字书写错误吗?
4.局部数据结构的测试要点
1.错误的或不相容的说明
2.使用尚未赋值或尚未初始化的变量
3.错误的初始值或不正确的缺省值
4.错误的变量名字(拼写错或截短了)
5.数据类型不相容
6.上溢、下溢或地址异常
第六课:单元测试
单元测试:
1.单元测试定义
2.单元测试内容
3.单元测试过程
单元测试内容:
5. 计算中的常见错误
1.计算次序不对或误解了运算符的优先次序
2.混合运算(运算对象的类型彼此不相容)
3.变量初始值不正确
4.精度不够
5.表达式的符号表示错误
6.测试方案中的错误
1.比较数据类型不同的量
2.逻辑运算符不正确或优先次序的错误
3.当由于精度问题两个量不会相等时,程序中却期
待着相等条件的出现
4.“差1”错(即,多循环一次或少循环一次)
5.错误的或不存在的循环终止条件
6.当遇到发散的迭代时不能终止循环
7.错误地修改循环变量
第六课:单元测试
单元测试:
1.单元测试定义
2.单元测试内容
3.单元测试过程
单元测试内容:
7.错误处理通路时常见错误
1.对错误的描述是难于理解的
2.记下的错误与实际遇到的错误不同
3.在错误进行处理之前,错误条件已经引起系统干预。
4.对错误的处理不正确
5.描述错误的信息不足以帮助确定造成错误的位置。
第六课:单元测试
单元测试:
1.单元测试定义
2.单元测试内容
3.单元测试过程
单元测试过程:
1.编写单元测试用例,标准《软件详细设计书》
2.测试用例审核
由审查小组参与审核
3.代码审查
人工测试程序可以由编写者本人非正式地进
行,审查小组正式进行。
4.提交测试
5.执行测试用例
6.提交测试结果
7.回归测试
8.编写测试报告
第七课:基于应用服务器的测试
基于服务器的测试
1.服务器类型划分
服务测试
3.数据库服务测试
1.应用服务器划分
服务器[重点]
2.数据库服务器[重点]
3.实时通讯服务器
4.邮件服务器
5.群件服务器
6文件/打印服务器
第七课:基于应用服务器的测试
基于服务器的测试
1.服务器类型划分
服务测试
3.数据库服务测试
服务测试
测试内容:
1.文字测试:检查用户等级、术语、内容、准确度以及
内容的时效性。
2.链接测试:测试所有链接是否能按照指示的那样正确
链接到应当链接的页面;测试所链接的页面是否存在;
确保不存在孤立页面(即没有链接指向的页面)。
3.图形、图像测试:确保有明确的用途;颜色的搭配;
图片的大小和质量;所有图形是否能够正确载入和显
示。
4.表单测试:检测域的大小;数据接收是否正确;可选
域是否真正可选;提交操作的完整性等。
测试:Cookies是否起作用;是否按预定的时
间进行保存;刷新对Cookies有何影响等
6.数据加密
7.目录访问权限
8.日志文件
第七课:基于应用服务器的测试
基于服务器的测试
1.服务器类型划分
服务测试
3.数据库服务测试
1.数据库服务器典型性能问题
单一类型事务响应时间过长
数据库服务器负载
糟糕的数据库设计
事务粒度过大
批任务对普通用户性能的影响
并发处理能力差
锁冲突严重
资源锁定造成的数据库事务超时
数据库死锁
第八课:软件测试用例
软件测试用例
1.测试用例的定义
2.测试用例的作用
3.编制用例步骤
1.测试用例的定义
1.为某个特殊目标而编制的一组测试输入、执行条件以
及预期结果,以便测试某个程序路径或核实是否满足
某个特定需求。
2.对一项特定的软件产品进行测试任务的描述,体现测
试方案、方法、技术和策略。内容包括测试目标、测
试环境、输入数据、测试步骤、预期结果、测试脚本
等,并形成文档。
3.软件测试的行为活动做一个科学化的组织归纳.目的
是能够将软件测试的行为转化成可管理的模式;同时
测试用例也是将测试具体量化的方法之一.
第八课:软件测试用例
软件测试用例
1.测试用例的定义
2.测试用例的作用
3.编制用例步骤
2.测试用例在软件测试中发挥的作用
1、指导测试的实施
2、规划测试数据的准备
3、评估测试结果的度量基准
4、分析缺陷的标准
3.编制用例步骤
1、测试用例文档
编写测试用例文档应有文档模板,须符合内部的规范
要求。测试用例文档将受制于测试用例管理软件的约
束。
测试用例文档由简介和测试用例两部分组成。
简介部分编制了测试目的、测试范围、定义术语、
参考文档、概述等。
测试用例部分逐一列示各测试用例。每个具体测试用
例都将包括下列详细信息:用例编号、用例名称、测
试等级、入口准则、验证步骤、期望结果(含判断标
准)、出口准则、注释等。
第八课:软件测试用例
软件测试用例
1.测试用例的定义
2.测试用例的作用
3.编制用例步骤
4.详解用例文档
3.编制用例步骤
2、测试用例的设置
早期的测试用例是按功能设置用例。后来引进了路径
分析法,按路径设置用例。目前演变为按功能、路径
混合模式设置用例。
3、设计测试用例
测试用例可以分为基本事件、备选事件和异常事件。
设计基本事件的用例,应该参照用例规《设计规格说
明书》,根据关联的功能、操作按用例设计方法设计
测试用例。而对孤立的功能则直接按功能设计测试用
例。基本事件的测试用例应包含所有需要实现的需求
功能,覆盖率达100%。
4.物流研发部测试用例详解
单元测试书_入库.xls
%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%B9%A6_%E5%85%A5%E5%BA%
%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%B9%A6_%E5%85%A5%E5%BA%
%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%B9%A6_%E5%85%A5%E5%BA%
%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%B9%A6_%E5%85%A5%E5%BA%
第九课:软件测试用例设计的基本原则
用例设计原则
1.用例设计原则
1.尽量避免含糊的测试用例
含糊的测试用例给测试过程带来困难,甚至会影响测
试的结果。在测试过程中,测试用例的状态是唯一的
清晰的测试用例使测试人员在测试过程中不会出现模
棱两可的情况
2.尽量将具有相类似功能的测试用例抽象并归类
一直强调软件测试过程是无法进行穷举测试的。因此,
对相类似的测试用例的抽象过程显得尤为重要,一个
好测试用例应该是能代表一组或者一系列的测试过程。
3.尽量避免冗长和复杂的测试用例
主要目地是保证验证结果的唯一性。为的是在测试过
程执行过程中,确保测试用例的输出状态唯一性,从
而便于跟踪和管理。
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
1.设计方法分类:黑盒测试,白盒测试
2.有关黑盒测试
1.黑盒测试也称功能测试,它是通过测试来检测每个功
能是否都能正常使用。在测试中,把程序看作一个不
能打开的黑盒子,在完全不考虑程序内部结构和内部
特性的情况下,在程序接口进行测试,它只检查程序
功能是否按照需求规格说明书的规定正常使用,程序
是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,
主要针对软件界面和软件功能进行测试。
2.黑盒测试是以用户的角度,从输入数据与输出数据的
对应关系出发进行测试的。
3.外部特性本身有问题或规格说明的规定有误,用黑盒
测试方法是发现不了的。
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
2.有关黑盒测试
黑盒测试法注重于测试软件的功能需求,主要试图发
现下列几类错误。
1.功能不正确或遗漏;
2.界面错误;
3.数据库访问错误;
4.性能错误;
5.初始化和终止错误等。
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
3.有关白盒测试
1.白盒测试也称结构测试或逻辑驱动测试,它是按照程
序内部的结构测试程序,通过测试来检测产品内部动
作是否按照设计规格说明书的规定正常进行,检验程
序中的每条通路是否都能按预定要求正确工作。
2.将测试对象看作一个打开的盒子,测试人员依据程序
内部逻辑结构相关信息,设计或选择测试用例,对程
序所有逻辑路径进行测试,通过在不同点检查程序的
状态,确定实际的状态是否与预期的状态一致。
3.“白盒”法全面了解程序内部逻辑结构、对所有逻辑
路径进行测试。“白盒”法是穷举路径测试。在使用
这一方案时,测试者必须检查程序的内部结构,从检
查程序的逻辑着手,得出测试数据。
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
方法-黑盒法
1.等价分类法
等价分类法是将输入数据的可能值分成若干
“等价类”,每一类以一个代表性的测试数
据进行测试,这个数据就等价于这一类中的
其它数据。
该法的关键在于如何将输入数据分类。
EXP:输入的数据范围是1~999,我们可以划
分三类:x<1,1<=x<999,x>=999
2.边缘值分析法
用边缘特殊值测试。
经验表明:程序往往在边缘情况时犯错误,
故测试边缘情况比较有效。
EXP:int类型数据取值范围从-32768到
32767 ,用例设计时取刚刚〈 ,刚刚〉 = ,
三类边界进行设计
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
方法-黑盒法
3.因果图法
等价类法与边缘值分析法的缺点是没有检
查各种输入条件的组合。
因果图法则着重分析输入条件的各种组合,
每种组合条件就是“因”,它必然有一个输
出的结果,这就是“果”。
示例:软件测试基本理论方法与工作流程.doc
4.错误推测法
通过经验或直觉推测程序中可能存在的各种
错误,从而有针对性设计测试用例
5.功能图法
根据《软件设计说明书》,列举功能,关注
判断条件,描述结果,每条独立路径(事务)
编写一条测试用例的方法
LTK被动补货网络分析图.vsd
%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%9F%BA%E6%9C%AC%E7%90%86%E8%AE%BA%E6%96%B9%E6%B3%95%E4%B8%8E%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%
%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E5%9F%BA%E6%9C%AC%E7%90%86%E8%AE%BA%E6%96%B9%E6%B3%95%E4%B8%8E%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%
LTK%E8%A2%AB%E5%8A%A8%E8%A1%A5%E8%B4%A7%E7%BD%91%E7%BB%9C%E5%88%86%E6%9E%90%E5%9B%
LTK%E8%A2%AB%E5%8A%A8%E8%A1%A5%E8%B4%A7%E7%BD%91%E7%BB%9C%E5%88%86%E6%9E%90%E5%9B%
LTK%E8%A2%AB%E5%8A%A8%E8%A1%A5%E8%B4%A7%E7%BD%91%E7%BB%9C%E5%88%86%E6%9E%90%E5%9B%
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
方法-白盒法(逻辑覆盖法)
1.语句覆盖
即每个语句至少能执行一次
2.判定覆盖
判定覆盖又叫分支覆盖,含义是:每个判定
的分支至少执行一次。
3.条件覆盖
即一个判断语句往往包含了若干条件。通过
给出测试用例,使判断中的每个条件都获得
各种可能的结果
4.判断/条件覆盖
选取足够多的测试数据,使判断中每个条件
都取得各种可能值,使每个判断表达式也取
到各种可能的结果。
5.条件组合覆盖
使得每个判断中条件的各种可能组合都至少
出现一次。
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试
方法-调试法
1.基本任务
诊断和改正程序中的错误
2.调试策略
(1)试探法
调试人员分析错误征兆,猜想故障的大
致位置,然后使用前述的一两种调试技
术,获取程序中被怀疑的地方附近的信
息。该策略缓慢而低效。
(2)回溯法
确定最先发现“症状”的地方,然后人
工沿程序的控制流往回追踪源程序代码,
直到找出错误根源或确定故障范围为止。
回溯法的另一种形式是正向跟踪,也就
是使用输出语句检查一系列中间结果,
以确定最先出现错误的地方。
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试法
方法-调试法
(3)对分查找法
如果已经知道每个变量在程序内若干个
关键点的正确值,则可以用赋值语句或
输入语句在程序中间点附近“注入”这
些变量的正确值,然后检查程序的输出。
如果输出结果是正确的,则故障在程序
的前半部分;反之,故障在程序的后半
部分。对于程序中有故障的那部分再重
复使用这个方法,直到把故障范围缩小
到容易诊断的程度为止。
(4)归纳法
所谓归纳法就是从个别推断一般的方法。
从线索(错误征兆)出发,通过分析这
些线索之间的关系而找出故障,具体步
骤如下:
A.收集有关的数据
B.组织数据
C.导出假设
D.证明假设
第十课:软件测试用例设计的基本方法
用例设计方法
1.设计方法分类
2.有关黑盒测试
3.有关白盒测试
4.方法-黑盒法
5.方法-白盒法
6.方法-调试法
方法-调试法
(5)演绎法
演绎法从一般原理或前提出发,经过删
除和精化的过程推导出结论。
用演绎法调试开始时先列出所有看来可
能成立的原因或假设,然后一个一个地
排除列举出的原因,最后证明剩下的原
因确实是错误的根源。具体步骤如下:
A.设想可能的原因
B.用已有的数据排除不正确的假设
C.精化余下的假设
D.证明余下的假设
第十一课:测试用例设计编写标准
用例编写标准
1.用例编写标准
1.测试用例设计编写标准
在编写测试用例过程中,需要参考和规范一些基
本的测试用例编写标准,在ANSI/IEEE829-1983
标准中列出了和测试计划相关的测试用例编写规
范和模板。
2.测测试用例设计模板中主要元素:
1.标识符(identification):每个测试用例应该
有一个唯一的标识符,它将成为所有和测试用例
相关的文档/表格引用和参考的基本元素,这些
文档/表格包括设计规格说明书、测试日志表、
测试报告等。
2.测试项(test item):测试用例应该准确地描述
所需要测试的项及其特征,测试项应该比测试设
计说明中所列出的特性描述更加具体,例如做
Windows计算器应用程序的窗口测试,测试对象
是整个的应用程序用户界面,这样测试项就应该
是应用程序的界面和特性要求,例如窗口缩放测
试、界面布局、菜单等。
第十一课:测试用例设计编写标准
用例编写标准
1.用例编写标准
3. 输入标准:用来执行测试用例的输入要
求。这些输入可能包括数据、文件、或
者操作(例如鼠标的左键单击,键盘的
按键处理等),必要的时候,相关的数
据库、文件也必须被罗列。
4. 输出标准:标识按照指定的环境和输入标准得到
的期望输出结果。如果可能的话,尽量提供适当
的系统规格说明来证明期望的结果。
5. 测试用例之间的关联:用来标识该测试用例与其
他的测试(或其他测试用例)之间的依赖关系。
在测试的实际过程中,很多的测试用例并不是单
独存在的,它们之间可能有某种依赖关系,例如,
用例A需要基于B的测试结果正确的基础上才能进
行,此时需要在A的测试用例中表明对B的依赖性,
从而保证测试用例的严谨性。
第十二课:测试用例的组织和跟踪
用例组织跟踪
1.用例的状态
2.用例跟踪内容
3.用例跟踪形式
1.测试用例状态规定
测试过程中,测试用例有三种状态:通过、未通
过和未测试。根据在测试执行过程中测试用例的
状态,实现测试用例的跟踪,从而进行测试有效
性的检验。因此,测试用例的跟踪主要是针对测
试过程中测试用例的执行和输出而进行的跟踪,
从而达到测试过程的可管理性和进行测试有效性
评估。
2.用例跟踪内容
1.测试用例执行的跟踪:
实现测试用例执行过程的跟踪可以有效地将测试
过程量化。例如,执行一轮测试中,需要跟踪总
共执行了多少测试用例,每个测试人员平均每天
使用多少测试用例,测试用例中通过、未通过以
及未使用的占多少,未使用的原因是什么. 测试
人员工作量的跟踪不应该仅仅凭借测试用例的执
行情况和发现的程序缺陷多少来判定,但至少,
通过测试执行情况的跟踪可以大致判定当前的项
目软件和测试的质量与进度,并对测试的时间做
出大致的推断。
第十二课:测试用例的组织和跟踪
用例组织跟踪
1.用例的状态
2.用例跟踪内容
3.用例跟踪形式
2.用例跟踪内容
2.测试用例覆盖率的跟踪:
测试用例的覆盖率指的是根据测试用例进行测试
的执行结果与实际的软件存在的问题的比较,从
而实现对测试有效性的评估。
3.用例跟踪形式
1.书面文档
2.电子表格
3.自定义数据库
第十三课:测试结果分析和质量分析报告
测试结果分析
1.缺陷分析
2.总体质量分析
1.缺陷分析
1.缺陷分布报告:允许将缺陷计数作为一个或多个
缺陷参数的函数来显示,生成缺陷数量与缺陷属
性的函数,如缺陷在程序模块的横向分布、严重
性缺陷在不同的产生原因上的分布等。
2.缺陷趋势报告:按各种状态将缺陷计数作为时间
的函数显示,如缺陷数量在整个测试周期的时间
分布。趋势报告可以是累计的,也可以是非累计
的,可以看出缺陷增长和减少的趋势;
3.缺陷年龄报告:是一种特殊类型的缺陷分布报告,
显示缺陷处于活动状态的时间,展示一个缺陷处
于某种状态的时间长短,从而了解处理这些缺陷
的进度情况。
4.测试结果进度报告:展示测试过程在被测应用的
几个版本中的执行结果以及测试周期,显示对应
用程序进行若干次迭代和测试生命周期后的测试
过程执行结果
第十三课:测试结果分析和质量分析报告
测试结果分析
1.缺陷分析
2.总体质量分析
2.总体质量分析
1.问题分类:“分类”包括各种统计上的分项,
例如,对应的源程序的位置,错误的严重级别
(提示、警告、非失效性错误、失效性错误等),
新发现的还是已有记录的错误。
2.趋势(时间序列)分析:根据所发现的软件缺
陷历史数据进行分析,预测未来情况。
第十四课:软件测试项目管理
项目管理
1. 测试项目管理工
具核心组件
2. 测试项目管理核
心组件
1.测试项目管理工具核心组件
测试计划
测试设计大纲
测试用例
测试环境搭建指南
基础数据配置指南
缺陷报告
测试报告
测试总结
第十四课:软件测试项目管理
项目管理
1. 测试项目管理工
具核心组件
2. 测试项目管理核
心组件
2.测试项目管理核心组件
测试计划管理
测试用例管理
用例审核管理
测试执行管理
缺陷管理
测试报告管理
团队交流管理
课程结束,谢谢大家!
为打造专心,专注,专业,专家型的测试团队而努力!