51testing软件测试培训笔记.docx

上传人:b****8 文档编号:10196961 上传时间:2023-02-09 格式:DOCX 页数:46 大小:160.38KB
下载 相关 举报
51testing软件测试培训笔记.docx_第1页
第1页 / 共46页
51testing软件测试培训笔记.docx_第2页
第2页 / 共46页
51testing软件测试培训笔记.docx_第3页
第3页 / 共46页
51testing软件测试培训笔记.docx_第4页
第4页 / 共46页
51testing软件测试培训笔记.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

51testing软件测试培训笔记.docx

《51testing软件测试培训笔记.docx》由会员分享,可在线阅读,更多相关《51testing软件测试培训笔记.docx(46页珍藏版)》请在冰豆网上搜索。

51testing软件测试培训笔记.docx

51testing软件测试培训笔记

第一章测试基础

1.软件测试的目的:

证明(表达软件能够工作)→检测(发现错误)→预防(管

理质量)

2.测试执行:

单元测试(UT执行):

一个测试用例的测试执行;

集成测试(IT执行):

一个测试用例集的测试执行;

系统测试(ST执行):

不同测试阶段的测试执行。

3.测试用例(TestCase):

指对一项特定的软件产品测试任务的描述,体现测试方案、方法、技术和策略。

4.测试和调试的区别:

测试

调试

目的

找出存在的错误

定位错误,修改程序以修正错误

对象

文档,代码

代码

流程

有特定流程,有计划性

无特定流程,不可设计,无计划性

条件

从已知条件开始,用预定义过程,有预知结果

从未知条件开始,结束过程不可预计

5.回归测试的目的:

a.验证错误是否修复;

b.检测对代码的修改是否引入了新的错误。

6.软件测试的主要工作:

a.检视代码,评审开发文档;

b.进行测试设计,写作测试文档(测试计划、测试方案、测试用例等);

c.执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;

d.通过测试度量软件质量。

7.软件危机的出现主要表现在:

a.由于缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定;

b.开发早期需求分析不够明确,造成开发后期矛盾集中暴露;

c.不遵循开发规范,开发文档不完整,软件难以维护;

d.缺乏严密有效的软件质量检测手段,交付给用户的软件质量差。

8.软件危机的后果:

a.软件质量不高,很难稳定;

b.软件项目延期,进度无法控制;

c.成本增加,无法控制预算。

9.软件危机的根源:

a.根据摩尔定律,硬件发展很快,相应对软件系统的期望

越来越高;

b.软件系统复杂性提高,需多人合作;

c.软件开发是人的智力活动,无法用已有的产业工程方法来组织管理。

10.软件生命周期的各个阶段:

计划→需求分析→设计→编码→测试→运行→评价

11.设计:

概要设计(HLD):

在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;

详细设计(LLD):

对每个模块要完成的工作进行具体的描述。

12.软件研发三要素:

人员、过程、工具

13.软件项目组人员组成:

分析人员、设计人员、开发人员、测试人员、配置管理人员、SQA(质量保证人员)

14.软件研发流程类型:

瀑布模型:

无风险控制能力,适合需求变化较小的情况。

螺旋模型:

基于风险管理的模型,高风险的优先考虑,对风险管理人员的要求较高。

RVP流程:

面向对象的,通用的(4大阶段,6大工作流,8项迭代)。

特点:

1)基于风险

2)用例集驱动

3)以架构为中心

4)迭代和增量

IPD流程:

1)产品结构重整(资源重整)

2)公共模块共用

15.软件研发中几个重要的过程:

需求管理、配置管理、缺陷管理、同行评审。

16.常见的引入缺陷的原因:

a.开发过程缺乏有效的沟通,或者没有进行沟通;

b.软件复杂度越来越高;

c.编程中产生错误;

d.需求不断变更;

e.项目进度的压力;

f.不重视开发文档;

g.软件开发工具本身隐藏的问题。

等等……

17.缺陷类型:

遗漏、错误、额外的实现。

第二章软件质量

1、软件质量的定义:

一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。

而质量就是实体基于这些特性满足需求的程度。

2、软件质量的三个层次:

a.符合需求规格;

b.符合用户显示需求;

c.符合用户实际需求。

3、影响软件质量的因素:

流程、技术、组织。

流程:

一组活动(活动是否都是必须的,活动角色之间的关系)。

过程:

一组将输入转化为输出的相关联或相互作用的活动。

4、八项质量管理原则:

a.以顾客为中心;b.领导作用;c.全员参与;

