软件测试期末复习资料解读.docx
- 文档编号:27562622
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:20
- 大小:56.76KB
软件测试期末复习资料解读.docx
《软件测试期末复习资料解读.docx》由会员分享,可在线阅读,更多相关《软件测试期末复习资料解读.docx(20页珍藏版)》请在冰豆网上搜索。
软件测试期末复习资料解读
题型:
-客观题:
选择题(10*1’)+填空题(10*2’)+判断题(10*1)共40分
-简答题:
4*5’分,共20分
-分析题:
4*10’题,共40分
#Chap1
·软件测试的概念(P9)
·软件测试正反2种观念的争辩。
他们的观念及存在的问题。
(P7~9)
·结合V模型谈谈开发及测试关系附录:
V模型P11
·请结合实例,谈谈为什么穷尽测试是不可能的。
(开放题,从输入和路径穷尽来考虑)
·了解测试目的、测试驱动开发的概念(P9P13)
#Chap2
·软件质量的概念
软件质量定义:
软件产品满足规定的和隐含的及需求能力有关的全部特征和特性。
它包括:
1软件产品质量满足用户要求的程度;2软件各种属性的组合程度3用户对软件产品的综合反映程度4软件在使用过程中满足用户要求的程度(P15)
·ISO9126软件质量模型(一层6个即可),并分别说明各个质量属性的含义(P17)
Iso9126模型:
高层:
软件质量需求评价标准(SQRC)属性:
功能性、可靠性、可用性、效率、可移植性、可维护性
中层:
软件质量设计标准(SQDC)属性:
安全性、、成熟性、可理解性、时间表现、可分析性、适应性
低层:
软件质量度量标准(SQMC)
·软件缺陷的定义及表现形式
软件缺陷:
是指计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵,其结果会导致软件产品在某种程度上不能满足用户的需求
表现形式:
1运行出错,包括运行中断、系统崩溃、界面混乱2数据计算错误,导致结果不正确3功能、特性没有实现或部分实现4在某种特点条件下没能给出正确或准确的结果5计算的结果没有满足所需要的精度6用户界面不美观7需求规格说明书的问题8设计不合理,存在缺陷9实际结果及预期结果不一致10用户不能接收的其他问题(P18)
·验证及确认(V&V)的概念及两者区别V&V
验证:
是检验开发出来的软件产品和设计规格说明书的一致性,即是否满足软件厂商的生产要求
确认:
就是检验产品功能的有效性,即是否满足用户的真正需求(P21)
·SQA的概念及表现形式、及软件测试的关系
SQA及软件测试之间相辅相成,存在包含和交叉的关系。
它们的相同点在于二者都是贯穿整个软件开发生命周期的流程。
不同在于SQA是一项管理工作,侧重及对流程的评审和监控,而测试是一项技术性的工作,侧重于对产品的评估和验证(P23)
·软件测试的分类:
按阶段、按目标、按方法。
(P23~P25
目的分类:
集成测试、功能测试、回归测试、性能测试、可靠性测试、安全测试、兼容性测试
阶段分类:
单元测试、集成测试、功能测试、系统测试、安装测试、验收测试
方法分类:
静态测试、动态测试、黑盒测试、白盒测试
-静态测试和动态测试、黑盒测试和白盒测试
-按阶段:
单元测试、集成测试、系统测试、验收测试,它们的概念及不同。
附录:
测试阶段定义
-非功能测试:
性能测试、可靠性测试、安全性测试,及常见非功能缺陷辨析。
#Chap3
·请简述什么是黑盒测试和白盒测试,它们各自的局限性是什么?
P31P38
黑盒测试:
不关注软件内部结构,着眼于程序外部用户界面,关注软件的输入和输出,关注用户的需求,从用户的角度验证软件的功能,实现端到端的测试。
缺陷:
1是否不正确或遗漏了功能2能否正确地接收输入数据,能否产生正确的输出信息3功能操作逻辑不合理4界面是否出错、是否不美观5安装过程中出现问题,安装步骤不清晰、不够方便灵活6系统初始化问题
白盒测试:
按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等缺陷:
试图列举所有路径测试,是不可能的,企图遍历所有的路径是很难做到的,即使每条路径都测试了,覆盖率得到100%,程序也可能出错。
·白盒测试常用的逻辑覆盖有哪些,各自的基本思想。
P31~P38
白盒测试常用的逻辑覆盖:
语句覆盖:
运行被测程序,是程序中的每个可执行语句至少被执行一次判定覆盖:
设计若干个用例,运行被测程序,使得程序中每个判断的取真分支和假分支至少经历一次,及判断真假是否均被满足条件覆盖:
执行被测程序,使判断中每个条件的可能取值至少被满足一次判定-条件覆盖:
使所有条件的可能取值至少被执行一次,所有判断的可能结果至少执行一次条件组合覆盖:
使判断中每个条件的所有可能至少出现一次,且每个判断本身的判定结果也至少出现一次路径覆盖:
覆盖程序中所有可能的执行路径基本路径测试法5步骤
(1)程序的流程控制图
(2)计算程序环路复杂度(3)确定基本路径(4)准备测试用例,确保基本路径组中的每一条路径被执行一次(5)图形矩阵
·白盒测试的逻辑覆盖用例设计方法及应用:
重点掌握语句、判定、条件组合、路径覆盖。
应用参见附录:
白盒测试。
·基本路径(独立路径)的概念及环路复杂度(圈复杂度)的计算、确定基本路径的方法。
应用参见附录:
基本路径测试。
·黑盒测试的概念、常用的黑盒测试方法有哪些,各自的基本思想。
黑盒测试的方法:
1等价类划分法:
借助数据的输入输出来判断功能能否正常运行(是否可以用一组有限的数据去代表近似无限的数据)
2边界值分析法:
对输入的条件进行分析并找出其中的边界值条件,通过这些边界值的测试来发现更多的错误
3判定表方法:
采用一种适合于多种条件的组合,相应地产生多个动作(结果)的方法来进行测试用例的设计
4因果图法5正交试验法6功能图法
·黑盒测试的用例设计方法及应用:
重点掌握等价类、边界值、判定表、组合测试。
应用参见附录:
黑盒测试方法。
·采用错误推测法进行测试。
例:
针对打开文件失败你考虑测试哪些情况?
(开放题)
#Chap4
·测试过程模型TMap的生命周期.(P69页)
TMap所定义的测试生命周期由计划和控制、准备、说明、执行和完成等阶段组成
(1)计划和控制阶段涉及测试计划的创建,定义了执行测试活动的“who,what,when,whereandhow”。
在测试过程中,通过定期和临时的报告,客户可以经常收到关于产品质量和风险的更新
(2)准备阶段决定软件说明书质量是否足以实现说明书和测试执行的成功
(3)说明阶段及定义测试用例和构建基础设施。
(4)执行阶段,需要分析预计结果和实际结果的区别,发现缺陷并报告
(5)完成阶段包括对测试资料的维护一便于再利用,创建一个最终的报告以及为了更好地控制将来的测试过程对测试过程进行评估
·了解常见的过程改进模型:
TMM、TPI、CTP、STEP等;(P71)
TPI(testprocessimprovrment,测试过程改进),一个逐步完善测试过程的模型
TMM(测试成熟度模型)
CTP(criticaltestprocess,测试过程评估模型主要是一个内容参考模型,一个上下文相关的方法,并能对模型裁剪)
STEP(systematictestandevaluationprocess,系统化测试和评估过程)是一个内容参考模型,认定测试是一个生命周期活动,在明确需求后开始直到系统退役。
·了解软件工程标准规范的5个级别:
国际标准ISO、国家际准GB、行业标准IEEE、企业规范、项目规范(P80)
ISO一般,有国际机构制定和公布供各国参考的标准为国际标准
GB由政府或国家级的机构制定或批准,适用于本国范围的标准
IEEE有一些行业机构、学术团体或国防机构制定,并适用于某个业务领域的标准
企业规范:
一些大型企业或公司,由于软件工程工作的需要,制定适用于本部门的规范
项目规范:
为一些科研生产项目需要而由组织制定一些具体项目的操作规范,此种规范制定的目标很明确,即为该项任务专用。
#Chap5
·单元测试的定义和主要任务(P95、P97)
单元测试:
是对软件组成单元进行的测试,而且软件单元是在及程序的其他部分相隔离的情况下进行独立的测试
单元测试的主要任务:
包括逻辑、功能、数据和安全性等各方面的测试,包括单元中所有
独立执行路径、数据结构、接口、边界条件、容错性等测试。
(p97p98有详细内容)
·代码评审中常见缺陷模式的识别。
参见附录:
代码缺陷模式。
·什么叫驱动和桩?
画出单元测试模型图(P107图5-2)
驱动:
驱动程序,驱动模块,用于模拟被测模块的上级模块,能够调用被测模块,并在测试过程中,驱动模块接受测试数据,调用被测模块并把相关的数据传送给被测模块
桩:
桩程序,桩模块,用于模拟被测模块工作过程中所调用的下层模块。
#Chap6
·集成测试的模式及各自优缺点P126
集成测试基本可以概况为2种:
1非渐增式测试模式:
先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要求的程序,如大棒模式
2渐增式测试模式:
把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完再把下一个应该测试的模块结合进来测试
各自优缺点:
渐增式测试模式:
需要编写的软件较多,工作量较大,而非渐增式测试模式测试开销小
渐增式测试模式:
发现模块间接口错误早,而非渐增式测试模式晚
渐增式测试模式:
测试更彻底
渐增式测试模式:
需要较多的机器时间
非渐增式测试模式:
发现错误较难诊断,而使用渐增式测试模式,如果发现错误则往往和最近加进来的那个模块有关
使用非渐增式测试模式:
可以并行测试
·大棒及三明治集成方法的概念及方法应用(给一个模块结构图,写出它的集成图)P129
大棒:
采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性地全部集成起来进行集成测试,适合在规模较小的应用系统中使用(图:
p129图6-4)
三明治:
它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序,因为在测试初自底向上集成已经验证了底层模块的正确性。
·回归测试的目的、过程及选取用例的策略P133
回归测试的目的是在程序有修改的情况下保证原有功能正常的一种测试策略和方法,因为这时的测试不需要进行全面测试,从头到尾测一遍,而是根据修改的情况进行有效测试
修改的两层含义:
1所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等;2不影响软件原有功能的正确性。
回归测试过程:
(1)识别出软件中被修改的部分
(2)从原基线测试用例库T中,排除所有不再适用的测试用例,确定那些对新的软件版本依然有效的测试用例,其结果是建立一个新的基线测试用例库T0(3)依据一定的策略从T0中选择测试用例测试被修改的软件(4)如果回归测试包不能达到所需的覆盖要求,必须补充新的测试用例使覆盖率达到规定的要求,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分。
(5)用T1执行修改后的软件
选取用例的策略:
应该兼顾效率和有效性两个方面。
方法:
(1)再测试全部用例
(2)基于风险选择测试(3)基于操作刨面选择测试(4)再测试修改的部分
·系统负载包括哪些方面?
常见的负载模式有哪些(flat,ramp-up,浪涌等)P135
系统负载:
可以看做是“并发用户并发数量+思考时间+每次请求发送的数据量+负载模式”
具体分为:
1在线用户:
通过浏览器访问登录Web应用系统后并且还没有退出该系统的用户2虚拟用户:
模拟浏览器向Web服务器发送请求并接受响应的一个进程或线程3并发用户:
这些用户在同一时刻做同一件事情或同样的操作4用户并发数量:
近似于同时在线用户数量,但不一定等于在线用户数量,因为有些在线用户不进行操作,或前后操作之间的间隔时间很长5思考时间:
浏览器在收到响应后到提交下一个请求之间的间隔时间6负载模式:
加载的方式。
·常见的系统性能指标,及性能指标估算方法。
参见附录:
性能指标28原则估算方法。
P135
·针对某新产品(例:
手机/一次性杯子等),你打算开展哪些类型的测试?
请至少列举出5种以上(开放题)
#Chap7
·α测试和β测试(P148)
α测试是指软件开发公司组织内部人员模拟各类用户对即将面市的软件产品(称为α版本)进行测试,试图发现错误并改正。
α测试的关键在于尽可能的逼真地模拟实际运行环境和用户对软件产品的操作并尽最大的努力涵盖所有可能的用户操作方式。
经过α测试调整的软件产品称为β版本。
β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。
然后软件开发公司再对β版本进行改错和完善
·向前兼容、向后兼容的概念。
P152
向前兼容是指可以使用以前版本的软件
向后兼容指的是可以使用未来版本的软件
兼容性测试包括软件、数据共享、硬件兼容性。
·多版本测试面临的问题,如何采用Pairwise组合测试设计来解决的。
P153+附录组合测试
·了解验收测试内容(可用性/安装/文档/兼容性)、用户参及、真实场景、满足用户需求
#Chap11
·自动化测试的定义及内容P225
自动化测试是把人为驱动的测试行为转化为机器执行的一种过程,即模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动地完成软件的单元测试、功能测试、负载测试或性能测试等全部工作。
·自动化测试的四种脚本类型及相应的含义、如何用QTP实现数据驱动的P229
·测试工具的分类及代表性工具的名称及应用场景。
例:
QTP,Selenium,xUnit,EMMA,Jmeter,LoadRunner,Appscan,Wirshark,SoapUI,Mantis,Bugzilla,JIRA等。
#Chap14~16
·测试用例的定义P309
测试用例:
是有效地发现软件缺陷的最小测试执行单元,是为了特定目的(如考察特定程序路径或验证是否符合特定的需求)而设计的测试数据及及之相关的测试规程的一个特定的集合
用例执行状态(通过、未通过、未进行测试)P316
·软件缺陷的基本生命周期P325
软件缺陷生命周期指的是一个软件缺陷被发现,报告到这个缺陷被修复、验证直至最后关闭的完整过程。
·软件缺陷的常见属性及含义,重点掌握:
严重程度、优先级的分类(详见PPT)
·基于测试覆盖的系统评估方法。
P347-P350
方法:
1对于需求的估算2基于需求的测试覆盖评估3基于代码的测试覆盖评估
·基于缺陷分析的产品质量评估方法:
经典的种子公式、基于缺陷清除率的估算方法、软件性能评估技术(P351)
附录:
缺陷分析方法
附录:
V模型
1、V模型:
能准确反映出开发活动和测试活动之间的关系,说明:
1)测试活动及开发活动同时启动;
2)测试分层的
3)每个开发活动都有相应级别的测试类型相对应。
附录:
按测试阶段定义
类别
对象
目的
测试依据
测试方法
单元测试
模块内部程序
消除局部模块逻辑和功能上的错误和缺陷
模块逻辑设计
模块外部说明
白盒测试
集成测试
模块间的集成和调用关系
找出及软件设计相关的程序结构,模块调用关系,模块间接口方面的问题
系统结构
接口设计
灰盒测试,采用较多黑盒
系统测试
整个系统,包括系统软硬件等
对整个系统进行一系列的整体、有效性测试
系统规格说明
需求说明书等
黑盒测试
验收系统
整个系统,包括系统软硬件等
对整个系统按用户环境和用户使用场景一系列的整体、有效性测试
用户需求
黑盒测试
附录:
白盒测试方法示例
使用白盒测试的逻辑覆盖方法测试如下程序段。
要求:
(1)画出程序控制流图
(2)分别以语句覆盖、判定覆盖、条件覆盖和条件组合覆盖、路径覆盖方法设计用例,并写出每个用例的执行路径
1If(A>1&&B==0)then
2X=X/A
3If(A>2||X>1)then
4X=X+1
测试用例
A,B,X
执行路径
语句覆盖
2,0,3
ace
判定覆盖
2,0,3
ace
1,0,1
abd
条件组合覆盖
2,0,3
ace
2,1,1
abe
1,1,1
abd
1,0,3
abe
路径覆盖
2,0,3
ace(L1)
1,0,1
abd(L2)
2,1,1
abe(L3)
3,0,3
acd(L4)
附录:
基本路径测试法示例
使用基本路径测试如下程序段。
要求:
(1)出控制流图
(2)求出程序圈复杂度
(3)导出测试路径
voidsort(intirecordnum,intitype)
1{
2intx=0;
3inty=0;
4while(irecordnum-->0)
5{
6if(itype==0)
7break;
8else
9if(itype==1)
10x=x+10;
11else
12y=y+20;
13}
14}
答:
1)
2)V(G)=10-8+2,其中10是控制流图G中边的数量,8是控制流图中节点的数目。
(边数-节点数+2)
4)可得出程序的基本路径集中有4条独立路径:
i.路径1:
4->14
ii.路径2:
4->6->7->14
iii.路径3:
4->6->9->10->13->4->14
iv.路径4:
4->6->9->12->13->4->14
附录:
黑盒测试方法示例
【等价类】
对输入用户密码进行验证
输入:
1)用户密码为6到8位。
2)必须含有字母和数的组合。
输出:
如正确,输出正确的信息。
否则,输出相应的错误信息。
要求:
(1)分析程序的规格说明,列出输入域等价类(包括有效和无效等价类)
(2)根据
(1)中的等价类,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号
输入条件
有效等价类
编号
无效等价类
编号
用户密码
6<=位数<=8
(1)
位数<6
(3)
位数>8
(4)
包含字母和数字
(2)
不包含数字
(5)
不包含字母
(6)
序号
输入参数
覆盖等价类
输出信息
1
1234abcd
(1)
(2)
输入正确
2
ab1234
(1)
(2)
输入正确
3
1234a
(3)
输入错误
4
123456789df
(4)
输入错误
5
abcdedf
(1)(5)
输入错误
6
(1)(6)
输入错误
在测试一个政府办公信息系统时,需要输入邮政编码。
请问相比之下,下面那一组测试数据是测试邮政编码的最佳选择?
A.100080,10000,abc,410005,空白
B.410005,空白,空值,41005,abc
C.100080,空白,abc,100000,I00000
D.410005,abc,空值,100000,I00000
【判定表】
假设中国某航空公司规定:
中国去欧美的航线所有座位都有食物供应。
每个座位都可以播放电影。
中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。
中国国内的航班的商务仓有食物供应,但是不可以播放电影 。
中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影。
请使用决策表法设计测试用例。
1
2
3
4
5
6
条件
A:
航班
(A1=国内;A2=国外欧美,A3=国外非欧美)
A1
A1
A1
A2
A3
A3
B航位等级
(B1=经济仓,B2=商务仓,B3=其它)
B1
B1
B2/B3
-
B1
B2/B3
C飞行时间(C1:
>2小时;C2:
<=2小时)
C1
C2
-
-
-
-
动作
播放电影
√
√
食物供应
√
√
√
√
√
附录:
代码缺陷模式示例
//非法计算
doubledosomething(doublea,b)
{
c=a/b
...
}
//数组越界
IntMAX_LEN=4;
voidfoo()
{
int[]array=newint[MAX_LEN];
for(inti=0;i<=MAX_LEN;i++){
array[i]=0;
}
}
//死循环
voidf1()
{
inti=0;
while(i<10){
i--;
}
}
//空指针
booleanequals(Objecta,Objectb)
{
if(a.getClass()==b.getClass())
returntrue;
else
returnfalse;
}
附录:
组合测试示例
对于系统,有A,B,C三因子,每个因子取值为A={A1,A2},B={B1,B2},C={C1,C2}
⏹如果是全正交测试:
则有2*2*2=8个用例
T1:
A1B1C1
T2:
A1B1C2
T3:
A1B2C1
T4:
A1B2C2
T5:
A2B1C1
T6:
A2B1C2
T7:
A2B2C1
T8:
A2B2C2
⏹如果是Pairwise二维组合,则有4个用例。
✓所有的二二因子组合有:
A和B的组合(A1,B1),(A1,B2),(A2,B1),(A2,B2)
B和C的组合(B1,C1),(B1,C2),(B2,C1),(B2,C2)
A和C的组合(A1,C1),(A1,C2),(A2,C1),(A2,C2)
✓覆盖这些2因子组合,共需要的用例有:
T1:
A1B1C1
T2:
A2B1C2
T3:
A1B2C2
T4:
A2B2C1
⏹如果是一维组合,则有2个用例。
覆盖A1,A2,B1,B2,C1,C2各个单因子即可。
共需要的用例
T1:
A1B1C1
T2:
A2B2C2
附录:
性能测试指标估算方法(28原则)
某系统的事务数约100万笔。
假设每年交易量集中在10个月,每个月24个工作日,每个工作日6小时,试采用80~20原理估算系统的每秒事务数TPS
1000000*80%/(10*24*6*3600*20%)
附录:
缺陷分析方法示例
(1)经典种子公式
两个独立测试同一个程序,第一组发现25个缺陷,第二组发现30个缺陷,在两个小组发现的缺陷有15个是共同的,估计程序中缺陷个数。
答:
可以采用缺陷注入法的思路。
1)第一组测试出25个缺陷,有15个缺陷及第二组是相同的。
假设将第1组25个看作是注入缺陷给第二组去测试,意味着注入的25个总缺陷数有15个被发现。
2)第二组测试出30个缺陷;由于系统中的缺陷被测试出的概率相同的;
用公子公式来估算总缺陷数,15/25=30/X
(2)缺陷清除率
⏹D1:
软件开发过程中发现的所有缺陷数;
⏹D2:
软件发布后发现的缺陷数;
⏹D为发现的总缺陷数。
因此,D=D1+D2。
整体缺陷清除率=D1/D;
缺陷源
已发生缺陷(D1)
交付后的缺陷(D2)
缺陷清除率(%)
需求报告
77
23
77
设计
106
19
85
编码
166
9
95
文档
48
12
80
错误修改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 期末 复习资料 解读