测试基础理论

第十讲 测试基础理论

一、 软件开发的阶段

1、需求分析阶段,有需求分析人员完成,产出物《需求规格说明书》

2、概要设计阶段

3、详细设计阶段

由系统架构师(分析师)完成,产出物《概要设计说明书》、《详细设计说明书》

1、 编码阶段,由开发人员完成,产出物是程序

结论:1)测试不能只测程序,文档也必须要测

      2)测试应符合尽早测试原则和不断测试原则

二、 软件测试的阶段划分

说明:此阶段划分没有涵盖需求和设计的文档测试部分。

1、 单元测试

1) 单元测试是整个测试阶段中最小的测试单元,例如:测试一个窗口、功能、方法、函数、类等

2) 单元测试主要依据:详细设计文档

3) 单元测试阶段理论上使用白盒测试方法

说明:实际情况是通常程序员做单元测试(白盒),可以降低成本,但是质量得不到保证,所以公司中通常会交换互测或者开发测第一轮(白盒),测试测第二轮(黑盒)。

4) 桩模块和驱动模块在单元测试阶段,测试者可能需要编写桩模块和驱动模块

驱动模块:模拟被测模块的上一级模块(调用被测模块)

桩模块:模拟被测模块的下一级。(被“被测模块”调用)

总结:驱动模块à被测模块à桩模块

2、 集成测试(组装测试)

1) 集成测试也叫组装测试,当单元测试完成,将软件的各个功能逐步合并在一起的测试过程。

2) 集成测试阶段,在逐步组装的过程中,会形成若干的临时版本。

3) 集成测试阶段以黑盒测试为主,核心功能、重点、难点功能还要辅助以白盒测试方法。

4) 集成测试阶段的主要依据:概要设计文档

5) 冒烟测试:当测试方接到开发方开发的新版本时,通常会进行冒烟测试(也叫版本验证测试)

冒烟测试:组织少量的测试人员(1-3人,经验丰富),花费较短的时间(0.5-2天),对新版本的主要功能进行测试(通常不写用例),如果主要功能测试没有问题,那么整个测试组展开全面测试,如果主要功能问题较多,版本不稳定,就将该版本打回开发组。

6) 基础测试阶段拿到新版本后,测试组工作思路:

首先做冒烟测试,验证是否接受该版本

接下来返测,验证开发人员解决的bug是否被修复。

回归测试:对上一个版本中测过的所有功能,重新测试一遍

最后:对新功能进行测试(但是有些版本时专门进行缺陷整理的版本,可能没有新功能)

3、 系统测试

1) 系统测试是在程序组装完成后,对集成了软、硬件的完整系统,进行的模拟真实环境的测试。

2) 系统测试阶段测试重点:

(1) 整个系统的正确运行

(2) 整个系统的兼容性

3) 系统测试:测试方法就是黑盒测试。

4) 系统测试主要依据:需求文档

5) 确认测试阶段

在系统测试之前一般需要进行“确认测试”,主要确认:

(1) 确认该系统是否可以进入全面的系统测试阶段。

(2) 确认相关文档(尤其是交给用户的和用于认证的文档)

说明:确认测试阶段通常参与人员较少,测试时间较短,使用一般不予单元、集成、系统、验收测试阶段并列。

4、 验收测试UATuser acceptance testing 用户接受度测试)

1) 是用户参与的软件质量检测过程。

2) 验收测试主要分成两个小的测试阶段:

(1) alpha测试阶段:是在软件公司指定的测试环境内进行(软件研发方对bug的控制力较强),理论上应由最终用户进行

说明:实际情况是用户有时不配合alpha测试,所以通常由软件公司找人代替客户进行,或者客户自己请第三方测试机构代替。

(2) beta测试阶段

在用户的使用环境内(软件研发方对于bug的控制力极低),由最终用户对软件进行测试。

例如:公共类软件(操作系统、输入法、QQ、网络游戏等)将软件免费发放给最终用户,软件企业通过收集最终用户使用的问题,来收集bug。

三、软件测试模型

1、软件测试模型可以反映出软件开发阶段和测试阶段的对应关系,例如:V模型(常用)、W模型、H模型。

2、V模型(常考)

1)会画

 

2V模型的优缺点:

优点:

(1) 开发阶段和测试阶段(级别)划分明确,并且开发阶段和测试阶段(级别)的对应关系也清晰明确

(2) V模型的测试阶段(级别)既包含面底层的单元测试(专业级、代码级)也包含面向用户需求的用户验收测试(用户级、非专业级)。

缺点:

(1) V模型缺少需求和设计阶段的测试工作,容易造成误解,测试工作只是开发完成之后的一个收尾工作。

(2) V模型没有体现文档测试的重要性,也不符合尽早测试原则和不断测试原则。

1、 W模型(了解)

 

1)W模型可以看出是双V模型,第一个V表现的是开发活动,第二个V表现的是测试活动。

2)W模型加入了需求和设计阶段的测试内容,强调了文档测试的重要性,并且符合尽早测试原则和不断测试原则。