d.过程方法;e.管理的系统方法;f.持续改进;

g.基于事实的决策方法;h.互利的供方关系。

5、八项质量管理原则的意义:

a.是质量管理的理论基础;

b.用高度概括易于理解的语言所表述的质量管理的最基本,最通用的一般性规律;

c.为组织建立质量管理体系提供了理论依据;

d.是组织的领导者有效的实施质量管理工作必须遵循的原则。

6、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弱相关。

9、六西格玛的实施方式:

Define:

定义----提出问题,确定目标

Measure:

测量----收集资料,寻找原因

Analyse:

分析----研究资料,确定原因

Improve:

改进----优化解决方案

Control:

控制----推行控制系统

10、软件质量模型:

功能性:

当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。

包括:

适合性;准确性;互操作性;保密安全性;功能性的依从性。

可靠性:

在指定条件下使用时,软件产品维持规定的性能级别的能力。

包括:

成熟性;容错性;易恢复性;可靠性的依从性。

易用性:

在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。

包括:

易理解性;易学性;易操作性;吸引性;易用性的依从性。

效率:

在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。

包括:

时间特性;资源利用性;效率依从性。

维护性:

软件产品可被修改的能力。

修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。

包括:

易分析性;易改变性;稳定性;易测试性;维护性的依从性。

可移植性:

软件产品从一种环境迁移到另外一种环境的能力。

包括:

适应性;易安装性;共存性;易替换性;可移植性的依从性。

11、SQA与测试的关系:

测试从技术的角度来保证软件质量

SQA从流程的角度保障软件质量

组织用来保障SQA和测试的活动

12、SQA的主要工作范围:

·指导并监督项目按照过程实施;

·对项目进行度量、分析,增加项目的可视性;

·审核工作产品,评价工作产品和过程质量目标的复合度;

·进行缺陷分析,缺陷预防活动,发现过程的缺陷,提供决策参考,促进过程改进。

13、度量:

对事物属性的量化表示;

软件度量:

是指计算机软件中范围广泛的测度,包括对软件系统、构建或生命周期过程具有的某个给定属性的度的一个定量测量。

目的:

·提高软件生产率,缩短产品研发周期,降低研发成本、维护成本;

·提高软件产品质量,提高用户满意度;

·为组织持续改进提供量化的指标和反馈。

14、软件度量的作用:

1)理解;预测;评估;改进。

2)分类:

规模;工作量;进度;质量

15、如何将度量的知识应用于实际工作中:

建立测试工作的度量数据,目的是作为预测和改进的基础

a.熟悉需求:

进度、工作量、规模;

b.设计用例:

工作效率、覆盖率;

c.执行用例:

工作效率、缺陷密度;)

第三章测试方法

1、什么是白盒测试:

·白盒测试是依据被测软件,分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况;

·白盒测试是基于程序结构的逻辑驱动测试;

·白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。

2、为什么进行白盒测试:

·一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问、难题能基本得到消除;

·能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证;

·发现问题后解决问题的成本较低。

3、白盒测试的常用技术:

·静态分析:

控制流分析、数据流分析、信息流分析等;

·动态分析:

逻辑覆盖测试(分支测试、路径测试等)、程序插装等。

4、控制流相关概念:

程序元素、控制流关系、控制流图、控制流矩阵。

(步骤:

5)

5、控制流分析能发现的问题:

1)转向并不存在的标号;

2)没有用的语句标号;

3)从程序入口进入后无法达到的语句;

4)不能达到停机语句的语句。

6、数据流相关概念:

数据的定义;数据的引用。

(步骤:

3)

7、数据流分析的作用:

分析代码中关于数据定义和引用方面的错误;进行代码优

化。

(赋值语句运算效率高)

8、信息流分析:

输入变量和语句关系;语句和输出变量关系;输入和输出变量管

理。

(步骤:

4)

9、覆盖率工具的作用:

·分析被测试代码控制结构,决定插装位置;

·实施插装;

·将插装代码重新编译;

·执行被测对象,根据插装的监控哨信息统计覆盖率。

10、白盒测试的特点:

·测试人员需要了解软件的实现;

·可以检测代码中的每条分支和路径;

·揭示隐藏在代码中的错误;

·对代码的测试比较彻底;

·实现代码结构上的优化;

·白盒测试投入较大,成本高;

·白盒测试不验证规格的正确性。

11、什么是黑盒测试:

·黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现;

·黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。

·黑盒测试又可以被称为基于规格的测试。

