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):对每个模块要完成的工作进行具体的描述。
12、软件项目组人员组成:分析人员、设计人员、开发人员、测试人员、配置管理人员、SQA(质量保证人员);
13、软件研发流程类型:瀑布模型、螺旋模型、RVPRUP流程、IPD流程。
14、软件研发中几个重要的过程:需求管理;配置管理;缺陷管理;同行评审。
15、常见的引入缺陷的原因:a.开发过程缺乏有效的沟通,或者没有进行沟通;
b.软件复杂度越来越高;
c.编程中产生错误;
d.需求不断变更;
e.项目进度的压力;
f.不重视开发文档;
g.软件开发工具本身隐藏的问题。等等……
软件质量
软件质量管理体系:
ISO9000(2000版)CMM六西格玛
ISO9000ISO9004
ISO9000:2000版标准
ISO9000:制定管理理念和原则
ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一进补充。(梳心)
ISO9004:是组织进行持续改进的指南标准。
八项质量管理原则:
一.以顾客为中心:组织依存于其顾客,因此,组织应理解顾客当前的和未来的需求,
满足顾客要求并争取赶超顾客期望。
二.领导作用:领导者将本组织的宗旨.方向和内部环境编统一起来,并创造使员工能
够充参与实现组织目标的环境。
三.全员参与:各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组
织带来最大的收益。
果。
五.管理系统方法:针对设定的目标,识别.理解并管理一个由相互关联的过程的过程
所组成的体系,有助于提高组织的有效性和效率。
六.持续改进:持续改进是组织的一个永恒的目标。
七.基于事实的决策方法:对数据和信息的逻辑分析或直觉判断是有效决策的基础。
八.互利的供方关系:通过互利的关系,增强组织及其供方创造价值的能力。
1、软件质量的定义:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。而质量就是实体基于这些特性满足需求的程度。
2、软件质量的三个层次:a.符合需求规格;b.符合用户显示需求;
c.符合用户实际需求。
3、影响软件质量的因素:流程、技术、组织。
流程:一组活动(活动是否都是必须的;活动角色之间的关系)
4、八项质量管理原则的意义:a.是质量管理的理论基础;
b.用高度概括易于理解的语言所表述的质量管理的最基本,最通用的一般性规律;
c.为组织建立质量管理体系提供了理论依据;
d.是组织的领导者有效的实施质量管理工作必须遵循的原则。
5、CMM软件质量成熟度模型
CMM(capabilltyMaturityMoelel)
由于美国软件工程研究所(SEI)受美国国防部委托立项。
开发人:WattsHumphrey.
1991年推出CMM1.0版,1993年提出CMM1.1版
现在开发CMMI(CMMIntegration)
软件能力成熟度模型CMM(提唱过程决定质量)
持续改进过程
可预测的过程管理变更
标准.一致的过程产品过程质量
纪律的过程集成工程过程
项目管理
CMM1级
特点:(个人英雄主义)
A项目的成功依赖于一个非常优秀的项目经理的团队。
B无法重复以往成功的实践。
C缺乏基本配置管理
可视度:
整个过程不可预测,不可见,不可控。(过程管理非常混乱)
CMM2级
特点:(有纪律)
能够重复以前成功的经验和实践。
引入合理需求变更(需求管理)
测试与开发分离,整个过程能力可概为有纪律的。
可视度
原始需求——需求分析——设计——编码——测试——产品
CMM3级
特点:(有过程,经过同行评审)
组织中有一个专门负责组织的标准软件过程。(SEPG)
同CMM2但整个过程是标准和一致的。
CMM4级特点
特点:(量化管理)
过程能力是可预防的,因为过程是已测量的并在可测的范围内运行。组织能定量地预测过程和产品质量方面趋势。软件产品具有可预测的高质量。
同CMM3但整个过程是可预测的。
CMM5级特点
特点:(改进过程本身)
通过缺陷来发现过程的不足。
新的开发技术触使改进过程。
同CMM¥级整个是以改进的。
CMM1:初始级,Inltial,不可预测并且缺乏控制;
CMM2:可重复级:Repeatable,可重复以前的主要经验;
(关键过程区域:需求管理;软件项目计划;软件项目跟踪和监督;软件子合同管理;软件质量保证;软件配置管理。)
CMM3:已定义级:Defined,过程被描述,并得到良好理解;
(关键过程区域:组织过程定义;组织过程焦点;培训大纲;集成软件管理;软件产品工程;组际协调;同行评审。)
CMM4:已管理级:Managed,过程被测量并受控;
(关键过程区域:定量的过程管理;软件质量管理。)
(关键过程区域:缺陷预防;技术变更管理;过程变更管理。)
7、CMM的用途:a.评估组用来识别组织中的强处和弱处;
b.评价组用来识别选择不同的业务承包商的风险和监督合同;
c.管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需进行的活动;
d.技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程。
8、ISO9001和CMM的关系:
相似点:强调管理、过程、规范化和文档化;
不同点:CMM把焦点对准软件;ISO9001的范围包括:硬件、软件、流程性材料和服务;
六西格玛管理法(强调组织能力)
本质:全面质量管理,而不仅仅是质量提高手段
六西格玛实施方式:
DMAIC过程
推行控制系统
优化解决方案
研究资料,确定原因
收集资料,寻找原因
提出问题,确定目标
9、软件质量模型:
功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。包括:适合性;准确性;互操作性;保密安全性;功能性的依从性。
可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。包括:成熟性;容错性;易恢复性;可靠性的依从性。
易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。包括:易理解性;易学性;易操作性;吸引性;易用性的依从性。
维护性:软件产品可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。包括:易分析性;易改变性;稳定性;易测试性;维护性的依从性。
可移植性:软件产品从一种环境迁移到另外一种环境的能力。包括:适应性;易安装性;共存性;易替换性;可移植性的依从性。
10、软件质量活动:软件质量保证(SQA)和测试;SQA从流程方面保证软件的质量、测试从技术方面保证软件的质量、只进行SQA或者只进行测试活动不一定能产生好的软件质量。
11、SQA的主要工作范围:·指导并监督项目按照过程实施;
·对项目进行度量、分析,增加项目的可视性;
·审核工作产品,评价工作产品和过程质量目标的复合度;
·进行缺陷分析,缺陷预防活动,发现过程的缺陷,提供决策参考,促进过程改进。
12、度量:对事物属性的量化表示;
软件度量:是指计算机软件中范围广泛的测度,包括对软件系统、构建或生命周期过程具有的某个给定属性的度的一个定量测量。
目的:·提高软件生产率,缩短产品研发周期,降低研发成本、维护成本;
·提高软件产品质量,提高用户满意度;
·为组织持续改进提供量化的指标和反馈。
13、软件度量的作用:理解;预测;评估;改进。
分类:规模;工作量;进度;质量
如何将度量的知识应用于实际工作中:建立测试工作的度量数据,目的是作为预测和改进的基础(a.熟悉需求:进度、工作量、规模;b.设计用例:工作效率、覆盖率;c.执行用例:工作效率、缺陷密度;)
测试方法
1、什么是白盒测试:
·白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体共能实现情况;
·白盒测试是基于程序结构的逻辑驱动测试;
·白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。
2、为什么进行白盒测试:
·一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问难题能基本得到消除;
·能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证;
·发现问题后解决问题的成本较低。
3、白盒测试的常用技术:
·静态分析:控制流分析、数据流分析、信息流分析等;
·动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。
5、*控制流分析能发现的问题:转向并不存在的标号;没有用的语句标号;从程序
入口进入后无法达到的语句;不能达到停机语句的
语句。
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、单元测试的目的:
在于发现各模块内部可能存在的各种错误主要是基于白盒测试。
·验证代码是与设计相符合的;·发现设计和需求中存在的错误;
·发现在编码过程中引入的错误。(和设计不相符/和设计相符,但是由于
编码疏漏引起)
2、孤立的测试策略:
·方法:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和
驱动模块。每个模块进行独立的单元测试。
·优点:该方法是最简单,最容易操作的。可以达到高的结构覆盖率。该方法是纯粹的单元测试。
·缺点:桩函数和驱动函数工作量很大,效率低。
3、自顶向下的单元测试策略:
·方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其
次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类
推直到测试完所有模块。
·优点:可以节省驱动函数的开发工作量,测试效率较高。
·缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且
开发和维护的成本将增加。
4、自底向上的单元测试策略:
·方法:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模
块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被
测试过的模块做桩模块。以此类推,直到测试完所有模块。
·优点:可以节省桩函数的开发工作量,测试效率较高。
·缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产
生很大的影响。
5、单元测试的四个阶段:·测试计划:完成单元测试计划;
·测试设计:完成单元测试方案;
·测试实现:完成单元测试用例、单元测试规程、单元测试脚本及数据文件;
·测试执行:执行单元测试用例,修改发现的问题并进行回归测试,提交单元测试报告。
2单元测试:桩&驱动举例:
无论是单元测试还是集成测试都涉及到以下三个函数:
主控函数: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);
2自顶向下单元测试策略
不同测试步骤中的驱动可以写到一起,也可以分开写,这里是写到一起了。
ü测试ctrl函数
需要写一个驱动和两个桩。
驱动函数
voiddriver()
intret=0;
ret=ctrl(2,1);//x>y
if(ret==3)
printf(“testcaseJISUAN_UT_CTRL_001pass”);
printf(“testcaseJISUAN_UT_CTRL_001fail”);
ret=ctrl(1,1);//x=y
if(ret==2)
printf(“testcaseJISUAN_UT_CTRL_002pass”);
printf(“testcaseJISUAN_UT_CTRL_002fail”);
ret=ctrl(1,2);//x if(ret==-1) printf(“testcaseJISUAN_UT_CTRL_003pass”); 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; 修改代码 为了让桩能体现在测试过程中,需要修改ctrl函数: temp=stub_add(x,y); temp=stub_sub(x,y); ü测试add函数 同测试ctrl函数时的驱动 同测试ctrl函数时sub函数对应的桩 {inttemp=0; if(x==2&&y==1&&temp==3) printf(“testcaseJISUAN_UT_ADD_001pass”); printf(“testcaseJISUAN_UT_ADD_001fail”); if(x==1&&y==1&&temp==2) printf(“testcaseJISUAN_UT_ADD_002pass”); printf(“testcaseJISUAN_UT_ADD_002fail”); ü测试sub函数 无 {temp=sub(x,y); if(x==1&&y==2&&temp==-1) printf(“testcaseJISUAN_UT_SUB_001pass”); printf(“testcaseJISUAN_UT_SUB_001fail”); returntemp;} 集成测试 一.What:什么是集成测试 集成测试(IntegrationTesting)集成测试也叫组装测试、联合测试、部件测试、子系统测试 集成测试测什么 1.外部接口:各件呐在一起后表现的功能 2.内部接口:各件间的接口是否正确 集成苏的目的 验证软件的组建对概要设计说明书的符合度 集成测试的评估基准: 接口覆盖率 A.接口被测试到的百分比 B.接口的等价类、边界值的覆盖率 二.Why:为什么要做集成测试 一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。 程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。 反分解性公理:为一个被测模块获得的覆盖并不能覆盖他所调用的模块。 反组合性公理:对于一个模块中的对各子模块分别合适的测试包并不一定对作为一个整体的模块合适 三.Who:谁做集成测试 开发人员做 A优势:一般来说,编程能力稍强 B劣势:Protect(就像变形金刚的汽车人),心理上不愿意否定自己的劳动成果,职责是保护程序 测试人员做 A优势:Destroy(就像变形金刚的霸天虎),心理上追求完美,职责是挑刺、破坏程序 B劣势:目前的现状,大部分tester编程能力不够 四.When:什么时候做集成测试 4.1集成测试所处的测试过程 集成测试所处的测试过程 A.测试准备活动在开发活动时可以并行开展,如开始做HLD设计时就可以开始做ITP了 B.测试执行活动在单元测试的基础上进行 五.Where:对什么部分做集成测试 子系统间集成(系统内集成) 模块间集成(子系统内集成) 函数间集成(模块内集成) 六.How:怎么做集成测试 6.1测试过程的制定 6.1.1计划 根据SVVP制定ITP 6.1.2设计 根据ITP制定IT方案 6.1.3实现 根据IT方案制定IT用例 6.1.4执行 根据IT用例进行集成测试,提交BugReport,……,回归测试 6.2采用的测试方法 6.2.1灰盒测试 随集成层次不同,灰度随之相应变化 6.3制定集成测试策略TestStrategy 6.3.1根据被测对象(层次)选择合适的策略 1>大爆炸集成BigBang 优点 方法简单、效率高 缺点 "急于求成",成功率不高 "大海捞针",导致即使发现问题也难以定位(无法故障隔离) "囫囵吞枣",许多内部接口的错误被漏测 适用范围 小项目、维护型项目 软件结构不清晰的系统 2>自顶向下集成Top-Down 子策略 深度优先(Depth-First) 广度优先(Broadth-First) A.主控模块(高层组件)得到较早验证 B.深度优先策略能够较早验证一个完整的功能,增强了开发信心 C.基本不需要开发驱动,减少了这部分的工作量 D.和高层设计顺序一致,方便并行开展 E.定位问题容易,支持故障隔离 A.需要开发大量的桩,工作量、成本太大 B.底层变更可能导致测试推倒重来 C.底层组件的验证较晚,测试不充分 A.软件结构清晰的系统 B.高层接口变化小,底层接口变化大 C.主控模块风险大,需尽早验证 D.希望尽早看到系统一部分功能 3>自底向上集成Bottom-Up A.底层组件得到较早验证 B.测试初期可以并行集成,效率高 C.由于驱动模块是额外编写的,对被测模块的可测试性要求较低 D.减少了开发桩的工作量 A.需要开发大量的驱动,工作量、成本同样很高 B.对高层的验证太晚了,设计上的缺陷不能被及早发现 C.集成到顶层后,对于底层异常将难以覆盖。而使用桩将简单得多 B.底层接口稳定、或先被开发出来 C.高层接口变化较频繁 4>三明治集成(分而治之策略)又分为传统型和改进型Sandwich 融合了自顶向下和自底向上两种策略的优点 中间层测试要么不充分,要么测的充分但开发驱动和桩的工作量大 软件结构清晰的系统基本都适合采用 5>基干集成(内核耦合度高)Backbone 结构与策略:内核(大爆炸)-应用子系统(自底向上)-控制子系统(自顶向下) 具有三明治集成的优点 A.对系统结构的分析存在一定难度 B.由于被测系统复杂,驱动和桩的开发工作量较大 C.局部采用了大爆炸策略,存在大爆炸所有的缺点 嵌入式系统 6>分层集成(线性关系)Layers 集成方式 A.层内集成 策略非常灵活,可以是各种其他策略 优缺点根据策略而变 B.层间集成 策略和优缺点同"层内集成" 使用范围 有明显线性层次关系的系统 7>基于功能集成Function-Based A.可以尽早验证关键组件的功能 B.可能同时加入多个模块,与大爆炸类似,效率较高 C.和自顶向下一样,驱动模块的开发工作量不多 A.兼具大爆炸和自顶向下的缺点,比如对有些接口测试不充分,可能导致漏测 B.可能会有较多的冗余测试 对功能的实现没把握的产品 8>持续集成(高频集成、每日集成)Continuous/High-frequency A.错误能被较早发现,且容易定位 B.开发和集成可以并行,效率高 测试针对性不强,不容易发现有价值的问题 迭代开发、增量开发的产品 9>基于进度集成Schedule-Based 并行度高,能缩短项目进度 组件间缺乏整体性,无法有效集成 开发驱动和桩的工作量难以估计 由于进度原因,集成效果不好 进度很紧的项目 10>基于风险集成Risk-Based 风险大的模块得到较早验证,有助于系统的快速稳定 风险分析偏差导致集成重点的偏离 有些组件有较大的风险,需及早验证以增强信心 11>基于消息(事件)集成Message-Based/Event-Based 优缺点与"基于功能集成"类似,适用面向对象系统 12>基于使用集成Use-Based 优缺点与"自底向上"类似,适用面向对象系统 13>基于C/S、B/S的集成 适用C/S、B/S结构的系统 14>分布式集成DistributedServices 适用分布式系统 系统测试 定义 SystemTesting--是将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行使用的环境下,对计算机系统进行系列的测试活动; 对象 1.产品级--软件+硬件 2.项目级--软件(也可能包含硬件) 完备性 如何保证系统测试的完备性? 1.尽可能所有需求都有对应的TestCase; 2.依据软件的质量特性,以不同的角度,测试需求; 3.依据不同的TestCase、方法,构造不同的测试数据及处理过程; 常用测试方法 1.1功能测试(功能) 定义: functionTesting--依据SRS和测试需求列表验证产品的功能是否实现和是否符合产品需求规格 目标: 1.是否有不正确或遗漏了的功能? 2.功能是实现是否满足用户需求,和系统设计的隐式需求? 3.输入能否正确接受?能否正确输出结果? 1.2性能测试(效率) PerformanceTesting--测试该软件在集成系统中的运行性能。(大多使用工具测试) 度量系统相对与预定义目标的差距。 实施: 1.性能指标定义明确。 2.构造性能测试研究数据。 3.构造不同的性能测试场景。 4.执行性能测试(一般>90%就通过)。 5.性能分析。 6.性能故障定位。 7.性能优化。 依据 1.资源占用性。 区别: 1.压力测试--不强调施压量,只检查施压的状况。 2.容量测试--强调施压,施了多少压。 1.2.1资源方面(资源占用情况) CPU使用情况。 IO使用情况。 内存使用情况。 信道使用事情。 一个模块等待IO完成的百分比。 每一组指令页换入和换出的次数。 系统吞吐量,即每个单元的处理数量。 1.3压力测试/极限测试(可靠性) StressTesting--系统在其资源超符合的情况下表现。 在极限或者恶劣的环境下,系统的自我保护能力。主要验证系统的可靠性。 2.引入大量的操作。 目的: 1.是否存在内存泄露。 2.验证系统可靠性。 3.测试后给予用户一个明确的界定。 1.4容量测试 volumeTesting--使系统能够承受超额的数据容量来发现它是否能够正确处理。 1.测试系统容量是否满足需求规定系统容量。 2.若无规定系统容量可以通过此测试给出明确容量界定。 1.构造一批大容量的测试数据输入到系统。 2.对系统整体构造不同业务场景,反复执行。 1.5安全性测试(功能) SecurityTesting--验证集成在系统内的保护机制能否在实际应用中保护系统不受到非法的侵入。 保证系统安全性,数据的完整性、保密性。 1.5.1数据 完整性 数据存储的完整性。 数据保密的完整性。 保密性 数据存储的保密性。 数据访问的保密性。 1.5.2权限 权限的分配 权限的使用 1.5.3协议 多在手机测试用到。 1.5.4其他 如LOG.. 1.6GUI测试(易用) GraphicalUserInterfaceTesting--针对软件系统的界面进行的测试。 1.界面实现与界面设计的吻合情况。(界面设计) 2.确认界面处理的正确性。(针对不同的控件分析) 1.WinRunner 2.SilkTest 3.QaRun 1.6.1简单界面元素 指功能和属性相对比较单一的界面区域,即通常所指的各种控件。 方法: 1.6.2组合类界面元素 一些复杂的界面元素,比如表格、各种文本编辑器等。 先将其分解为简单的界面元素,然后再进行处理。 1.6.3完整界面(窗口) 由一系列界面元素通过适当的形式组合而成的界面形式,最为常见的为各种窗口。包括各种对话框、单文档窗口、多文档窗口,多文档子窗口等。 外观、布局、行为。 1.输入类界面元素:与要考虑其外观、输入时的特性比如回显、对齐原则、滚动原则等内容。 2.输出类界面元素:外观。 1.7可用性测试(易用) UsabilityTesting--为检测用户在理解和使用系统方面到底有多好。 1.考虑产品是否符合实际应用情况。 2.是否符合用户习惯或特殊要求。 3.操作方式是否方便合理、设备和用户见交互信息是否准确易于理解、是否遵从行业习惯、外观/界面是否美观等。 1.过分复杂的功能或指令。 2.困难的安装过程。 3.错误信息过于简单。 4.用户被迫去记太多信息。 5.语法、格式和定义不一致。 1.8安装测试 根据软件测试特性列表、软件安装、配置文档,设计安装过程的测试用例,发现软件在安装过程中的错误。 被测对象: 1.软件本身。 2.软件安装文档。 1.8.1安装测试前要检查的工作 1.安装文档是否齐全。 2.安装软件的程序文件是否齐全。 3.被测软件的安装文件是否齐全。 4.软件的安装说明文档是否齐全。 5.检查软件的文件格式是否与安装说明文档中要求的文件格式相符。 1.8.2安装测试过程中的工作 1.所有的预置数据是齐全。 2.软件环境配置是否合理。 3.硬件环境配置是否合理。 4.用户选择的一套任选方案是相容。| 5.安装过程中: A.系统提供的缺省参数值进行安装测试。 B.指定由人工完成安装过程,列出每一步安装步骤所需的工作,并仔细检查每一安装步骤所完成工作的正确性。 C.安装测试过程中要设计异常的安装测试用例,包括配置参数的异常、安装选项和安装路径的异常。 6.安装文档的测试。 1.8.3安装后要做的检查工作 1.所有文件是否都已产生并确有所需的内容。 A.程序文件的目录是否正确产生。 B.各目录及子目录下的程序文件是否都正确产生。 C.是否存在无用的目录、子目录、程序文件以及无用的子目录。 D.目录、子目录、以及程序文件本身的权限是否正确。 E.对于Windows还要检查与应用软件相配套的动态链接库文件齐全。 2.安装日志的检查。 3.安装完成后,要进行程序的运行,联结验证。 4.软件的卸载测试。 1.8.4安装测试中软件的升级测试 1.软件通过重新安装来达到升级的目的。 2.通过Patch的方式实现软件的升级。 3.在线升级。 1.9配置测试 系统在各种软硬件配置、不同参数配置下系统具有的功能和性能。 验证全部配置的可操作性,有效性。 1.10异常测试/恢复性测试(可靠) 容错性测试。通过人工干预手段产生异常,能检验系统的容错、恢复能力,是系统可靠性评价的重要手段。 异常处理 1.系统自动处理。 2.人工干预处理。 注意 1.系统的异常还与系统的指标测试有关,当系统的服务能力大于系统的设计指标时,也属于系统的异常情况。 2.系统的可靠性是设计出来的,而不是测试出来的。测试出的数据有助于为我们进一步的系统优化设计积累经验,设计和测试是一个相互反馈的过程。 1.11备份测试(可靠) 恢复性测试的一个补充,验证软件或硬件失败中备份他数据的能力。 1.12健壮性测试(可靠) RobustnessTesting用于测试系统在故障时,是否能够自动恢复或者忽略故障继续运行。 1.13文档测试 DocumentationTesting测试文档的正确性,保证操作手册的过程能够正常工作。 1.14在线帮助测试 OnlineHelpTesting检测时实在线帮助的可靠性和正确性。 1.15网络测试 网络环境下和其他设备对接,进行系统功能、性能与指标方面的测试,保证对接的正确性。 1.16稳定性测试 2系统测试测试过程 2.1计划阶段 入口准则:SRS完成并确定需求规格基线 输入:SRS|SDP|SVVP 出口准则:ST计划评审通过 输出: 2.2设计阶段 主要活动有:组织人员依据测试计划编写测试方案,并进行系统方案的评审 入口准则:ST计划评审通过 输入:ST计划|SRS 出口准则:ST方案评审通过 输出:ST方案 2.3实现阶段 主要活动有:组织人员依据ST方案编写测试用例、测试规程及预测试项,并对其进行评审 入口准则:ST方案评审通过 输入:ST计划|SRS|ST方案 出口准则:测试用例、测试规程及预测试项评审通过 输出:测试用例、测试规程及预测试项 2.4执行阶段 主要活动有:组织测试执行活动、负责缺陷报告返回给开发部门修改、组织进行测试报告的编写、组织进行测试报告的评审 入口准则:测试用例、测试规程及预测试项的评审通过 输入:ST计划|ST方案|ST用例|ST规程|ST预测试项 出口准则:ST报告评审并通过 输出:ST预测试报告|ST测试报告|缺陷报告 测试覆盖率 1、覆盖率概念: ·覆盖率是用来度量测试完整性的一个手段。覆盖率是测试技术有效性的一个度量。覆盖率=(至少被执行一次的item数)/item的总数; ·覆盖率大体可以划分为两大类:逻辑覆盖和功能覆盖; ·测试用例设计不能一味追求覆盖率,因为测试成本虽覆盖率的增加而增加。 2、逻辑覆盖主要类型:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、路径 覆盖。 3、语句覆盖率:(StatementCoverage),在测试时运行被测程序后,程序中被执 行到的可执行语句的比率;语句覆盖率= (至少被执行一次的语句数量)/(可执行的语句总数) 4、分支覆盖率:(BranchCoverage)也叫判定覆盖(DecisionCoverage),它的含 义是:在测试时运行被测程序后,程序中所有判断语句的取真分 支和取假分支被执行到的比率; 判定覆盖率=(判定结果被评价的次数)/(判定结果的总数) 5、条件覆盖率:(ConditionCoverage)的含义是,在测试时运行被测程序后,所 有判断语句中每个条件的可能取值(真值和假值)出现过的比率; 条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数) 6、分支-条件覆盖率:(BranchConditionCoverage)也叫判定条件覆盖(Decision ConditionCoverage),它的含义是,在测试时运行被测程序 后,所有判断语句中每个条件的所有可能值(为真为假) 和每个判断本身的判定结果(为真为假)出现的比率; 分支条件覆盖率=(条件操作树枝或判定结果至少被评价一 次的数量)/(条件操作数值总数+判定结果总数) 7、路径覆盖率:(PathCoverage)的含义是,在测试时运行被测程序后,程序中 所有可能的路径被执行过的比率; 路径覆盖率=(至少被执行到一次的路径数)/(总的路径数) 8、其他覆盖率:功能覆盖率;面向对象的覆盖率;函数覆盖;指令块覆盖;判定 路径覆盖。 测试用例举例 测试用例编号 BOSS_ST_MARKETING_NEW_01P 重要级别 高(还有“较高、中、较低、低”几个等级) 测试项目 新增营销记录 测试标题 新增10元的营销记录 用例类型 基本事件(对应还有“备选事件”、“异常事件”) 用例设计者 songfun 设计日期 2005-04-25 对应需求编号 REQ_MARKETING_NEW_01 对应UI Marketing.htm 对应UC UC_MARKETING_NEW_01 版本号 Buildv0.1 对应开发人员 Frank 预置条件 等价类划分(对应还有“错误猜测法”、“边界值分析”等) 输入 用户名:51testing性别:男金额:10元描述:aaaaaaa 操作步骤 ①.进入【营销下发】页面; ②.点击『增加』按钮; ③.输入相应数据; ④.点击『确定』按钮; ⑤.在后台数据库(test/test@testDB)输入查询语句验证:select*fromMarketingTabwhereID='1001' 预期输出 ㈠.执行步骤④后,页面弹出添加成功提示信息框; ㈡.执行步骤⑤后查询数据库,记录确实添加成功且数据无误 同行评审 1、同行评审:(PeerReview)是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排了进度。 ·越早越好 3、同行评审的作用:·早期发现缺陷;·去除缺陷;·降低成本;·提高质量。 4、同行评审的类型:·正规检视:(Inspection)最严格,要求有规范的流程,参 加者经过正式培训; ·技术评审:(TechniqueReview)以技术方案的比较、裁决 为目的,严格程度介于正规检视和走读之间; ·走读:(WalkThrough)最(自由)松散的形式,无流程要求,有评审团队,评审流程无要求。 5、通用评审流程步骤(正规检视流程): 6、计划阶段: ·项目负责人指定组织者;·作者自检工作产品;·组织者规划本次评审; ·检查入口准则:是否符合文档标准?是否已用工具检查?代码<=500行; 文档<=40页;…… ·准备评审包:工作产品(HLD);参考资料(SRS-检查一致性);评审表(ReviewForm);查检表(Checklist)。 ·指定评审专家(3-6人); 7、介绍会议: ·评审专家第一次参加评审à(评审者介绍评审流程) 8、准备阶段:(最重要、发现缺陷最多) ·评审专家个人独立完成工作产品的审视,提出缺陷; ·评审者:收到组织者发来的评审包;审核工作产品、发现缺陷;填写评审表单;反馈评审表单给组织者; ·组织者召开评审会议; ·讲解员讲解工作产品;(尽量不要由作者兼任) ·大家共同确认问题(评审表单中记录的问题;会上发现的问题;当争执不下时组织者应做出裁决) ·对已确认的问题进行分类; ·作者决定是否召开第三小时会议; ·记录员记录所有的问题及分类,并发给组织者;(记录员尽量不要由作者和组织者担任) ·组织者更新评审表单。 10、第三小时会议 ·有争议的问题继续讨论,给出决议; ·讨论解决问题方案; 11、返工:发回作者修改; 12、跟踪: ·组织评审专家确认各缺陷得到了修改,并且没有引入新的缺陷; 配置&需求管理 1、配置管理的目的和意义: 目的:a.可视性:用户/买方/卖方详细知道工作内容; b.管理层能够知道产品特性; c.所有的项目参与者在同一平台下交流; d.了解现在和计划的配置; e.管理层可看到变更的影响; f.管理层可选择参与的节点; 目标:项目:减少返工,减少工作量; 意义:公司:节约成本,积累项目财富; 可视性提高; 项目可跟踪性高; 2、配置、基线、版本各自定义及关系: 配置:是软件生命周期个阶段产生的程序、数据、文件、环境的集合; 配置项:是软件生命周期个阶段产生的程序、数据、文件、环境 版本:是表示一个配置项具有一组定义的功能的一种标识; 3、变更控制的流程(各种角色、职责输出): ·项目成员、客户代表、市场人员提交CR ·CMO将CR状态表示为已提交,并将CR根据条件进行判断,把不需要CCB进行审核的、决定采纳的CR直接进行签发;把不需要CCB进行审核的、不决定采纳的CR直接关闭(4CMO将CR状态标识为已拒绝);将需要CCB评审的CR提交给CCB进行评估; ·CCB召开会议对CR进行评估 ·CMO将CR状态标识为已接受,将CR于要修改的配置项发给项目组成员并开放CI的配置库权限 ·项目组成员执行更改并进行验证 ·CCB召开会议对修改进行审核,如果通过将CR状态表示为已验证,发给CMO,否则直接关闭,并给出提交人反馈信息 4、配置管理中测试工程师的职责: 5、需求跟踪涉及到的配置项 6、配置项的跟踪矩阵 Input————————————Task————————————Output 缺陷管理 1、缺陷管理的目的:·保证信息的一致性;保证缺陷得到有效跟踪,解决; ·获取正确的Bug信息,用作缺陷分析和产品度量。 ·缺陷状态(Status); ·缺陷严重程度(Sewrity); ·缺陷所属版本(DefectedinVersion); ·优先级(Priority) ·缺陷修改日期(FixedonDate); ·再现性(Reproducible); ·回归测试(Regression); 3、缺陷管理流程:(参考缺陷管理作业) 4、缺陷跟踪单写作准则(5C) ·Correct(准确),每个组成部分的描述准确,不会引起误会; ·Clear(清晰),每个组成部分的描述清晰,易于理解; ·Concise(简洁),只包含必不可少的信息,不包括任何多余的内容; ·Complete(完整),包含复现该缺陷的完整步骤和其他本质信息; ·Consistent(一致),按照一致的格式书写全部缺陷报告。 6、QC中缺陷管理流程:(实际流程应参考各公司内部流程或者书本) 1.Qatester提交一个状态为new的新缺陷后assignedtoPM 2.PM查看该缺陷,并判断是否为缺陷需要修改: nà在comments中记录否决意见后closed; 3.Developer打开缺陷模块,看到指派给自己的缺陷后确定是否修改: nà在comments中记录意见后rejectedtoPMà2 yà修改该缺陷,并将status置为fixed指给PM 4.PM将该缺陷指派给Qatester进行回归测试 5.Qatester看到指派给自己的fixed的缺陷后,进行回归测试,通过? yàclosed; nàrejected给PMà2 7、缺陷度量—评价软件技术/流程/组织指标的公式 ü分析指标 1.反映产品质量的指标 缺陷密度=缺陷数量/软件规模(千行代码数)潜在缺陷概数=(100%-发布前缺陷的缺陷去除率)*缺陷密度 2.反映产品可靠性的指标 3.反映缺陷发现及修复效率的指标 缺陷检出率=某阶段发现的缺陷/属于该阶段的全部缺陷*100%发布前缺陷去除率=发布前发现的缺陷/(发布前发现的缺陷+软件运行前三个月)*100%缺陷修正率=修复过程中未引发其他问题的缺陷数/被修复缺陷的总数*100% 4.反映缺陷修复成本的指标 ü汇总统计 1.缺陷发生的日期统计(缺陷发现趋势图) 2.缺陷性质统计(缺陷变更,需求变更) 3.缺陷状态分布(关闭,修复中,挂起等) 4.缺陷按子系统(模块)分类统计 5.缺陷引发原因分类统计 SQLSERVER(需搭建SQLSERVER环境) 数据定义语言(DDL) Createtable创建数据库的表 Createindex创建数据库表的索引 Droptable删除数据库表 Dropindex删除数据库表的索引 Truncatetable删除表的所有行 Altertable修改表:增加表列、重定义表列、更改存储分配等 Altertableaddconstraint在已有的表上增加约束 数据操作语言DML Insert增加数据行 Delete从表里删除行 Update更改表中数据 Select从表或视图中检索数据行 数据控制语言DCL Grant将权限或角色授予用户或其他角色 Revoke从用户或数据库角色回收权限 Setrole禁止或允许一个角色 数据库事务控制 Commitwork把当前事务所作的更改永久化(写入磁盘) Rollback作废上次提交以来的所有更改 Where语句中的通配符:Select*fromobjectswhereobject_namelike‘sql#_m_il’escape‘#’ 字符类型转换:例:convert(varchar(5),@varage) 汇总函数 平均值avg 总和sum 最小值min 最大值max 计数count Count(*)和count(distinct) Insert语句 Insertinto表名(列名1,n)value(值1,n) Insertintostudentvalues(20051115,’黄飞鸿’,’男’,21,’cs’) Insertintostudent(sname,sno,sdept)value(‘刘德华’,20055567,’cs’) 未指明的字段内容为null Insertinto表名(列名1,n)select语句;如: Insertintostudent2(sno,sname,sdept)selectsno,sname,sdeptfromstudent1 前提是两个表的结构相同 Update语句 Update表名set列名1=表达式1,列名2=表达式2..Where条件 Updatestudentsetsdept=‘MA’wheresno=‘95001’ 所有学生年龄加1 Updatestudentsetsage=sage+1 该语句只对单个表操作,不能同时对多表操作 该语句仅当事务提交(commit)后才生效;也可通过事务回滚rollback来作废操作 在SQLServer2000中有5种约束: 主键约束(primarykeyconstraint) 唯一性约束(uniqueconstraint) 检查约束(checkconstraint) 缺省约束(defaultconstraint) 外部键约束(foreignkeyconstraint) 2课程实例: ---创建表"订单A" createtable订单A(订单编号intnotnull, 下单日期datetimenotnull, 客户编号intnotnull) select*from订单A ---首先添加订单名称,varchar(20),null altertable订单A add订单名称varchar(20)null ---之后删除订单名称字段 dropcolumn订单名称 ---然后同时添加订单名称,varchar(20),null和定购数量,int,null add订单名称varchar(20)null,订购数量intnull ---然后尝试同时修改订单名称的字段长度为50,定购数量数据类型为numeric*不能同时修改* altercolumn订单名称varchar(50)null altercolumn订单名称varchar(50)null订购数量numeric ---最后同时删除订单名称和定购数量 dropcolumn订单名称,订购数量 ---向已有表"订单A"的订单编号字段添加主键约束 addconstraint订单编号_kprimarykey(订单编号) ---创建"定购项目"表,并同时添加项目编号字段为主键 createtable订购项目(订单编号intnotnull, 项目编号intnotnull, 书籍编号intnotnull, 数量intnotnull, primarykey(项目编号)) select*from订购项目 ---向已有表"定购项目"添加新字段"项目名称"和"客户名称",并设置项目名称字段为唯一键 altertable订购项目 add项目名称varchar(20),客户名称varchar(20) constraint项目名称_uunique(项目名称) ---在现有表"定购项目"上设置"客户名称"为唯一键 addconstraint客户名称_uunique(客户名称) ---设置数量字段必须在10到100之间 addconstraintchk_数量check(数量between10and100) insertinto订购项目values(1,2,3,4,'张三','李四') ---检测数量字段的约束条件是否成立 createtablesincky(myidintidentity(10,1)notnull, ---通过函数实现自动增量 youridvarchar(10)) ---添加"定购地点"字段,默认值是"上海" add订购地点varchar(50)nulldefault'上海'---设置缺省约束 createtable书籍(书籍编号intnotnullprimarykey, 书籍名称varchar(50)null, 价格smallmoneynull, 出版公司char(20)) addconstraint订单项目_fforeignkey(书籍编号)references书籍(书籍编号) 存储过程: ifexists(select*fromsysobjectswherename='sinckypro'andtype='p') dropproceduresinckypro go createproceduresinckypro @varnamevarchar(50),@varageint as declare@innamevarchar(50) set@inname='sincky_'+@varname createtabletesttable(myidintnotnullprimarykey, mynamevarchar(50)notnull, mypasswdvarchar(20)notnull, myageintdefault25) insertintotesttablevalues(1,@inname,'zhang',@varage) select*fromtesttable droptabletesttable execsinckypro'51testing',55 测试工具总结 测试工具大全 工具类别 工具名称 生产厂商 通用功能自动化测试工具 Winrunner Mercury Quicktestpro Xrunner QARun Compuware TestPartner WebKing Parasoft Robot IBMRational VisualTest FunctionalTester SilkTest Segue SilkTestInternational e-Tester Empirix WebFT Radview TestComplete AutomatedQA QAWizard Seapine SoftwareEggPlant RedStone TestEdition MicrosoftVisualStudio PureTest Minq Autotester Testbench400 OriginalSoftware TestExpert VEReCOMM TestRunner Qronus TTCNsuite Telelogic QC/Replay Centerline Web AutoTester eValid SoftwareResearch WebART OCLC MaxQ 开源 WebInject Marathon 性能测试/监控工具 LoadRunner SiteScope Topaz QaLoad PerformaSure/benchmark Quest Silkperformer SilkperformerLite SilkCentralTMPerformanceManager e-Load PerformanceTester WebLoad RadView Webapplicatonstresstool Microsoft Applicationcentertest PureLoad AtheneAPR Metron ForeCast Facilita Impact/ImpactforCBT Cyrano BerkeleyLaboratorysniffer Lawrence Jmeter openSTA Siege StressMark DBMonster 白盒测试/代码分析工具 VcTester ezTester Jtest C++test SOAtest .test Codewizard Insure++ DataRecon Numegadevpartnerstudio DevPartnerJavaEdition BoundsChecker SmartCheck DBPartner Bean-test Aqtime QESatJava VisualUnit Unitware PC-lint GimpelSoftware Macabe OptimizeitSuite Borland JProbeSuite QuestSoftware Applicationassurancesuite Sqloptimizer Jprofiler ej-technologies workbench Logiscope TeleLogic rulecheck SilkPerformerComponentTestEdition Purifyplus IBMrational RationalTestRealtime junit cactus Hansel TestNG StrutsTestCase JFCUnit Httpunit Dunit cppunit Nunit Xunit JTR MallocDebug Linux平台工具 Valgrind Kcachegrind dmalloc ElectricFence LeakTracer memprof ccmalloc mprof yamd njamd mpatrol 嵌入式测试工具 codetest Metrowerks Cantata/cantana++ IPL IceMaster ReflexTechnology Systemtest scorecast DDC-I Testquest UniText ATTOL vectorcast Vectorsoftware testrunner 测试管理工具 TestDirector(QualityCenter) QADirector certify Worksoft Productmanager Aimware SilkCentralTestManager Doors e-manager testmanager TestViewManager Professional T-Plan 缺陷管理工具 ClearQuest TrackRecord TestTrackpro TrueTrack McCabe Devtrack Techexcel Notes IBMLotus SilkCentralIssueManager PVCSTracker Merant ARSystem Remedy URTrack LealSoft Butterfly Hansky Bugzilla Mantis JIRA BugFree 配置管理工具 ClearCase PVCSVersionManager VCS Diamond StarTeam Perforce TRUEchange SYNERGYCM VSS Firefly CVS Subversion SCCS RCS CCC/Harvest ComputerAssociates 测试工具部分详解 随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。目前用于测试的工具已经比较多了,这些测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。 总的来说,测试工具的应用可以提高测试的质量、测试的效率。但是在选择和使用测试工具的时候,我们也应该看到,在测试过程中,并不是所有的测试工具都适合我们使用,同时,有了测试工具、会使用测试工具并不等于测试工具真正能在测试中发挥作用。 uWinRunner 1.简介 WinRunner:强大的企业级自动化测试工具 MercuryInteractive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 2.特征: 1)轻松创建测试 用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。 2)插入检查点 在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。 3)检验数据 除了创建并运行测试,WinRunner还能验证数据库的数值,从而确保业务交易的准确性。例如,在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记录上突出显示以引起注意。 4)增强测试 为了彻底全面地测试一个应用程序,需要使用不同类型的数据来测试。WinRunner的数据驱动向导(DataDriverWizard)可以让你简单地点击几下鼠标,就可以把一个业务流程测试转化为数据驱动测试,从而反映多个用户各自独特且真实的行为。 WinRunner还可以通过FunctionGenerator增加测试的功能。使用FunctionGenerator可以从目录列表中选择一个功能增加到你的测试中以提高测试能力。例如,你可以选择”calendar”,然后从日历功能的下属目录中选择,如Calendar_select_date(),然后你可以直观地输入参数,把这个功能插入到你的测试中。 针对相当数量的企业应用里非标准对象,WinRunner提供了VirtualObjectWizard来识别以前未知的对象。使用VirtualObjectWizard,你可以选择未知对象的类型,设定标识和命名。在录制使用该对象的测试时,WinRunner会自动对应它的名字,从而提高测试脚本的可读性和测试质量。 5)运行测试 创建好测试脚本,并插入检查点和必要的添加功能后,你就可以开始运行测试。运行测试时,WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。测试运行过程中,如有网络消息窗口出现或其它意外事件出现,WinRunner也会根据预先的设定排除这些干扰。 6)分析结果 测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其它重要事件,帮助你对测试结果进行分析。这些测试结果还可以通过MercuryInteractive的测试管理工具TestDirector来查阅。 7)维护测试 每次记录测试时,WinRunner会自动创建一个GUIMap文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUIMap文件而非无数个测试,WinRunner可以方便地实现测试重用。 8)帮助你的应用程序为无线应用作准备 无线应用协议是一种公开的、全球性的网络协议,用来支持标准数据格式化和无线设备信号的传输。 使用WinRunner,测试人员可以利用微型浏览模拟器来记录业务流程操作,然后回放和检查这些业务流程功能的正确性。 uLoadRunner 1.简介: LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。 1)轻松创建虚拟用户 使用LoadRunner的VirtualUserGenerator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows,UNIX或Linux机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。另外,LoadRunner的TurboLoad专利技术能。 提供很高的适应性。TurboLoad使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。 用VirtualUserGenerator建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。 2)创建真实的负载 Virtualusers建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner的Controller,您能很快组织起多用户的测试方案。Controller的Rendezvous功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。 而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能----包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。 LoadRunner通过它的AutoLoad技术,为您提供更多的测试灵活性。使用AutoLoad,您可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,您的目标可以是确定您的应用系统承受的每秒点击数或每秒的交易量。 3)定位性能问题 再者,利用LoadRunner的ContentCheckTM,您可以判断负载下的应用程序功能正常与否。ContentCheck在Virtualusers运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。 4)分析结果以精确定位问题所在 5)重复测试保证系统发布的高性能 负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。 6)EnterpriseJavaBeans的测试 LoadRunner完全支持EJB的负载测试。这些基于Java的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。 7)最大化投资回报 所有MercuryInteractive的产品和服务都是集成设计的,能完全相容地一起运作。由于它们具有相同的核心技术,来自于LoadRunner和ActiveTestTM的测试脚本,在MercuryInteractive的负载测试服务项目中,可以被重复用于性能监测。借助MercuryInteractive的监测功能--TopazTM和ActiveWatchTM,测试脚本可重复使用从而平衡投资收益。更重要的是,您能为测试的前期布署和生产系统的监测提供一个完整的应用性能管理解决方案。 8)支持无线应用协议 随着无线设备数量和种类的增多,您的测试计划需要同时满足传统的基于浏览器的用户和无线互联网设备,如手机和PDA。LoadRunner支持2项最广泛使用的协议:WAP和I-mode。此外,通过负载测试系统整体架构,LoadRunner能让您只需要通过记录一次脚本,就可完全检测上述这些无线互联网系统。 9)支持MediaStream应用 LoadRunner还能支持MediaStream应用。为了保证终端用户得到良好的操作体验和高质量MediaStream,您需要检测您的MediaStream应用程序。使用LoadRunner,您可以记录和重放任何流行的多媒体数据流格式来诊断系统的性能问题,查找原由,分析数据的质量。 10)完整的企业应用环境的支持 LoadRunner支持广泛的协议,可以测试各种IT基础架构。 uWAS MicrosoftWebApplicationStressTool是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。 2特征: 1)可以数种不同的方式建立测试指令:包含以手动、录制浏览器操作步骤、或直接录入IIS的记录文件、录入网站的内容及录入其它测试程序的指令等方式。 2)支持多种客户端接口:标准的网站应用程序C++的客户端,使用ActiveServerPage客户端,或是使用WebApplicationStress对象模型建立您自定的接口。 3)支持多用户:利用多种不同的认证方式仿真实际的情况,包含了DPA,NTLM及SSL等。 uJTEST 1、简介: jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。Jtest先分析每个java类,然后自动生成junit测试用例并执行用例,从而实现代码的最大覆盖,并将代码运行时未处理的异常暴露出来;另外,它还可以检查以DbC(DesignbyContract)规范开发的代码的正确性。用户还可以通过扩展测试用例的自动生成器来添加更多的junit用例。Jtest还能按照现有的超过350个编码标准来检查并自动纠正大多数常见的编码规则上的偏差,用户可自定义这些标准,通过简单的几个点击,就能预防类似于未处理异常、函数错误、内存泄漏、性能问题、安全隐患这样的代码问题。 2、优势: 1)使预防代码错误成为可能,从而大大节约成本,提高软件质量和开发效率 2)使单元测试——包括白盒、黑盒以及回归测试成为可能 3)使代码规范检查和自动纠正成为可能 4)鼓励开发团队横向协作来预防代码错误 3、特征: 1)通过简单的点击,自动实现代码基本错误的预防,这包括单元测试和代码规范的检查 2)生成并执行junit单元测试用例,对代码进行即时检查 3)提供了进行黑盒测试、模型测试和系统测试的快速途径 4)确认并阻止代码中不可捕获的异常、函数错误、内存泄漏、性能问题、安全弱点的问题 5)监视测试的覆盖范围 6)自动执行回归测试 7)支持DbC编码规范 8)检验超过350个来自java专家的开发规范 9)自动纠正违反超过160个编码规范的错误 10)允许用户通过图形方式或自动创建方式来自定义编码规范 11)支持大型团队开发中测试设置和测试文件的共享 12)实现和IBMWebsphereStudio/EclipseIDE的安全集成 4、价格:昂贵 uJMETER JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。使用JMeter进行性能测试 2、特征: JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。 3、价格:未知 uJUNIT 2.1)junit是完全Free的。 一段测试的程序代码无法单独的执行,它需要是执行环境的一部份。同时,它需要自动执行的单元测试--譬如在系统中周期性的执行所有的测试以证明没有任何东西被破坏。由于单元测试需要符合特定的准则:一个成功的测试不应该是人工检查的(那可要到天荒地老了啊),一个未通过测试的失败应可以产出文件以供诊断修改。而Junit可以提供给我们这些便利.。这样所有测试开发者所需撰写的只是测试码本身了。跟optimizeit、Jtest那些昂贵而又超级麻烦的tool比较起来,其利昭然可见! 2.9)JUnit测试是以Java写成的。 2.7)JUnit测试提升软件的稳定性。 2.6)撰写JUnit测试所费不多。 2.5)JUnit测试可以合成一个测试系列的层级架构。 3、价格:免费 uWEBLODE webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。 1)用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能 2)如有需要可以在做负载测试的同时,使用服务器监控工具对服务器端的内容进行记录那样使负载测试更加全面。 第一阶段英语单词总结 一、Abbreviation缩写 0、RTMrequirementtracematrix需求跟踪距阵 1、SRSsoftwarerequirementspecification软件需求规格说明书 2、HLDhighleveldesign概要设计 3、LLDlowleveldesign详细设计 4、IPOinputprocessoutput输入输出过程 5、SQAsoftwarequalityassurance软件质量保证 6、CMOconfigurationmanagementoperator配置管理员 7、RUPrationalunifiedprocess通用业务流程 8、IPDintegratedproductdevelopment集成产品开发过程 9、PDCAplan,do,check,act质量管理PDCA循环 11、DMAC原则define定义,measure度量,analysis分析,check检查 12、SEPGsoftwareengineerprocessgroup软件工程过程组 13、SEIsoftwareengineerinstitute美国软件工程研究所 14、CCBchangecontrolboard变更控制委员会 17、SDPsoftwaredevelopmentplan软件开发计划 二、常用术语 1、Debug调试 2、Testcase测试用例 3、Siralmodel螺旋模型 4、Softwarelifecycle软件生命周期 5、Initial初始级 6、Repeatable可重复级 7、Defined已定义级 8、Managed已管理级 9、Optimizing优化级 10、Suitability适合性 11、Accuracy准确性 12、Interoperability互操作性 13、Security安全性 14、Functionalitycompliance功能性依从性 15、Maturity成熟性 16、Faulttolerance容错性 17、Recoverability易恢复性 18、Reliabilitycompliance可靠性的依从性 19、Understandability易理解性 20、Learnability易学性 21、Operability易操作性 22、Attractiveness吸引性 24、Resourceutilization资源利用性 25、Efficiencycompliance效率依从性 26、Analyzability易分析性 27、Changeability易改变性 28、Stability稳定性 29、Testability易测试性 30、Maintainabilitycompliance维护行依从性 31、Adaptability适应性 32、installability安装性 33、co-existence共存行 34、replaceability易替换性 35、portabilitycompliance可移植性的依从性 36、unittesting单元测试 37、integrationtesting集成测试 38、systemtesting系统测试 39、regressiontesting回归测试 40、verification验证 41、validation确认 42、alphatestingα测试 43、betatestingβ测试 44、top-downtesting自顶向下测试 45、bottom-uptesting自底向上测试 46、isolationtesting孤立测试 47、automatestesting自动测试 48、artificiallytesting人工测试 49、whiteboxtesting白盒测试 50、blackboxtesting黑盒测试 51、entrycriteria入口准则 52、exitcriteria出口准则 53、reviewsandaudits评审和审计 54、workproductsmanagedandcontrolled可管理和受控的工作产品 55、documentedprocedures书面规程 56、stub桩单元 57、performancetesting性能测试 58、stresstesting压力测试 59、volumetesting容量测试 60、securitytesting安全性测试 61、usabilitytesting可用性测试 62、backuptesting备份测试 63、robustnesstesting健壮性测试 64、documentationtesting文档测试 65、onlinehelptesting在线帮助测试 66、statementcoverage语句覆盖 67、branchcoverage分支覆盖 68、decisioncoverage判断覆盖 69、conditioncoverage条件覆盖 70、branchconditoncoverage分支条件覆盖 71、decisionconditioncoverage判断条件覆盖 72、pathcoverage路径覆盖 73、functioncoverage功能覆盖 74、inheritancecontextcoverage继承上下文覆盖 75、state-basedcontextcoverage基于状态的上下文覆盖 76、User-definedcontextcoverage已定义用户上下文覆盖 77、InstructionblockscoverageIBcoverage指令块覆盖 78、Decision-to-decisionpathscoverageDDPcoverage判定路径覆盖 79、Peerreview同行评审 80、Walkthrough走读 81、Defect缺陷 82、Error错误 83、Syntaxerror语法错误 84、Logicalerror逻辑错误 85、Fault故障 86、Failure失效 补充中…… 复习问题总结 一、测试基础: 1、测试目的是什么 证明:证明软件的可用性 检测:发现软件中存在的错误 预防:管理软件的质量,可维护性能 2、软件生命周期中的各个模型及其优缺点 瀑布模型:应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。 优点: –强调开发的阶段性 –强调早期计划及需求调查 –强调产品测试 缺点: –依赖于早期进行的需求调查,不能适应需求变化 –由于是单一流程,开发中的经验教训不能应用于本产品过程 –测试在后期才参与,前期质量无法保证 螺旋模型:综合了基本的瀑布式模型和演化/渐增原型方法。 –强调全过程风险管理 –强调各开发阶段的质量 –提供机会检讨项目是否有价值继续下去 –每个阶段都要提出多个备选方案,并进行充分的风险分析,研发周期长,效 率低。 –需要有专门的风险分析人员参与 RUP流程:所有工作流在各个阶段都有体现。 –任何功能一经开发就能进入测试以便验证是否符合产品需求 –在早期对风险进行识别,采取预防措施 –尽早得到用户的验证 –如果需求一开始并不完全弄清楚,会给总体设计带来困难及削弱产品设计的 完整性。 –如果缺乏严格的过程管理,就可能退化为原始的无计划的“试—错—改”模 –不加控制地让用户接触开发并尚未测试稳定的功能,可能对开发和用户都会 产生负面的影响 IPD流程:从整个产品角度出发,不仅仅针对研发。 –流程是由IBM提出来的一套集成产品开发流程,非常适合于复杂的大型开发项目。从整个产品角度出发,流程综合考虑了从系统工程、研发(硬件、软件、结构工业设计、测试、资料开发等,制造、财务到市场、采购、技术支援等所有流程。是一个阶段性模型,具有瀑布模型的影子。 –通过复杂的流程把一个庞大而又复杂的系统进行分解并降低风险。通过流程成本来提高整个产品的质量并获得市场的占有。此模式不适合经常变动的需求,若用此模式开发小型项目,成本消耗非常大。 3、软件研发中几个重要的过程是什么,每个过程中的主要内容是什么? 需求管理:对软件开发中的需求进行管理,包括需求分配、需求评审、建立需求基线、需求跟踪、变更控制。 缺陷跟踪:对软件开发过程缺陷的发现、确认、定位、修改、评审、关闭等过程进行跟踪管理的流程。 同行评审:对于软件工作产品(包括文档、代码、用户手册等),组织工作产品作者的同行来确认是否存在缺陷、是否需要变更的检查方法。 4、引入缺陷的原因都有哪些? 缺陷引入的原因: ⑴开发过程缺乏有效的沟通,或者没有进行沟通 ⑵软件复杂度越来越高 ⑶编程中产生错误 ⑷需求不断变更 ⑸项目进度的压力 ⑹不重视开发文档 ⑺软件开发工具本身隐藏的问题 二、软件质量: 1、软件质量分哪几个层次,分别是什么? 1.符合需求的规格:符合开发者明确定义的目标,即产品是不是符合需求规格。 2.符合用户显示需求:符合用户所明确说明的目标。 3.符合用户实际需求:符合用户明确说明的和隐含的目标。 2、影响软件质量的因素有哪些?为什么? 影响软件质量因素主要有: 流程:针对不同的需求选用不同的软件流程模型图。 技术:包括开发技术、测试技术以及美工工艺的技术。 组织:一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础。 ü技术:包括了分析技术、设计技术、编码技术、测试技术,需求是项目的灵魂,良好的需求分析便是项目成功的关键所在,若是需求分析做不好不可避免的要出现返工;设计,软件的质量是设计出来的,良好的设计基本上决定了软件产品的最终质量;编码技术产生正确高效的代码;测试是保证软件的一道防线。所以各种技术对质量来说都是很重要的 ü组织:好的组织可以有效的促进流程的实施,同时提供员工的发展通道以吸引更多的人(技术的载体) 总结:质量铁三角互相促进,缺一不可 3、CMM是什么?CMM各级的特点 CMM的用途: 1评估供用商的能力; 2企业的过程改进指南; 3评估组用来识别组织中的强处和弱点; 4管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动; 5评价组用来识别选择不同的业务承包商的风险和监督合同。 4、软件质量模型是什么? 软件质量模型可分为6大模块27子模块 ü功能性 1.适合性 2.准确性 3.互操作性 4.保密安全性 5.功能性的依从性 ü可靠性 6.成熟性 7.容错性 8.易恢复性 9.可靠性的依从性 ü易用性 1.易理解性 2.易学性 3.易操作性 4.吸引性 5.易用性的依从性 ü效率 2.资源利用性 3.效率依从性 ü维护性 10.易分析性 11.易改变性 12.稳定性 13.易测试性 14.维护性的依从性 ü可移植性 15.适应性 16.易安装性 17.共存性 18.易替换性 19.可移植性的依从性 5、SQA和测试的关系是什么? SQA从过程上保证软件质量测试从技术上保证软件质量。 6、SQA的主要工作范围是什么? 1.保障制度体系顺利执行。 2.促进过程改进。 3.指导项目实施。 4.增强项目的可视度(进度、质量、过程)。 5.评审工作产品。 6.审核工作产品。(核心工作)。 7.协助问题解决。 8.提供决策支持。 9.缺陷预防(提高产品质量,降低缺陷发现修复成本)。 10.实现质量目标 7、质量管理的PDCA循环是什么? 1.Plan计划(计划设计) 2.Do执行(实施执行) 3.Check检查(检查检测) 4.Act改进(纠正措施) 8、软件度量的手段是什么? 1.规模(size) 2.工作量(effort) 3.进度(schedule) 4.质量-缺陷(quality-defect) 三、测试方法: 1、黑盒测试和白盒测试的区别? 黑盒:被测对象当作一个黑盒子,参考与SRS,站在用户立场上进行测试,方便与功能测试、验收测试、易用性测试等。 白盒:玻璃盒,基与代码测试,参考与LLD,HLD在了解程序的内部数据结构和逻辑结构的基础上展开的更适合于单元测试、集成测试等。 2、常用的黑盒测试技术有哪些? ü输入输出:等甲类边界之输入域覆盖输出域覆盖 ü条件组合:因果图正交试验判定法 ü过程处理:流程分析状态迁移 ü其他:错误猜测异常分析 3、常用的白盒测试技术有哪些? ü静态分析:信息流分析、数据流分析、控制流分析。 ü动态分析:逻辑覆盖、程序插装。 4、静态测试和动态测试的区别 静态和动态测试的区别是:是否运行被测软件。 5、静态测试的方法有哪些?上题 6、动态测试的方法有哪些?上题 7、手工测试和自动化测试的区别? 手工测试:测试活动以及执行由人工来完成。 自动化测试:通过工具模拟人的测试执行,由计算机自动执行。 8、手工测试和自动化测试的优缺点是什么? 手工测试: 自动化测试: 四:测试过程: 1、系统测试、集成测试和单元测试的区别? 用三种不同角度比较如下表: 阶段 考察范围 评估基准 整个系统相对与需求的符合度 黑盒 测试用例对需求规格的覆盖率 模块间的接口和接口的数据传递关系,以及模块组合后的整体功能 灰盒 测试单元内部数据结构、逻辑控制、异常处理等 白盒 逻辑覆盖率 2、为什么测试要分阶段进行 3、回归测试的策略如何选择? 回归测试的策略主要有:完全重复测试和选择性重复测试。 完全重复测试:重新执行所有在前期测试阶段建立的测试用例 选择重复测试:即有选择地重新执行部分在前期测试阶段建立的测试用例,主要测被修改的程序。 选择重复测试可分为:覆盖修改法、周遍影响法、指标达成法。 根据产品进度、缺陷的严重性以及缺陷发现的阶段性进行选择。 4、回归测试的自动化什么情况下使用? a)重复率高。 b)相对稳定的版本。 c)手工无法达到的场景模拟。 5、V&V模型的特点是什么?与瀑布模型和H模型相比有什么优势 a)实现了测试设计与执行的分离。 b)测试与开发同步进行,各阶段相对应。 c)揭示了测试过程分阶段分层的本质 瀑布模型没有实现测试的分阶段和分层,而H模型虽然是开发测试同步进行却没有标明测试与开发各个阶段的对应关系 6、主要的测试文档有哪些,分别都是什么内容,作用和读者都是什么? 作者 内容 读者 作用 测试计划 测试经理 测试计划人员 测试策略 测试项 项目经理 了解测试安排,掌控项目进度 开发人员 评审 测试人员 评审、设计测试方案及用例的依据、执行时参考 SQA 度量 测试方案 测试工程师 测试设计人员 测试子项 具体测试方法 评审、设计用例的依据、执行时参考 测试用例 测试实现人员 编号、标题、输入、处理过程、预期输出等 测试执行的依据 测试规程 测试用例的执行先后顺序 测试执行人员 提高测试执行的效率 测试报告 测试执行情况记录 了解测试结果 掌握软件的质量水平 缺陷报告 确认缺陷、修改的依据 判断是否重复 分配缺陷 7、系统测试过程各阶段的输入、输出是什么? 系统测试计划阶段输入:软件需求规格说明书、软件测试计划、软件开发计划 输出:系统测试计划 系统测试设计阶段输入:软件需求规格说明书、系统测试计划 输出:系统测试方案 系统测试实现阶段输入:软件需求规格说明书、系统测试计划、系统测试方案 输出:系统测试用例、系统测试规程 系统测试执行阶段输入:系统测试计划、系统测试方案、系统测试用例、系统测试规程 输出:系统测试报告、缺陷报告单 8、集成测试过程各阶段的输入、输出是什么? 集成测试计划阶段输入:概要设计说明书、软件测试计划 输出:集成测试计划 集成测试设计阶段输入:概要设计说明书、集成测试计划 输出:集成测试方案 集成测试实现阶段输入:概要设计说明书、集成测试计划、集成测试方案 输出:集成测试用例、集成测试规程 集成测试执行阶段输入:集成测试计划、集成测试方案、集成测试用例、集成测试规程 输出:集成测试报告、缺陷报告单 9、单元测试过程各阶段的输入、输出是什么? 单元测试计划阶段输入:详细设计说明书、软件测试计划 输出:单元测试计划 单元测试设计阶段输入:详细设计说明书、单元测试计划 输出:单元测试方案 单元测试实现阶段输入:详细设计说明书、单元测试计划、单元测试方案 输出:单元测试用例、单元测试规程 单元测试执行阶段输入:单元测试计划、单元测试方案、单元测试用例、单元测试规程 输出:单元测试报告、缺陷报告单 10、需求分析阶段主要的任务是什么? 把用户的需求,包括显式需求和隐式需求转换为规格化的描述确切的说明文档,形成SRS 11、概要设计阶段主要的任务是什么? 把SRS中的需求转化为模块化的体系结构,每个模块具有明确的功能