超级软件测试汇总.docx
- 文档编号:680837
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:106
- 大小:608.77KB
超级软件测试汇总.docx
《超级软件测试汇总.docx》由会员分享,可在线阅读,更多相关《超级软件测试汇总.docx(106页珍藏版)》请在冰点文库上搜索。
超级软件测试汇总
版块整理负责人说明:
人员编号
内容版块
负责人
001
需求管理、配置管理、同行评审、缺陷管理
陈琴昭
002
质量体系ISO9001、CMM、6西格玛
田野
003
铁三角-组织结构、质量模型
诸葛
004
铁三角-流程
秦英凯
005
技术-灰盒(IT)、白盒(UT)
李志超
006
技术-黑盒(ST)、汇总
李锋
007
测试基础,总结归纳英语缩写总结
陈婷婷
008
测试工具,SQA统计规范,驱动桩编写,缺陷跟踪统计
孙媛
需求:
以软件开发铁三角为中心,每个人负责补充对应版块的知识。
时间:
2天时间。
(汇总日期9月2日)-(评审日期9月4日)-(修改完成日期-9月底)
说明:
下面有第一阶段计划重点(汇集前辈以及高手的总结,相当全面),方便大家整理时的理解。
各内容如有不明白的地方,赶紧和帮里其他人沟通。
人员编号
负责人
完成度
完成日期
001
陈琴昭
100%+5%
2010-9-2
002
田野
99%
2010-9-2
003
诸葛
100%
2010-9-1
004
秦英凯
100%+2%
2010-9-2
005
李志超
99%
2010-9-1
006
李锋
100%
2010-9-4
007
陈婷婷
95%
2010-9-2
008
孙媛
100%
2010-9-2
海之所以无垠,是因为他广纳百川
测试基础7
软件质量10
测试方法18
V&V模型(测试过程)21
单元测试23
集成测试29
系统测试37
测试覆盖率49
测试用例举例51
同行评审53
配置&需求管理56
缺陷管理58
SQLSERVER61
测试工具总结67
第一阶段英语单词总结84
复习问题总结88
测试基础
1、软件测试的目的:
证明(表达软件能够工作)→检测(发现错误)→预防(管
理质量)
2、测试执行:
单元测试(UT执行):
一个测试用例的测试执行;
集成测试(IT执行):
一个测试用例集的测试执行;
系统测试(ST执行):
不同测试阶段的测试执行。
3、回归测试的目的:
a.验证错误是否修复;
b.检测对代码的修改是否引入了新的错误。
5、软件测试的主要工作:
a.检视代码,评审开发文档;
b.进行测试设计,写作测试文档(测试计划、测试方案、测试用例等);
c.执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;
d.通过测试度量软件质量。
6、软件危机的出现主要表现在:
a.由于缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定;
b.开发早期需求分析不够明确,造成开发后期矛盾集中暴露;
c.不遵循开发规范,开发文档不完整,软件难以维护;
d.缺乏严密有效的软件质量检测手段,交付给用户的软件质量差。
7、软件危机的后果:
a.软件质量不高,很难稳定;
b.软件项目延期,进度无法控制;
c.成本增加,无法控制预算。
8、软件危机的根源:
a.根据摩尔定律,硬件发展很快,相应对软件系统的期望
越来越高;
b.软件系统复杂性提高,需多人合作;
c.软件开发是人的智力活动,无法用已有的产业工程方法来组织管理。
9、软件生命周期的各个阶段:
计划→需求分析→设计→编码→测试→运行→评价
10、设计:
概要设计(HLD):
在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;
详细设计(LLD):
对每个模块要完成的工作进行具体的描述。
11、软件研发相关要素:
人员、过程、工具。
12、软件项目组人员组成:
分析人员、设计人员、开发人员、测试人员、配置管理人员、SQA(质量保证人员);
13、软件研发流程类型:
瀑布模型、螺旋模型、RUP流程、IPD流程。
14、软件研发中几个重要的过程:
需求管理;配置管理;缺陷管理;同行评审。
15、常见的引入缺陷的原因:
a.开发过程缺乏有效的沟通,或者没有进行沟通;
b.软件复杂度越来越高;
c.编程中产生错误;
d.需求不断变更;
e.项目进度的压力;
f.不重视开发文档;
g.软件开发工具本身隐藏的问题。
等等……
软件质量
软件质量管理体系:
软件质量管理体系:
ISO9000(2000版)CMM六西格玛
ISO9001
ISO9000ISO9004
ISO9000:
2000版标准
ISO9000:
制定管理理念和原则
ISO9001:
标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一进补充。
(梳心)
ISO9004:
是组织进行持续改进的指南标准。
八项质量管理原则:
一.以顾客为中心:
组织依存于其顾客,因此,组织应理解顾客当前的和未来的需求,
满足顾客要求并争取赶超顾客期望。
二.领导作用:
领导者将本组织的宗旨.方向和内部环境编统一起来,并创造使员工能
够充参与实现组织目标的环境。
三.全员参与:
各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组
织带来最大的收益。
四.过程方法:
将相关的资源和活动作为过程进行管理,可以更高效地得到期望的结
果。
五.管理系统方法:
针对设定的目标,识别.理解并管理一个由相互关联的过程的过程
所组成的体系,有助于提高组织的有效性和效率。
六.持续改进:
持续改进是组织的一个永恒的目标。
七.基于事实的决策方法:
对数据和信息的逻辑分析或直觉判断是有效决策的基础。
八.互利的供方关系:
通过互利的关系,增强组织及其供方创造价值的能力。
其中与软件产品产品优其相关有:
(一.三.六.七项)
1、软件质量的定义:
一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。
而质量就是实体基于这些特性满足需求的程度。
2、软件质量的三个层次:
a.符合需求规格;(内部质量)
b.符合用户显示需求;(验收质量)
c.符合用户实际需求。
(使用质量)
3、影响软件质量的因素:
流程、技术、组织。
流程:
一组活动(活动是否都是必须的;活动角色之间的关系)
过程:
一组将输入转化为输出的相关联或相互作用的活动。
4、八项质量管理原则的意义:
a.是质量管理的理论基础;
b.用高度概括易于理解的语言所表述的质量管理的最基本,最通用的一般性规律;
c.为组织建立质量管理体系提供了理论依据;
d.是组织的领导者有效的实施质量管理工作必须遵循的原则。
5、CMM软件质量成熟度模型
CMM(CapabilityMaturityModel)
由于美国软件工程研究所(SEI)受美国国防部委托立项。
开发人:
WattsHumphrey.
1991年推出CMM1.0版,1993年提出CMM1.1版
现在开发CMMI(CMMIntegration)
软件能力成熟度模型CMM(提倡过程决定质量)
5优化级
关注过程改进
持续改进过程
4已管理级Managed
过程被描述,并得到良好理解
可预测的过程管理变更
3已定义级Definded
过程被描述,并得到良好理解
标准.一致的过程产品过程质量
2可重复级Repeatable
可重复以前的主要经验
1初始级initial
不可预测并且缺控制
纪律的过程集成工程过程
项目管理
CMM1级
特点:
(个人英雄主义)
A项目的成功依赖于一个非常优秀的项目经理的团队。
B无法重复以往成功的实践。
C缺乏基本配置管理
可视度:
整个过程不可预测,不可见,不可控。
(过程管理非常混乱)
CMM2级
特点:
(有纪律)
能够重复以前成功的经验和实践。
引入合理需求变更(需求管理)
测试与开发分离,整个过程能力可概为有纪律的。
可视度
原始需求——需求分析——设计——编码——测试——产品
CMM3级
特点:
(有过程,经过同行评审)
组织中有一个专门负责组织的标准软件过程。
(SEPG)
可视度
同CMM2但整个过程是标准和一致的。
CMM4级特点
特点:
(量化管理)
过程能力是可预防的,因为过程是已测量的并在可测的范围内运行。
组织能定量地预测过程和产品质量方面趋势。
软件产品具有可预测的高质量。
可视度
同CMM3但整个过程是可预测的。
CMM5级特点
特点:
(改进过程本身)
通过缺陷来发现过程的不足。
新的开发技术促使改进过程。
可视度
同CMM¥级整个是以改进的。
CMM1:
初始级,Inltial,不可预测并且缺乏控制;
CMM2:
可重复级:
Repeatable,可重复以前的主要经验;
(关键过程区域:
需求管理;软件项目计划;软件项目跟踪和监督;软件子合同管理;软件质量保证;软件配置管理。
)
CMM3:
已定义级:
Defined,过程被描述,并得到良好理解;
(关键过程区域:
组织过程定义;组织过程焦点;培训大纲;集成软件管理;软件产品工程;组际协调;同行评审。
)
CMM4:
已管理级:
Managed,过程被测量并受控;
(关键过程区域:
定量的过程管理;软件质量管理。
)
CMM5:
优化级,Optimizing,关注过程改进。
(关键过程区域:
缺陷预防;技术变更管理;过程变更管理。
)
7、CMM的用途:
a.评估组用来识别组织中的强处和弱处;
b.评价组用来识别选择不同的业务承包商的风险和监督合同;
c.管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需进行的活动;
d.技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程。
8、ISO9001和CMM的关系:
相似点:
强调管理、过程、规范化和文档化;
不同点:
CMM把焦点对准软件;ISO9001的范围包括:
硬件、软件、流程性材料和服务;
两者关系:
CMM2级与ISO9001强相关;CMM的每个关键过程域至少按某种解释与ISO9001弱相关。
六西格玛管理法(强调组织能力)
本质:
全面质量管理,而不仅仅是质量提高手段
六西格玛实施方式:
DMAIC过程
5控制control
推行控制系统
4改进Improve
优化解决方案
3分析Anslyse
研究资料,确定原因
收集资料,寻找原因
1定义Define
提出问题,确定目标
2测量Measure
9、软件质量模型:
功能性:
当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。
包括:
适合性;准确性;互操作性;保密安全性;功能性的依从性。
可靠性:
在指定条件下使用时,软件产品维持规定的性能级别的能力。
包括:
成熟性;容错性;易恢复性;可靠性的依从性。
易用性:
在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
包括:
易理解性;易学性;易操作性;吸引性;易用性的依从性。
效率:
在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
包括:
时间特性;资源利用性;效率依从性。
维护性:
软件产品可被修改的能力。
修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。
包括:
易分析性;易改变性;稳定性;易测试性;维护性的依从性。
可移植性:
软件产品从一种环境迁移到另外一种环境的能力。
包括:
适应性;易安装性;共存性;易替换性;可移植性的依从性。
10、软件质量活动:
软件质量保证(SQA)和测试;SQA从流程方面保证软件的质量、测试从技术方面保证软件的质量、只进行SQA或者只进行测试活动不一定能产生好的软件质量。
11、
SQA的主要工作范围:
1.保障制度体系。
2.促进过程改进。
3.指导项目实施。
4.增加透明度。
5.评审项目活动。
6.审核工作产品。
7.协助解决问题。
8.提供决策参考。
9.进行缺陷预防。
10.实现质量目标。
12、度量:
对事物属性的量化表示;
软件度量:
是指计算机软件中范围广泛的测度,包括对软件系统、构建或生命周期过程具有的某个给定属性的度的一个定量测量。
目的:
·提高软件生产率,缩短产品研发周期,降低研发成本、维护成本;
·提高软件产品质量,提高用户满意度;
·为组织持续改进提供量化的指标和反馈。
13、软件度量的作用:
理解;预测;评估;改进。
分类:
规模;工作量;进度;质量
软件度量的过程(五步法):
1.识别目标。
2.根据度量目标,定义度量过程。
3.数据收集。
4.数据分析与反馈。
5.过程改进。
测试方法
1、什么是白盒测试:
·白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况;
·白盒测试是基于程序结构的逻辑驱动测试;
·白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。
2、为什么进行白盒测试:
·一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问题能基本得到消除;
·能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证;
·发现问题后解决问题的成本较低。
3、白盒测试的常用技术:
·静态分析:
控制流分析、数据流分析、信息流分析等;
·动态分析:
逻辑覆盖测试(分支测试、路径测试等)、程序插装等。
4、控制流相关概念:
程序元素、控制流关系、控制流图、控制流矩阵。
(步骤:
5)
5、控制流分析能发现的问题:
转向并不存在的标号;没有用的语句标号;从程序
入口进入后无法达到的语句;不能达到停机语句的
语句。
6、数据流相关概念:
数据的定义;数据的引用。
(步骤:
3)
7、数据流分析的左右:
分析代码中关于数据定义和引用方面的错误;进行代码优
化。
(赋值语句运算效率高)
8、信息流分析:
输入变量和语句关系;语句和输出变量关系;输入和输出变量管
理。
(步骤:
4)
9、覆盖率工具的作用:
·分析被测试代码控制结构,决定插装位置;·实施插装;·将插装代
码重新编译;·执行被测对象,根据插装的监控哨信息统计覆盖率。
10、白盒测试的特点:
·测试人员需要了解软件的实现;·可以检测代码中的每条分支和路
径;·解释隐藏在代码中的错误;·对代码的测试比较彻底;·实现代
码结构上的优化;·白盒测试投入较大,成本高;·白盒测试不验证规
格的正确性。
11、什么是黑盒测试:
·黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现;
·黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。
·黑盒测试又可以被称为基于规格的测试。
12、常见的黑盒测试类型:
功能性测试;容量测试;负载测试;恢复性测试。
13、系统测试的时候,如果没有SRS时,有两类BUG无法发现:
需求遗漏;
需求偏差。
14、黑盒测试的优点:
·对于更大的代码单元来说(子系统甚至系统级)比白
盒测试效率要高;·测试人员不需要了解实现的细节,
包括特定的编程语言;·从用户的视角进行测试,很容
易被大家理解和接受;·有助于暴露任何规格不一致或
有歧义的问题。
15、黑盒测试的缺点:
·没有清晰的和简明的规格,测试用例是很难设计
的;·不能控制内部执行路径,会有很多内部程序路径
没有被测试到;不能直接针对特定的程序段,这些程序
可能非常复杂(因此可能隐藏更多的问题)。
16、动态和静态测试的分类依据在于:
被测对象是否运行起来。
17、手工静态分析——同行评审:
正规检视;技术评审;走查。
评审对象:
计
划、需求文档、设计图、代码等。
18、自动化静态分析:
静态验证;语法分析器;符号执行器。
Ø自动化测试的限制(板书):
·自动化测试不具备想象力,不能够检查脚本中给定的观察点之外的错误;
·自动化测试只能提高测试效率,不能提高测试效果,不能发现比人工测试更多的问题;如被测对象不稳定,存在变动性的话不适合开展自动化测试,否则脚本的编写和维护所耗费的时间可能远大于人工测试;
·只有手工测试积累到一定程度(提供更多的观察点),才能做好自动化测
试。
V&V模型(测试过程)
1、验证与确认V&V:
验证(VERIFICATION)强调过程;确认(VALIDATION)强调
结果。
2、V&V告诉我们:
·尽早测试(尽早准备、尽早执行);
·全面测试(文档、代码)
·全过程测试(测试参与到开发过程中、对测试过程全称跟踪)
·测试是独立的、迭代的。
3、单元、集成、系统测试的比较:
测试方法不同;考察范围不同;评估基准不同。
4、回归测试策略:
完全重复测试;选择性重复测试(覆盖修改法;周边影响法;指标达成方法;选择重要级别高的测试用例)
5、其他测试阶段:
验收测试;a(ALPHA)测试;B(BETA)测试。
6、主要的测试文档:
测试计划;测试方案;测试用例;测试规程;测试报告;测试日报。
单元测试
1、单元测试的目的:
在于发现各模块内部可能存在的各种错误主要是基于白盒测试。
·验证代码是与设计相符合的;·发现设计和需求中存在的错误;
·发现在编码过程中引入的错误。
(和设计不相符/和设计相符,但是由于
编码疏漏引起)
单元测试的常见错误:
1.单元接口
2.局部数据结构
3.独立路径
4.出错处理
5.边界条件
2、孤立的测试策略:
·方法:
不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和
驱动模块。
每个模块进行独立的单元测试。
·优点:
该方法是最简单,最容易操作的。
可以达到高的结构覆盖率。
该方法是纯粹的单元测试。
·缺点:
桩函数和驱动函数工作量很大,效率低。
3、自顶向下的单元测试策略:
·方法:
先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。
其
次对第二层进行测试,使用上面已测试的单元做驱动模块。
如此类
推直到测试完所有模块。
·优点:
可以节省驱动函数的开发工作量,测试效率较高。
·缺点:
随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且
开发和维护的成本将增加。
4、自底向上的单元测试策略:
·方法:
先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模
块的模块做驱动模块。
然后再对上面一层做单元测试,用下面已被
测试过的模块做桩模块。
以此类推,直到测试完所有模块。
·优点:
可以节省桩函数的开发工作量,测试效率较高。
·缺点:
不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产
生很大的影响。
5、单元测试的四个阶段:
·测试计划:
完成单元测试计划;
·测试设计:
完成单元测试方案;
·测试实现:
完成单元测试用例、单元测试规程、单元测试脚本及数据文件;
·测试执行:
执行单元测试用例,修改发现的问题并进行回归测试,提交单元测试报告。
✧单元测试:
桩&驱动举例:
无论是单元测试还是集成测试都涉及到以下三个函数:
主控函数:
intctrl(intx,inty)
加法函数:
intadd(intx,inty)
减法函数:
intsub(intx,inty)
注意:
进行单元测试时,设计用例时依据的是LLD;进行集成测试时,设计测试用例依据的是HLD。
下面给出来的是需要测试的实际的代码。
intctrl(intx,inty)
{
inttemp=0;
if(x>=y)
temp=add(x,y);
else
temp=sub(x,y);
returntemp;
}
intadd(intx,inty)
{
return(x+y);
}
intsub(intx,inty)
{
return(x-y);
}
✧自顶向下单元测试策略
不同测试步骤中的驱动可以写到一起,也可以分开写,这里是写到一起了。
✓测试ctrl函数
需要写一个驱动和两个桩。
Ø驱动函数
voiddriver()
{
intret=0;
ret=ctrl(2,1);//x>y
if(ret==3)
printf(“testcaseJISUAN_UT_CTRL_001pass”);
else
printf(“testcaseJISUAN_UT_CTRL_001fail”);
ret=ctrl(1,1);//x=y
if(ret==2)
printf(“testcaseJISUAN_UT_CTRL_002pass”);
else
printf(“testcaseJISUAN_UT_CTRL_002fail”);
ret=ctrl(1,2);//x if(ret==-1) printf(“testcaseJISUAN_UT_CTRL_003pass”); else printf(“testcaseJISUAN_UT_CTRL_003fail”); } Ø桩函数 intstub_add(intx,inty) { if(x==2&&y==1) return3; if(x==1&&y==1) return2; return999999; } intstub_sub(intx,inty) { if(x==1&&y==2) return-1; return999999; } Ø修改代码 为了让桩能体现在测试过程中,需要修改ctrl函数: intctrl(intx,inty) { inttemp=0; if(x>=y) temp=stub_add(x,y); else temp=stub_sub(x,y); returntemp; } ✓测试add函数 Ø驱动函数 同测试ctrl函数时的驱动 Ø桩函数 同测试ctrl函数时sub函数对应的桩 Ø修改代码 intctrl(intx,inty) {inttemp=0; if(x>=y) { temp=add(x,y); if(x==2&&y==1&&temp==3) printf(“testcaseJISUAN_UT_ADD_001pass”); else printf(“testcaseJISUAN_UT_ADD_001fail”); if(x==1&&y==1&&temp==2) printf(“testcaseJISUAN_UT_ADD_002pass”); else printf(“testcaseJISUAN_UT_ADD_002fail”); } else temp=stub_sub(x,y); returntemp; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超级 软件 测试 汇总