12、常见的黑盒测试类型:

功能性测试;容量测试;负载测试;恢复性测试。

13、常见的黑盒测试方法:

等价类、边界值、因果图、判定表、状态迁移、正交分解、错误猜测、输入/输出域覆盖、

14、系统测试的时候,如果没有SRS时,有两类BUG无法发现:

1)需求遗漏;

2)需求偏差

15、黑盒测试的优点:

·对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;

·测试人员不需要了解实现的细节,包括特定的编程语言;

·从用户的视角进行测试,很容易被大家理解和接受;

·有助于暴露任何规格不一致或有歧义的问题。

16、黑盒测试的缺点:

·没有清晰的和简明的规格,测试用例很难设计;

·不能控制内部执行路径,会有很多内部程序路径没有被测试到;

·不能直接针对特定的程序段,这些程序可能非常复杂(因此可能隐藏更多的问题)。

17、动态和静态测试的分类依据在于:

被测对象是否运行起来。

18、手工静态分析——同行评审:

正规检视;技术评审;走查。

评审对象:

计划、需求文档、设计图、代码等。

19、自动化静态分析:

静态验证;语法分析器;符号执行器。

20、自动化测试应该考虑的因素:

1)测试进度要求

2)人力资源要求

3)版本稳定度

4)版本应用情况

5)可自动化率

6)版本规模

21、自动化测试的误区:

1)自动化不能取代手工测试。

2)手工测试都做不好,或者经验积累不够,就尝试自动化,很难成功。

3)自动化只能保证测试执行效率,确保已有的问题不会再发生,自动化测试不能发现大量新缺陷。

4)进行了自动化测试的软件不一定就是安全的,质量有保证的。

所以手工测试是自动化测试的一个基础

22、自动化五大等级:

1)录制和回放

2)脚本

3)自动化框架脚本

4)数据驱动

5)关键字驱动

Ø自动化测试的限制(板书):

·自动化测试不具备想象力,不能够检查脚本中给定的观察点之外的错误;

·自动化测试只能提高测试效率,不能提高测试效果,不能发现比人工测试更多的问题;如被测对象不稳定,存在变动性的话不适合开展自动化测试,否则脚本的编写和维护所耗费的时间可能远大于人工测试;

·只有手工测试积累到一定程度(提供更多的观察点),才能做好自动化测试。

第四章测试过程

1、各阶段测试的目的:

1)单元测试:

检测软件模块对《详细设计说明书》的符合程度

2)集成测试:

检测软件模块对《概要设计说明书》的符合程度

3)系统测试:

通过与《需要规格说明书》作比较,发现软件与系统定义不符或与之矛盾的地方。

2、单元、集成、系统测试的比较:

测试类型

目的

考察范围

评估基准

测试方法

单元测试

消除局部模块的逻辑和功能上的错误和缺陷(消除单元、模块内部的逻辑和功能上的错误与缺陷)

单元内部的数据结构、逻辑控制、异常处理等

逻辑覆盖率

大量采用白盒测试方法

集成测试

找出与软件设计相关的程序结构,模块调用关系,模块间接口方面的问题(找出与软件架构设计相关的程序结构,单元/子模块间的调用关系,单元/子模块间接口方米那的问题)

接口和接口数据传递关系、模块组合后的整体功能

接口覆盖率

结合使用白盒与黑盒测试方法,较多采用黑盒方法构造测试用例(也有说法叫灰盒测试方法)

系统测试

对整个系统进行一系列的整体、有效性测试(对系统规格中的功能与性能进行一系列的有效性测试)

整个系统对需求的符合度

测试用例对需求规格的覆盖率

黑盒测试

3、回归测试策略:

完全重复测试;

选择性重复测试(覆盖修改法;周边影响法;指标达成方法;选择重要级别高的测试用例)

4、回归测试流程:

1)在测试策略制定阶段,制定回归测试策略

2)确定需要回归测试的版本

3)回归测试版本发布,按照回归测试策略执行回归测试

4)回归测试通过,关闭缺陷跟踪单(问题单)

5)回归测试不通过,缺陷跟踪单返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试

5、有用户参与的其他一些测试:

验收测试、α测试、β测试

6、α测试与β测试的比较:

 

 

Alpha测试

Beta测试

比较

测试环境

开发环境或者模拟实际操作的环境下

实际使用环境

测试人员

可以是终端用户也可以是企业内部的用户

终端用户(包括潜在用户)

开发人员是否在场

