软件测试基础理论(重点)

测试基础理论

方法:理解的基础上,记住。
一、软件开发的阶段划分
1、需求分析阶段
由需求分析人员完成
《需求规格说明书》
2、概要设计阶段
3、详细设计阶段
由系统架构师/分析师完成
《概要设计说明书》
《详细设计说明书》
4、编码阶段
由开发人员完成
程序
问题:哪个阶段引入的bug最多?哪个阶段最少?
需求分析阶段引入的bug最多,其次是设计阶段,最少的是编码阶段。
由此得出结论:1)不应只测程序,文档也必须要测试2)测试应符合“尽早测试原则”和“不断测试原则”

二、软件测试的阶段划分
说明:没有包含需求和设计阶段的测试。
1、单元测试
1)单元测试是测试中的最小测试单位,通常一个窗口、功能、方法(函数)、类等都可以看成一个测试单元。
2)单元测试理论上使用白盒测试方法
扩展:在实际应用中,单元测试一般由开发人员完成–白盒(为了降低成本),但是测试质量会得不到保证,所以企业通常会采用(1)交换互测(2)开发测一轮(白盒),测试测第二轮(黑盒)的方式保证单元测试质量。
3)单元测试主要依据详细设计文档
4)桩模块和驱动模块
说明: 在单元测试中,测试者可能会需要编写桩模块和驱动模块。
驱动模块:模拟被测模块的上一级模块(调用被测被测模块)
桩模块:模拟被测模块的下一级模块(被“被测模块”调用的)
总结:驱动模块–>被测模块–>桩模块
2、集成测试(也叫组装测试)
1)在单元测试的基础上进行集成测试,就是将功能模块逐步合并,进行测试的过程。
2)集成测试的功能组装过程不是一蹴而就的,是逐步组装完成的,所以组装过程中会形成若干的临时版本。(迭代测试的过程)
3)集成测试阶段,测试方法主要为黑盒测试,但是重点功能,核心功能会辅助以白盒测试。
4)集成测试主要依据概要设计文档
5)冒烟测试
说明:在测试组拿到新的版本后,通常会先做“冒烟测试”,也就是“版本验证测试”
冒烟测试就是组织少量的测试人员(一般1-2人,经验丰富),花费少量的时间(0.5-2天),对被测版本的核心业务进行测试,如果核心功能没有问题,就全组展开全面测试,如果核心功能存在较大问题,版本不稳定,那么就将该版本返回开发组。
6)集成测试阶段,拿到一个新版本后,测试组的工作思路:
首先–做“冒烟测试”,验证是否接受该版本。
接下来–
返测–对已解决的bug进行的测试
回归测试–对上一个版本测过的所有功能,再测试一次。
最后–对该版本中新增加的功能进行测试。
(提示:有可能该版本是专门解决bug的版本,没有新功能,以上这些工作内容要实际情况实际分析,不是所有步骤都一定要做。)
3、系统测试
1)当程序组装完成后,进行系统测试,系统测试是对集成了软件和硬件的完整系统,进行模拟真实环境的测试过程。
2) 系统测试的测试重点:(1)完整系统的功能正确性(2)完整系统的兼容性
3)系统测试阶段:是黑盒测试方式。
4)系统测试阶段:主要依据需求文档
5)在系统测试之前,通常会进行“确认测试”,主要确认:
(1)确认软件可以进入到系统测试阶段中。
(2)确认相关的文档是否已经准备齐全。(重点是交付给用户的文档,和认证需要的文档)
说明:确认测试阶段通常参与人员人数和周期与其他4个阶段相比都较少,所以一般并不将它和其它4个阶段并列。
4、验收测试(UAT)
UAT: User Acceptance Testing ( 用户接受度测试)
1)用户对软件进行验收。检查。
2)验收测试阶段又分成两个小阶段:
(1)alpha测试阶段
理论上由用户到开发方指定的环境中(软件公司中)(此时软件公司对于用户所发现的bug,控制力较强,可以及时掌握并解决bug)进行软件的验收检查。
补充:实际中,用户经常不能亲自进行alpha测试,这时经常由软件公司找人替用户进行验收,或者用户自己请专业测试机构替他验收。

(2)beta 测试阶段
由最终用户在用户自己的使用环境中(软件公司对于用户发现的bug的控制力较弱)对软件进行检查验收。
例如:公共类软件(OS,输入法等),软件公司将软件(beta版)免费发放给最终用户,通过收集最终用户在使用中发现的问题,来收集bug。(公测版)
三、软件测试模型
1、软件测试模型是用来表示开发阶段和测试阶段(级别)的对应关系。常用的模型,如:v模型,w模型,H模型等。
2、V模型(常见面试题)
1)会画