体现开发与测试工作是并行的工作内容

一、 软件测试的分类(名词、术语)

1、 按测试技术换分

1) 白盒测试:也叫结构测试,是只需要关注软件程序的内部结构,不需要关注软件功能的测试方法。

2) 黑盒测试:也叫功能测试,是不需要关注软件程序的内部结构,知道程序的输入和输出就可以进行的功能性测试。

3) 灰盒测试:结合黑盒测试和白盒测试的要素,进行测试的方法。先通过黑盒测试发现bug,如果需要对bug进行进一步调查,可以引入白盒测试。(集成测试阶段灰盒测试使用较多)

2、 按是否需要运行程序进行划分:

1) 动态测试:需要运行程序才能进行的测试

例如:功能(黑盒)测试是动态测试。

说明:白盒测试有可能是动态测试也有可能是静态测试。

2) 静态测试:不需要运行程序就可以进行的测试

例如:文档测试

界面测试(UI

(静态)代码测试:检查的是代码是否符合一定的标准和规范

面试问题:白盒测试与(静态)代码测试有什么区别?

白盒测试:

是关注程序的逻辑过程;

要求测试人员要懂代码;

要求编写测试用例

代码测试:

关注的是代码是否符合标准和规范;

不要求测试人员懂代码,也不需要写测试用例,只需要参照代码检查单进行检查即可。

扩展:白盒测试说明:

(1) 白盒测试常作为难点、重点功能的补充测试方法。

(2) 白盒测试要求测试人员要懂编程懂代码。

(3) 白盒测试成本较高(时间),效率较低,但是测试质量好。

(4) 白盒测试是需要编写测试用例

3、 按照软件特性划分

1) 功能测试

首先所有软件都必须要先进行功能测试,以保证功能正确。

功能测试可以使用手工测试,也可以使用自动化功能测试(借助工具:QTPselenium等)。

2) 性能测试

分布式软件(C/SB/S)是需要进行性能测试

性能测试只能通过自动化方式,借助工具实现(工具:loadrunner、jmeter

4、 其他

1) 返测:对开发人员已修复(fixed)的bug进行测试,以验证缺陷是否被修复。

2) 回归测试:在新版本中对上一版本测过的所有功能重新测试一遍。回归测试是为了验证新版本中的原有功能是否正确。回归测试中存在重复工作(将之前的用例重复执行),所有为了提高测试效率,在条件允许时,可以采用自动化的方式进行回归测试

3) 随机测试(monkey testing):在测试用例执行完成之后,随机挑选数据进行补充测试的过程。

注意:随机测试只是用例测试完后,一种补充测试的方式。(效率远低于正常测试)

4) 兼容性测试:是指所设计软件与硬件和软件系统是否能够兼容(一起正常)使用的测试过程。

兼容性测试包含三大部分:

(1) 与硬件兼容

1) 与整机兼容

2) 与外设兼容

(2) 与软件兼容

1) OS(操作系统)兼容性

2) 与其他应用软件之间的兼容

3) 与浏览器兼容

4) 与数据库兼容

(3) 与数据兼容:指的是软件不同版本之间的数据兼容性问题。

5) 软件项目测试流程(重点)

步骤1:熟悉需求(还要充分的与产品、设计、用户、开发等进行充分沟通讨论)

步骤2:制定测试计划

步骤3:设计测试功能点的划分,设计编写测试用例。

步骤4:执行测试,记录测试结果-每一条用例执行(test case),并记录测试

步骤5:分析测试结果,如果有缺陷,要记录缺陷通常在测试管理工具(禅道)中填写缺陷报告

步骤6:跟踪和管理缺陷(defect)

步骤7:测试总结(总结报告)

6) 功能测试方法的使用策略(就是答7种测试方法的应用场合)

(1) 等价类划分法和边界值法程序中有数据输入的地方,可以使用等价类划分法和边界值法,等价类从大量数据中抽取少量代表数据,避免了穷举,大大提高测试效率,减少测试工作量。边界值法是对边界值数据的有效补充

(2) 因果图和判定表:适合测试控件之间的组合和限制关系,但是比较适用于组合数量少的情况

(3) 正交排列法适合测试控件之间的组合关系,但是比较适合测试组合数量大的,该方法会挑选最优、最少的组合,测试效率较高。常见应用于测试:属性配置、兼容性测试等。

(4) 当需要测试软件业务流程、业务逻辑时、首选场景法,该方法可以验证功能的正确性(基本流),软件的异常处理能力(备选流)。该方法是基于软件业务的重要测试方法。

(5) 当软件中有多个窗口,窗口之间存在着相关联系,可以使用测试大纲法。常应用于:测试窗口之间的跳转关系;软件的安装和删除(卸载)程序;清理功能点之间的层级关系。

补充:在实际测试时,经常会将2-4种测试方法综合起来测试。

posted @ 2019-06-10 21:53  不沉之月  阅读(561)  评论(0编辑  收藏  举报