有开发人员在场,实际上是一种受控的测试。

开发人员通常不在测试现场,测试情况通常不受控。

关注点

Alpha测试关注软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持),尤其注重产品的界面和特色。

Beta测试着重关注产品的支持性,包括文档、客户培训和支持产品的生产能力。

共同点

1.都希望从实际终端用户的使用角度来对软件的功能和性能进行测试,以发现可能只有终端用户才能发现的错误;

2.都不能由测试人员和程序员完成;

7、主要的测试文档:

测试计划;测试方案;测试用例;测试规程;测试报告;测试日报

8、验证与确认V&V:

验证(VERIFICATION)强调过程;确认(VALIDATION)强调

结果。

9、V&V模型优点:

·实现了测试设计和测试执行相分离;

·揭示了软件测试活动分层和分阶段的本质特性:

测试执行的顺序与开发活动相反

 

10、V&V模型:

 

11、系统测试分为几个阶段,每个阶段的输入/输出是什么?

系统测试阶段

输入

输出

 

系统测试

计划阶段

1.软件开发计划

2.软件测试计划

3.需求规格说明书

系统测试计划

设计阶段

1.系统测试计划

2.需求规格说明书

系统测试方案

实现阶段

1.系统测试计划

2.系统测试方案

3.需求规格说明书

1.系统测试用例

2.系统测试规程

3.系统测试预测试项

执行阶段

1.系统测试计划

2.系统测试方案

3.系统测试用例

4.系统测试规程

5.系统测试预测试项

6.集成测试报告

1.系统预测试报告

2.系统测试报告

3.缺陷报告

4.测试日报

 

集成测试

计划阶段

1.软件测试计划

2.概要设计说明书

集成测试计划

设计阶段

1.概要设计说明书

2.集成测试计划

集成测试方案

实现阶段

1.概要设计说明书

2.集成测试计划

3.集成测试方案

1.集成测试用例

2.集成测试规程

执行阶段

1.集成测试计划

2.集成测试方案

3.集成测试用例

4.集成测试规程

1.集成测试报告

2.缺陷报告

 

单元测试

计划阶段

1.软件测试计划

2.详细设计说明书

单元测试计划

设计阶段

1.详细设计说明书

2.单元测试计划

单元测试方案

实现阶段

1.详细设计说明书

2.单元测试计划

3.单元测试方案

1.单元测试用例

2.单元测试规程

执行阶段

1.单元测试计划

2.单元测试方案

3.单元测试用例

4.单元测试规程

1.单元测试报告

2.缺陷报告

第五章单元测试

1、单元的基本属性:

1)明确的功能

2)可定义的规格

3)与其他单元接口的清晰划分

2、单元测试的目的:

在于发现各模块内部可能存在的各种错误,主要是基于白盒测试。

a)验证代码是与设计相符合的;

b)发现设计和需求中存在的错误;

c)发现在编码过程中引入的错误。

(和设计不相符或和设计相符,但是由于

编码疏漏引起)

3、单元测试关注的重点:

出错处理、单元接口、局部数据结构、独立路径、边界条件

4、单元测试的主要关注点:

1)参数的属性、顺序、个数是否与LLD一致

2)不能修改只做输入用的形参,否则可能导致数据的错误修改

3)约束条件是否通过形参来传送

5、驱动和桩的功能:

1)驱动单元:

被测函数的主函数,能接受输入数据,输出实际测试结果

2)桩单元:

用来代替所测单元调用的子单元

6、单元测试策略:

孤立的测试策略、自顶向下、自底向上的单元测试策略

1)孤立的测试策略:

·方法:

不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块。

每个模块进行独立的单元测试。

·优点:

该方法是最简单,最容易操作的。

可以达到高的结构覆盖率。

该方法是纯粹的单元测试。

·缺点:

桩函数和驱动函数工作量很大,效率低。

2)自顶向下的单元测试策略:

·方法:

先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。

其次对第二层进行测试,使用上面已测试的单元做驱动模块。

如此类推直到测试完所有模块。

·优点:

可以节省驱动函数的开发工作量,测试效率较高。

·缺点:

随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。

3)自底向上的单元测试策略:

·方法:

先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模

块的模块做驱动模块。

然后再对上面一层做单元测试,用下面已被

测试过的模块做桩模块。

以此类推,直到测试完所有模块。

·优点:

可以节省桩函数的开发工作量,测试效率较高。

·缺点:

不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产

生很大的影响。

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函数对应的桩

Ø

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1