2)优、缺点
优点:
(1)v 模型中开发阶段和测试阶段(级别)的划分清晰明确
(2)开发阶段和测试阶段(级别)的对应关系也清晰明确。
(3)V模型的测试阶段既包含最底层的单元测试(代码级,专业级),又包含最顶层的验收测试(用户级,界面级)
缺点:
1)v模型中缺少需求和设计阶段的测试内容,容易造成误解,测试只是开发后的收尾工作,但是实际上测试和开发是同步进行的。
2)v模型不能体现出尽早测试原则和不断测试原则。
3)v模型不能体现出程序要测,文档也必须要测。
3、w模型(了解)
1)w模型是双v模型,第一个v是完整的开发活动,第二个v是完整的测试活动。
2)w模型解决了v模型的哪些问题?
(1)w模型中加入了需求和设计阶段的测试内容。
(2)开发和测试活动是同步进行的,是平行的关系。
(3)w模型更符合尽早测试原则和不断测试原则。
(4)w模型能表现出文档和程序都需要测试。

四、软件测试分类(名词、术语)
1、按照测试技术分类:
1)黑盒测试:也叫功能测试,是不考虑软件的内部结构,在已知输入和输出的情况下,进行的功能性的测试。

2)白盒测试:也加结构测试,是不考虑软件的功能,而只是考虑软件内部结构的测试。–需要测试人员懂代码
3)灰盒测试:是结合了黑盒测试和白盒测试的要素,进行测试的测试技术,通常先黑盒测试发现bug,再通过白盒测试进一步调查~bug。(集成测试阶段,灰盒测试比较常用)

2、按程序是否需要运行划分:
1)静态测试
无需运行程序就可以测试。
例如:文档测试、界面测试、(静态)代码测试:检查代码是否符合规范和标准。

2)动态测试

需要运行程序才能进行测试,是动态测试。
例如:黑盒测试(功能测试)就是动态测试。
注意:白盒测试有时静态测试,有时动态测试。

问题:白盒测试和(静态)代码测试有什么区别?
1)白盒测试是针对程序的内部结构进行测试,关注的是软件的逻辑实现情况;白盒测试要求测试人员懂编程,并且白盒测试需要编写测试用例。
2)代码测试是检查程序的规范性和标准性;测试人员无需懂编程,只需要按照代码检查单,检查即可。
补充:白盒测试说明
1)白盒测试测试质量较高,但是测试效率低,成本高。
2)白盒测试对测试者要求较高,需要既要懂编程,又要懂测试,能够编写用例。
3、功能测试和性能测试
1)功能测试:所有的软件都需要先进行功能测试。
功能测试能手工测试,也能借助工具,进行自动化功能测试。

2)性能测试:分布式软件(B/S,C/S)需要进行性能测试.
 性能测试必须要借助工具,通过自动化的方式实现。

4、其它 (专业名词)
1)返测:对开发人员已解决的bug进行测试,为了验证bug是否被修复。
2)回归测试(回测):在当前版本中对上一个版本中测过的所有功能,再测试一遍。为了验证在当前版本中原有功能是否依然正常。回归测试中存在重复操作(用例被重复执行),在企业中推荐使用自动化测试来提高回归测试的效率。
3)随机测试(猴子测试)
也叫猴子测试(monkey testing),是在测试用例执行完成后,随机挑选数据进行测试。(效率低下)
随机测试只能是用例执行后的一种补充测试方式。
4)兼容测试
指所设计的软件,与硬件和其它软件之间的兼容性测试,主要分成以下3类:
(1)与硬件兼容
(a) 与整机兼容
(b)与外设兼容
(2)与软件兼容
(a)与操作系统(平台)兼容
(b)与其他应用软件的兼容
(c)浏览器兼容
(d)数据库兼容
(3)与数据兼容
软件不同版本之间的数据兼容

5)功能测试(黑盒测试)的常用测试方法有哪些?有什么选择(使用)策略?
等价类划分、边界值、因果图、判定表、正交排列法、测试大纲法、场景法
1)等价类划分和边界值法:适合测试输入数据的情况;等价类划分法在大量数据中抽取少量数据进行测试,边界值法常常和等价类划分法配合使用,对有效、无效、边界数据进行测试,形成一套比较完善的测试方案。
2)因果图或判定表法:
界面中多个控件之间存在组合或限制关系,使用因果图或判定表法可以逐个理清输入条件对应的输出结果,但是该类方法比较适合测试组合数量较少的情况。
正交排列法:当测试控件之间组合数量较多时,可以使用更优化的正交排列法,挑选最优、最少的组合进行测试。
3)测试大纲法:
当程序中存在多个窗口,并且多窗口存在复杂的关系时,可以使用测试大纲法理清窗口之间关系,该方法常用来测试:窗口间跳转关系,软件安装、删除程序等
4)场景法
场景法适合测试软件的业务流程和业务逻辑;是一种基于软件业务的测试方法;要求测试者将自己想象成最终用户,模拟用户使用软件的各种情景:主要模拟有效的场景(基本流)和无效的场景(备选流);
在实际测试中经常会有2-4种方法综合起来进行测试。

6)软件项目的测试流程?(重点)
(1)熟悉、分析需求
(2)制定测试计划
(3)设计测试 (分析、设计、编写用例)
(4)执行测试,记录测试结果
(5)记录缺陷,跟踪和管理缺陷
(6)测试总结

你可能感兴趣的:(软件测试)