软件测试基本理论

1、 软件的开发阶段划分程序员

一、 需求分析阶段面试

由需求分析师完成数据库

产出物:《需求文档》浏览器

二、 设计阶段架构

1) 概要设计分布式

产出物:《概要说明书》函数

2) 详细设计工具

产出物:《详细说明书》性能

通常是由系统架构师(分析师)完成单元测试

三、 编码阶段

程序员

注:通常公司只有产品文档和原型,,因此若是你的公司这些文档都有,那么请珍惜吧。。。。

常见面试题:哪一个阶段bug最多?哪一个阶段bug最小?

需求分析阶段引入的bug最多,其次是设计阶段,在编码阶段引入的bug的最少。

因此:

1)测试不能只测程序,文档也要测。

2)测试工做应该从开发开始就介入,而且应该贯穿整个开发周期始终。

注:身在小公司的我,不得不告诉大家,文档不须要测,通常是不须要编写测试用例的(测试我负责),可是咱们得要求本身编写用例,由于这家公司只是咱们测试路上的路人甲,并非咱们的重点。测试时间短暂,感受领导不过重视,测试可能没有测完,领导就喊着要上线。我但愿从我手上流出去的产品不说完美,可是尽可能没有那么多bug,总感受有那么点忧桑。

2、软件测试的阶段划分

1、单元测试

1)单元测试是最小的测试单位,通常就是一个功能模块,一个方法(函数),一个类等

2)单元测试依据的是《详细设计文档》 (单元测试是根据详细设计文档写功能)

3)单元测试以白盒测试为主,可能辅助以黑盒测试

4)单元测试可能要求测试人员编写驱动模块和桩模块

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

B)桩模块:模拟被测模块的下一级模块 (被被测模块调用的那个模块)

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

5)在实际工做中,单元测试每每由程序员完成--(节约成本,可是不严格)

2、集成测试

1)集成测试也叫组装测试,在单元测试的基础上把软件的功能模块逐步合并在一块儿进行的过程

2)功能合并的过程通常是逐步完成的,会造成不少的临时的版本

3)集成测试依据的是《概要设计文档》

4)集成测试阶段以黑盒测试为主,核心模块适当采用白盒测试。

  名词解释冒烟测试(版本验证测试)使用较少的人(1-3人,经验丰富)、较少的时间(0.5-2天),对软件的核心功能进行测试,若是软件核心功能没问题,就让全组投入全面测试,若是问题较多,,版本不稳定,就打回开发组。

5)集成测试中,拿到新的内部版本,基本工做思路:

首先要进行冒烟测试(有可能省略),验证该版本是否能够接受

返测 :对以前的bug,在本版本中解决的,检查是否经过。

回归测试 :对上一版本中的全部功能再测试一遍----验证修改的代码或新加了功能,之前的功能是否依然正常。

对该版本新组装的功能进行测试 ---- 但若是有些版本只是用于修复之前的bug,也有可能没有新功能。

3、系统测试

1)整个功能所有组装完成后,对模拟集成了硬件、软件的完整系统进行的测试。

2)系统测试的重点在于

A)整个系统在模拟真实环境下是否能够正确运行

B)系统与硬件、软件的兼容性问题

3)系统测试的依据是《需求文档》

4)系统测试所有为黑盒测试

5)在系统测试以前,通常会安排确认测试,主要确认:

A、确认该系统是否进入全面的系统测试阶段(能够理解为一次大的冒烟测试)

B、确认相关文档是否准备齐全(尤为是给用户的文档,参与认证的文档)

说明:确认测试通常时间相对较短,参与的人员较少。因此不把其与单元测试、集成测试、系统测试所并列

四、 用户验收阶段   --- 验收测试

UATUser  acceptance Testing)用户接受度测试

1) 用户参与的一个检查过程

2) 能够分为两个小阶段:

AAlpha测试 :在开发环境中,由最终用户对软件进行检查,通常常常由软件公司代用户完成。

BBeta测试 :在用户的实际环境中,由最终用户对软件进行检查

对于公共类软件(操做系统,游戏,输入法),通常把软件免费发放给最终用户,经过用户使用收集bug ---- 公测版本

