转自:http://www.scriptlover.com/post/664
1.软件测试:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
2.测试和调试的区别:
测试的目的是找出存在的错误,而调试的目的是定位错误并修改程序以修正错误。
调试是测试之后的活动,测试和调试在目标,方法和思路上都有所不同。
测试是从一个已知的条件开始,使用预先定义的过程,有预知的结果,调试从一个未知的条件开始,结束的过程不可预计。
测试过程可以实现设计,进度可实现确定;调试不能描述过程或持续时间。
3.软件研发的相关要素:人员,工具和过程。
4.软件研发的四个重要过程:配置管理,需求管理,缺陷管理和同行评审。
5.软件研发中常见的引入缺陷的原因:
开发过程缺乏有效的沟通,或者没有进行沟通
软件复杂度越来越高
编程中产生错误
需求不断变更
项目进度的压力
不重视开发文档
软件开发工具本身隐藏的问题
6.缺陷的类型:遗漏,错误,额外的实现。
7.软件质量的定义:一个实体的所有特性,基于这些特性可以满足明显的或者隐含的需求,而质量就是实体基于这些特性满足需求的程度。
8.软件质量的三个层次:符合需求规格,符合用户显示需求,符合用户实际需求。
9.影响软件质量的因素:技术,组织,流程。
10.软件质量的管理体系:ISO9000,CMM,六西格玛。
11.CMM的五个等级:初始级,可重复级,已定义级,已管理级,优化级。
12.CMM的五个等级中的关键过程域:
初始级:无
可重复级:需求管理,软件配置管理,软件质量保证。
已定义级:同行评审。
已管理级:定量的过程管理,软件质量管理。
优化级:缺陷预防。
13.ISO9001与CMM的关系
最大的相似点:强调管理,过程,规范化和文档化
不同点:CMM把焦点严格对准软件
ISO9001的范围包括:硬件,软件,流程性材料和服务。
两者之间的联系:CMM2级与ISO9001强相关。
CMM的每个关键过程域至少按某种解释与ISO9001弱相关。
14.六西格玛的实施方式:DMAIC
定义:define,测量:measure,分析:analyse,改进:improve,控制:control
15.软件的质量模型:
质量模型:一组特性与特性之间的关系,它提供规定质量需求和评价质量的基础。包括六大特性,27个子特性
六大特性包括:功能性,可靠性,易用性,维护性,效率,可移植性。
16.软件质量活动:
软件组织主要软件质量活动:软件质量保证(SQA)和测试。
17.SQA和测试的关系:
软件质量由组织,流程和技术三个方面决定。
SQA从流程方面保证软件的质量
测试从技术方面保证软件的质量。
只要进行SQA活动或只进行测试活动不一定能产生好的软件质量。
18.SQA的主要工作范围:
指导并监督项目按照过程实施。
对项目进行度量,分析,增加项目的可视性。
审核工作产品,评价工作产品和过程质量目标的符合度。
进行缺陷分析,缺陷预防活动,发现过程的缺陷,提供决策参考,促见过程改进。
19.质量管理PDCA循环:
P:plan,计划设计
D:do,实施执行。
C:check,检查检测
A:act,纠正措施,改进。
20.软件度量的作用:理解,预测,评估,改进。
21.软件度量的分类:四个基本度量项:规模,工作量,进度,质量-缺陷。
22.黑盒测试,白盒测试和灰盒测试的区别:
定义:
黑盒测试:黑盒测试又称功能测试、数据驱动测试或者基于规格说明的测试,被测试程序当作黑盒处理,只考虑其整体特性,不考虑其内部具体实现。比如系统测试一般采用黑盒测试方法,并参考SRS。
白盒测试:根据被测试程序的内部结构设计测试用例的一类测试,有人也称它为透明盒或者玻璃盒测试,涉及到软件设计的细节。比如单元测试一般采用白盒测试方法,并参考LLD。
区别:
测试依据:
黑盒测试:根据用户能看到的规格说明,即针对命令、信息、报表等用户界面以及体现它们的输入数据与输出数据之间的对应关系,特别是针对功能进行测试。
白盒测试:根据程序的内部结构,比如语句的控制结构、模块间的控制结构以及内部数据结构等进行测试。
特点:
黑盒测试:
优点:能站在用户立场上进行测试。
对于更大的代码单元来说比白盒测试效率更高;
有助于暴露任何规格不一致或有歧义的问题;
测试人员不需要了解实现的细节,包括特定的编程语言。
缺点:不能测试程序内部特定部位;
如果规格说明有误,则无法发现;
白盒测试:
优点:能够对程序内部的特定部位进行覆盖测试。
对代码的测试比较彻底;
最优化;揭示隐藏在代码中的错误;
缺点:无法检验程序的外部特征;
无法对未实现规格说明的程序内部欠缺部分进行测试(无法检测代码中遗漏的路径和数据敏感性错误);
昂贵;
方法举例:
黑盒测试:等价类划分、边界值分析、因果图/判定表、错误推测、(功能覆盖率)、
白盒测试:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、路径覆盖、面对对象的覆盖(继承上下文覆盖、基于状态的上下文覆盖、已定义的上下文覆盖等)、另外还有一些静态分析方法。
23.单元,集成,系统测试的比较:
测试方法不同:
单元测试属于白盒测试范畴,集成测试属于灰盒测试范畴,
系统测试属于黑盒测试范畴。
考察范围不同:
单元测试主要测试单元内部的数据结构,逻辑控制,异常处理等。
集成测试主要测试模块之间的接口盒接口数据传递关系,以及模块组合后的整体功能。
系统测试主要测试整个系统相对于需求的符合度。
评估基准不同
单元测试的评估基准主要是逻辑覆盖率。
集成测试的评估基准主要是接口覆盖率。
系统测试的评估基准主要是测试用例对需求规格的覆盖率。
24.回归测试册策略:
完全重复策略,选择性重复策略(其中包括覆盖修改法,周边影响法,指标达成法)
25.测试V模型:
V模型实现了测试设计和测试执行相分离
V模型揭示了软件测试活动分层和分阶段的本质特性,测试执行的顺序与开发活动相反。
26.单元测试:
定义:对软件基本组成单元进行的测试。
目的:发现各模块内部可能存在的各种错误,验证代码是与设计相符合的,
发现设计和需求中存在的错误,发现在编码中引入的错误。
关注的重点:单元接口,局部数据结构,边界条件,独立路径,出错处理。
单元测试策略:孤立策略,自顶向下策略,自底向上策略。
单元测试的结束标准:以覆盖率为标准,以遗留缺陷为标准。
27.集成测试:
定义:在单元测试的基础上,将所有的函数按照概要设计要求组装成为子系统或系统所进行的测试。
目的:确保各组件组合在一起后能够按照既定意图协作运行,并确保增量的行为正确,
验证接口是与设计相符合的,发现设计和需求中存在的错误。
关注的重点:单元间的接口和集成后的功能。
集成测试的层次:模块内集成测试,子系统内集成测试,子系统间集成测试。
集成测试的策略:大爆炸集成,自顶向下,自底向上,三明治,基干集成,分层集成,基于功能的集成,基于消息,基于进度,基于风险。
28.系统测试:
定义:是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机
硬件,外设,某些支持软件,数据和人员等其他元素结合在一起,在实际运行的
环境下,对计算机系统进行一系列的测试活动。
目的:通过与系统的需求定义做比较,发现软件与系统定义不符合或与之矛盾的地方。
对象:是软硬件集合在一起的系统,不应是独立的软件与硬件环境。
系统测试类型:功能测试,性能测试,压力测试,容量测试,安全性测试,GUI测试,
可用性测试,安装测试,配置测试,异常测试,备份测试,健壮性测试,
文档测试,在线帮助测试,网络测试,稳定性测试。