目 录
知识总结.................................5
第一章........................................5
第二章软件测试基础.............................5
第三章基于生命周期的软件测试...................6
第四章软件测试的分类...........................6
第五章软件缺陷管理.............................6
第六章软件测试过程及其管理.....................7
静态测试.......................................7
1、静态测试主要内容..........................7
2、区别:...................................7
3、代码检查内容..............................7
动态测试.......................................8
分类:......................................8
白盒测试......................................8
1、定义....................................8
2、白盒测试的特点 ..........................9
3、逻辑覆盖的种类............................9
黑盒测试......................................9
划分等价类的方法.............................9
划分等价类的经验原则........................10
等价类划分案例:............................10
等价类划分实验结果..........................12
2边界值法选择测试用例.......................12
边界值的原则...............................13
边界值实验结果..............................13
3.因果图法设计测试用例......................13
因果图实验结果分析..........................15
4、错误猜测法..............................16
5、场景法..................................17
定义.........................................17
灰盒测试......................................17
测试用例设计...............................17
特点.......................................17
编写要素...................................17
测试用例设计步骤............................18
测试用例编写模板............................18
实验结果(部分)............................18
关于录入TestLink和Mantis..................19
单元测试......................................19
单元测试内容...............................19
单元测试方法...............................19
系统测试......................................20
系统测试各阶段任务..........................20
集成测试......................................20
为什么要开展集成测试........................20
内容.......................................21
确认测试......................................21
系统测试......................................21
1、各阶段任务..............................21
软件手工测试与自动化.............................22
1、手工测试和自动化测试在软件测试过程中的具体实施22
2、常用自动化测试框架类型......................22
3、自动化常用技术.............................22
实训问题反馈..................................23
学习规划......................................24
附加(关于软件测试)..........................25
第一章
1.软件定义:程序+数据结构+文档
2.软件危机:落后的软件生产方式无法满足迅速增长的计算机软件要求,从而导 致软件开发与维护过程中出现的问题。
3.软件工程:方法+工具+过程
4.软件生命周期模型:瀑布模型,v模型,迭代模型
第二章 软件测试基础
1.定义:是对软件需求分析、设计、编码的最终复查的一系列过程,是软件质量保证的关键
步骤
2.目的:发现缺陷,提高质量
验证是否满足需求
建立软件质量的信心
3.原则:显示缺陷的不存在
穷尽测试不可能
测试尽早进入
缺陷集群性
杀虫剂悖论
测试活动依赖于测试背景
不存在缺陷不可能
4.软件测试工作流程
1.测试计划和控制
2.测试需求分析和用例设计
3.实现和执行测试用例
4.评估出口准则和报告
5.测试结束活动
第三章基于生命周期的软件测试
一、 软件测试的过程:需求分析 测试计划 用例设计 执行用例 缺陷追踪 测试报告
二、风险的定义:在整个测试活动中发生可预测和不可预测的影响进度的原因
目的:保证测试正确执行,在测试之前对软件评估,资金工具的分析
三、测试准入/准出条件
测试的准入条件:测试合同
软件测试所需各种文档
软件源代码正确通过编译
最好从一开始就介入到被测软件的开发周期
测试的准出条件:按要求完成了所规定的软件测试任务
软件测试通过测试评审
详细记录过程中发现的问题
第四章软件测试的分类
1.是否关心内部结构 白盒测试 黑盒测试 灰盒测试
2.开发过程级别 单元测试 集成测试 系统测试 验收测试
3.是否执行程序 静态测试 动态测试
4.执行过程是否需要人工干预 手工测试 自动化测试
5.测试实施组织 开发测试 用户测试 第三方测试
另外还有功能测试,非功能测试
非功能测试包括:负载测试、压力测试、文档测试、性能测试、稳定性测试、容量测试、兼容性测试
第五章软件缺陷管理
1.定义:
软件未实现产品说明书要求的功能
软件出现了产品说明书指明不应该出现的错误
软件实现了产品说明书未提到的功能
软件未实现产品说明书虽未明确提及但应该实现的目标
软件难以理解,不易运行或运行缓慢
2.导致缺陷产生的原因
大多数软件缺陷并不是由于编码造成的,导致大多数软件缺陷产生的最大的原因是需求分析阶段,其次是在软件设计阶段
3.缺陷的基本信息
缺陷标题、标题、报告人、报告日期、程序名称、版本号、配置、缺陷类型、严重性、优先级、关键词、缺陷描述、重现步骤、结果对比
4.缺陷报告“5C”原则
Correct Clear Consistant Concise Complete
第六章软件测试过程及其管理
V模型:基本的开发过程和测试行为
特点:不同测试阶段和开发过程期间各阶段的对应关系
W模型:增加了软件各开发阶段中应同步进行的验证和确认活动
特点:基于“尽早地和不断地进行软件测试”的原则。
测试计划
目的:资源整合 风险分析
静态测试
1、静态测试主要内容
审查 :非作者等专家在内的针对特定对象进行检查以发现缺陷的过程,最正式
小组评审: 一种“轻型审查”,可采用审查的指导方针和流程
走查 :是产品的作者向一组同事说明该产品,希望获得他们的意见以满足自己的需要
同级桌查:指除作者以外只有一位评审专家对工作产品进行检查
临时评审:请团队内其他同事帮忙,在短时间内解决一些问题,最不正式
2、区别:
3、代码检查内容
1.完整性检查 2.一致性检查
3.正确性检查 4.可修改性检查
5.可预测性检查 6.健壮性检查
7.可理解性检查 8.可验证性检查
9.结构性检查 10.可追溯性检查
11.代码标准符合性检查
代码审查:代码审查组由组长、资深程序员、程序编写者与专职测试人员等,组长不能是被测程序的编写者
桌面检查:程序员自己检查自己所编写的程序
代码走查:代码走查的讨论过程是非正式的
技术评审:最正式的审查类型,具有高度的组织化,要求每一个参与者都接受训练
软件质量特性:功能性(functionality)可靠性(reliability) 可用性(usability) 效率(efficiency) 维护(maintainability) 可移植(portability)
软件质量管理的原则:1.适度原则2.落实原则3.以客户需求为指导原则
软件质量管理方法:1.技术评审2.过程检查3.实施软件测试
动态测试
分类:
白盒测试
1、定义
“白盒”测试又称为结构测试或逻辑驱动测试是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的一种测试方法。
2、白盒测试的特点
1、可以构成测试数据使特定程序部分得到测试2、有一定的充分性度量手段
3、可获得较多工具支持4、通常只用于单元测试
3、逻辑覆盖的种类
.语句覆盖:
语句覆盖是最起码的测试要求,使得每一条语句至少被执行一次判定覆盖
对程序的逻辑覆盖很少,只关心判定表达式的值,是很弱的逻辑覆盖标准。
.判定覆盖: 要求设计足够的测试用例,使得程序中的每一个分支至少通过一次即每一条分支语句的“真”值和“假”值都至少执行一次。
.条件覆盖:不仅每一个语句至少执行一次,使得判定中的每个条件获得各种可能的结果。
判定覆盖只关心整个判定表达式的结果,条件覆盖关心的则是每个条件各种取值的结果。
.判定/条件覆盖: 设计足够多的测试用例,使得判定中每个条件的所有可能取值至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次。
.条件组合: 要求设计足够多的测试用例,使得每个判定中条件的各种组合至少出现一次。满足条件组合覆盖标准的测试用例,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。
.路径覆盖: 要求设计足够多的测试用例,使得程序中所有的路径都至少执行一次 。
黑盒测试
定义
黑盒测试又称功能测试或数据驱动测试
把测试对象当作看不见内部的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性.
站在使用软件或程序的角度,从输入数据与输出数据的对应关系进行的测试
在软件的接口处进行测试通过导出执行程序所有功能需求的输入条件集,实现功能覆盖,需求覆盖。
• 黑盒测试要求
每个软件特性或功能必须被一个测试用例或一个被认可的异常所覆盖构造数据类型和数据值的最小集测试测试排斥不规则输入的能力对影响性能的关键模块,应测试模块性能测试用例数量为达到合理测试所需要设计的最少数测试用例要能够指明是否存在某些类型的错误,而不是仅仅指出与特定测试有关的错误是否存在黑盒测试与软件如何实现无关,如实现发生变化,黑盒测试用例仍然可用黑盒测试用例开发可与软件开发同时进行,这样可节省软件开发时间,通过软件的用例就可设计出大部分黑盒测试用例。
1、划分等价类的方法
等价类,把所有可能的输入数据,即程序的输入域划分成若干部分划分,从每一部分中选取少数有代表性的数据做为测试用例,代表性数据等同于该类中的其他值
划分等价类的考虑因素:输入数据,输出数据
有效等价类:对于程序规格说明来说,是合理的,有意义的输入数据构成的集合
无效等价类:对于程序规格说明来说,是不合理的,无意义的输入数据构成的集合
设计测试用例时,要同时考虑有效等价类和无效等价类设计
无效类测试要多与有效类,无效类测试具有破坏性,分类时先列出类在具体到类中的数据,输入的数据要依赖于需求和输出结果。
划分等价类的经验原则:
1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100;
2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
等价类划分案例:
有一个程序读入3个整数,把这3个整数作为一个三角形的3条边的长度值。这个程序要打印出信息,说明这3个整数是否能组成三角形,如果能组成三角形,说明这个三角形是不等边、等腰或等边三角形。
解答:
分析题目中给出和隐含的对输入条件的要求:
(1)整数 (2)三个数 (3)非零数 (4)正数
(5)两边之和大于第三边 (6)等腰 (7)等边
如果三条边满足条件(1)~(4),则输出下列四种情况之一:
p 如果不满足条件(5),则程序输出为“非三角形”
p 如果三条边相等即满足条件(7),则程序输出为“等边三角形”
p 如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”
p 如果三条边都不相等,则程序输出为“不等边三角形”
可以设定3条边分别为A,B,C。如果他们能构成三角形的3条边,必须满足:
且 A+B>C,B+C>A,A+C>B
如果是等腰,要判断A=B,或B=C,或A=C
如果是等边,要判断A=B,且B=C,且A=C
表2
表3
等价类划分实验结果
2边界值法选择测试用例
边界的含义
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,稍高于其边界值及稍低于其边界值的一些特定情况
边界值分析方法
选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据的方法
等价分类法与边界值分析法的比较:边界值分析法使用范围更广,更复杂,找到的缺陷也更多,需要测试人员有更多的经验和耐心
边界值的原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
例如,如果程序的规格说明中规定:"重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……"。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。
再如一程序属于情报检索系统,要求每次"最少显示1条、最多显示4条情报摘要",这时我们应考虑的测试用例包括1和4,还应包括0和5等。
4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
6)分析规格说明,找出其它可能的边界条件。
边界值实验结果
3.因果图法设计测试用例
定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,该方法充分考虑了输入情况的各种组合及输入条件之间的相互制约关系。
适用范围:适合检查程序输入条件的各种组合情况
产生背景:等价类法、边界值法分析着重考虑输入条件,未考虑输入条件之间的关系
用因果图生成测试用例的基本步骤
1 分析软件规格说明描述:原因、结果、标识符
2 分析软件规格说明描述中的语义:找出逻辑关系
3 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,添加必要的约束条件
4 把因果图转换成判定表
5 把判定表的每一列拿出来作为依据,设计测试用例
原因和结果之间的关系有:
图3.23
①恒等:若C1是1,则E1也是1;否则E1为0。
②非:若C1是1,则E1是0;否则E1是1。
③或:若c1或c2是1,则E1是1;否则E1为0,或”可有任意个输入。
④与:若c1和c2都是1,则E1为1;否则E1为0,与”也可有任意个输入。
因果图约束
约束条件符号
A.输入条件的约束有以下4类:
① E约束(互斥/异):a和b中至多有一个可能为1,即a和b不能同时为1。
② I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
③ O约束(唯一);a和b必须有一个,且仅有1个为1。
④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
B.输出条件约束类型
输出条件的约束只有M约束(屏蔽/强制):若结果a是1,则结果b强制为0。
采用因果图法设计测试用例的步骤:
1)分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
2)分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
3)由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
4)把因果图转换为判定表。
5)把判定表的每一列拿出来作为依据,设计测试用例。
因果图实验结果分析
4、错误猜测法
定义:有经验的测试人员往往可以根据自己的工作经验和直觉推测出程序可能存在的错误,从而有针对性的进行测试。它的要素共有三点,分别为:经验、知识、直觉。
关于如何使用的问题,我们提炼出两点:
1. 列举出程序中所有可能有的错误和容易发生错误的特殊情况;
2. 根据他们选择测试用例。
我们知道经验是错误猜测法的一个重要要素,也就说带有主观性,那么这就决定了错误猜测法的优缺点,首先我们来看优点:
1. 充分发挥人的直觉和经验
2. 集思广益
3. 方便使用
4. 快速容易切入
对应的缺点有:
1. 难以知道测试的覆盖率
2. 可能丢失大量未知的区域
3. 带有主观性且难以复制
场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。
灰盒测试
“灰盒”测试与白盒测试的区别
– “白盒”测试在测试过程中测试者可以看到被测的源程序,通过
分析程序的内部结构,根据其内部结构设计测试用例
– 理想的“白盒”测试应该使选取的测试用例覆盖所有的路径
• 这是不可能的
• “白盒”测试它不关注测试程序的外部功能
– 灰盒测试无需关心模块内部的实现细节
• 灰盒测试与黑盒测试的区别
– “黑盒”测试是在测试者完全不考虑程序内部结构和内部特征的情况下,根据需求规格说明书设计测试用例和推断的测试结果的正确性
– “黑盒”测试只考虑了程序的输入,以及在该情况下的输出,并没有考虑程序的内部结构。
– 灰盒测试需关心模块与模块之间的交互。
测试用例设计
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期结果,体现测试方案、方法、技术和策略。
特点:正确性 完整性 准确 清晰 可维护 适用 可重用
原则:基于测试需求的原则 基于测试方法的原则 兼顾测试充分性和效率的原则 测试用例的代表性 测试结果的可判性 测试执行的可再现性原则
编写要素:名称和标志 测试追踪 用例说明 测试初始化要求 测试输入 期望测试结果 评价测试结果准则 操作过程 前提和约束 测试终止条件
测试用例设计步骤
1.测试需求分析 2.业务流程分析 3.测试用例设计 4.测试用例评审5.测试用例更新完善
测试用例编写模板
实验结果(部分):
测试要点:
测试用例:
缺陷报告:
关于录入TestLink和Mantis
单元测试
单元测试内容:
单元测试方法
系统测试
一般流程:
1.理解软件和测试目标
2.设计测试用例
3.运行测试用例并处理测试结果
4.评估测试用例和测试设计
系统测试各阶段任务
单元测试、集成测试、与系统测试之间区别
集成测试
为什么要开展集成测试
把各个单元模块连接起来的时候,穿越模块接口的数据是否会丢失
一个单元模块的功能是否会对另一个单元模块的功能产生不利的影响
各个子功能组合起来,能否达到预期要求的父功能
全局数据结构是否有问题
共享资源访问是否有问题
内容
集成后的功能性测试
接口测试
全局数据结构测试
资源测试(共享资源测试和资源极限测试)
确认测试
单个模块的误差积累起来,是否会放大,从而达到不能接受的程度
引入一个模块后,是否对其他与之相关的模块产生负面影响确认测试
概念:
确认测试是严格遵循有关标准的一种符合性测试,以确定软件产品是否满足所给定的要求。
确认测试是在完成集成测试后,依据确认测试准则,针对需求规格说明进行的测试,以确定所开发的软件系统是否能满足规定的功能和性能要求。
确认测试必须有用户参加,或者是以用户为主进行用户应参与设计测试方案,使用用户界面输入测试数据,并分析测试结果,为使用户积极参与测试,有效使用系统,通常需要对用户进行培训。
系统测试
1、各阶段任务
2、系统测试的测试类型
系统测试的测试类型一般包括:
功能测试、性能测试、接口测试
强度测试、人机交互界面测试、余量测试
可靠性测试、安全性测试、恢复性测试
边界测试、数据处理测试、安装性测试
容量测试、互操作性测试、敏感性测试
标准符合性测试、兼容性测试、中文本地化测试
软件手工测试与自动化
1、手工测试和自动化测试在软件测试过程中的具体实施
1)测试策划 2)测试设计 3)测试实施 4)测试执行
5)测试评估
2、常用自动化测试框架类型
1)测试脚本模块化框架
2)测试库框架
3)数据驱动测试框架
4)关键字驱动或者表驱动的测试框架
5)混合测试自动化框架
3、自动化常用技术
1)脚本技术
2)录制/回放技术
3)基于数据驱动的自动化测试技术
4)关键字驱动的自动化测试技术
5)基于预期结果分析比较技术
实训问题反馈
序号 |
问题描述 |
解决方法 |
1 |
mantis中各角色职责是什么以及权限的管理 |
课件 |
2 |
如何在testlink中集成Mantis bug管理系统 |
Csdn资料查询,详见网址TestLink中集成Mantis bug 管理系统 - xiaoputaozhi的博客 - 博客频道 - CSDN.NET http://blog.csdn.net/xiaoputaozhi/article/details/48186199 |
3 |
集成testlink与Mantis作用与实现 |
网上查找相关资料 |
4 |
在测试管理中,测试用例对测试需求的覆盖率是 我们非常关心的,如何根据需求设计写测试用例? |
课堂讲解及课下搜索资料 |
5 |
如何编写有效的测试用例 |
实验操作,不断总结 |
6 |
软件的缺陷等级应该如何划分 |
High,major,minor,cosmetic |
7 |
如何使mantis汉化? |
在mantisbt目录里找到config_defaults_inc.php这个文件,在这个文件里找到$g_default_language = 'english'; ,修改为$g_default_language = 'chinese_simplified' |
首先通过学习,增强理论知识,通过上机实验,分析案例做总结,使自己不断提高专业能力,改变自己被动的学习方式为主动,这样有助于把握学习内容的时机和学习内容;其次多参与一些活动,增加实践经验,妥善处理人际关系,小组之间积极交流。接下来的学习中要变得积极活跃起来,能及时反省,提高自己各方面的能力。大雁是通过团队精神来客服自然界的困难每年秋天才能从寒冷的北半球飞往温暖的南半球。一滴水要想不干涸的唯一办法是放到大海中,而我们一个个体团结起来就是一股强大的力量!我们一起往前走,即使天黑也不要彷徨.
附加(关于软件测试)