3、软件测试的模型

1、软件测试模型表达的是测试阶段和开发阶段的对应关系。

2、两个常见模型

1V模型(重点

A、会画

 

B、优缺点

 优势:

1)开发和测试阶段划分明确,对应关系明确

2)测试阶段既包含单元测试(代码、专业级)又包含验收测试(用户级)

缺点:没有体现需求、设计阶段的文档测试工做,容易形成误解,觉得测试工做只是开发完成后的收尾工做

2W模型(了解)

 

A、能够理解为双V模型,第一个V是开发活动,第二个V是测试活动

B、比V 模型更增强调了文档测试阶段的重要,体现了测试对象不只是程序需求和设计一样须要测试。测试与开发是同步进行的

     CW模型更符合尽早测试和不断测试的原则

4、软件测试的分类

1按测试技术划分

1)黑盒测试 :(功能测试的基本特征)又叫功能测试、数据驱动测试,是不考虑程序内部结构,只需考虑输入和输出状况下进行的功能测试

2)白盒测试 :又称为结构测试,基于程序的测试。只考虑程序内部结构,而不去考虑程序功能的测试

3)灰盒测试 :结合黑盒和白盒测试的要素,对软件进行测试,通常先作黑盒测试,当发现有bug,对bug进行定位,对有可能有问题的代码再进行白盒测试的过程(在集成测试中常用)

补充说明

1)测试阶段中黑盒测试为主

2)白盒测试测试经常对风险较大,难度较大的模块进行测试

3)白盒测试要求测试人员懂得代码,效率较低,时间成本高

4)白盒测试也须要编写测试用例

2按是否须要运行代码划分

1)静态测试 :不须要运行程序

2)动态测试 :须要运行程序才能进行的测试

黑盒(功能)测试通常都是动态测试

白盒测试即有多是动态的,也有多是静态的

3) 静态测试包括:

A、 界面测试 :主要测实际界面与需求要求是否符合

B、 文档测试 :主要测试文档和说明是否真正符合

C、 代码测试 :主要测试代码是否符合相应的标准和规范

常见问题:静态的代码测试和白盒测试的区别:

(1) 白盒测试主要关注代码的逻辑功能实现,测试者必需要懂代码,要求写测试用例

(2) 静态代码测试主要关注代码的规范性、标准性,测试人员不须要懂代码,不须要写测试用例,只需参考代码审查单检查便可

3按软件的特性分类

1)功能测试 :

(1) 任何软件都必需要作功能测试

(2) 软件要先作功能测试,保证其功能正确。

分布式软件须要在功能正确的前提下,在考虑性能

(3) 功能测试分为:手工功能测试和功能自动化测试(须要借助于工具完成)

2)性能测试 :

1)分布式(c/sb/s)须要作性能测试

2)性能测试只有自动化(要借助工具完成)

4、其它(常见的名词术语)

1)返 测 :在新版本中对程序员修改的bug进行测试,验证bug是否被修改

2)回归测试 :对上个版本中的全部功能从新测试一遍,检验新版本中原有的功能是否依然正确,回归测试存在大量的重复性工做,因此企业会使用自动化工具实现

3)随机测试(猴子测试):在测试用例执行完成以后,对软件进行随意的测试的过程【只是时间充足时,对正常测试用例以外的补充测试】

4)兼容测试 :指对被测软件与硬件、软件之间的兼容性的测试,

兼容性测试能够分为三大类:

1)硬件兼容

A、与整机兼容

B、与外设兼容

2)软件兼容

A、操做系统

B、应用软件之间的兼容:杀毒软件,工具类软件

C、不一样浏览器的兼容

D、数据库的兼容

3)数据兼容

不一样版本间的数据兼容

5)测试流程(步骤)

1)需求 :阅读需求,理解需求

2)测试计划 :测试经理对整个项目作一个宏观的计划

3)设计测试用例

4)执行测试

5)记录测试执行结果,并填写《缺陷报告》,记录缺陷

6)跟踪管理缺陷

7)测试总结报告或测试评估报告

相关文章
相关标签/搜索