软件测试基础

软件测试的目的、过程模型及测试分类

1、定义:

首先要明确测试的定义,所谓测试,就是以检验产品是否满足需求为目标。

IEEE 标准的定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验;它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

2、软件测试的目的:

测试是程序的执行过程,目的在于发现错误;
一个好的测试用例在于发现了至今未发现的错误;
一个成功的测试是发现了 至今未发现的错误的测试;

3、软件测试原则

所有的软件测试都应追溯到用户需求
应当把“尽早地和不断地进行软件测试”作为测试者的座右铭
完全测试是不可能的,测试需要终止
测试无法显示软件潜在的缺陷;
充分注意测试中的群集现象
程序员应避免检查自己的程序
尽量避免测试的随意性

4、软件测试对象

程序开发过程中的各个文档、源程序

5、软件测试过程模型

v模型

是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;
局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现

w模型

在V模型的基础上,增加千开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用尽早的发现问题。
局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整。

H模型

在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同而分层次进行

测试模型的使用:

在实际工作中应灵活地运用各种模型的优点:
V模型 强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试
W模型 补充了V模型中忽略的内容,强调了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明
H模型 强调测试是独立的,只要测试准备完成,就可以执行测试

6、按开发的过程——测试分类(单元测试、集成测试、确认测试、系统测试、验收测试)

单元测试

 定义  又称模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作;可以从程序的内部结构出发设计测试用例,多个模块测试可以平行地独立进行测试
目的   发现模块内部可能存在的各种差错
内容   模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
步骤   利用设计文档设计测试用例;创建被测模块的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试

集成测试

 定义  又称组装测试或联合测试,在单元测试基础上,将所有模块按概要设计和详细设计进行组装
目的   发现模块连接中的接口可能存在的各种差错
内容   穿越模块之间的数据是否会丢失;一个模块组装后是否会对另一模块或其他模块存在影响;各个子功能组装在一起是否会达到预期的父功能;全局数据结构是否有问题;单个模块的错误累  积起来是否会放在
组装方法  一次性组装方式,非增殖式方式也叫整体拼装,对模块分别测试然后将所有模块组装;第二种增殖式组装方式,可以是自顶向下或自底向上以及混合增殖方式
完成标志  成功地执行了测试计划中规定的所有测试用例;修正了所发现的错误;测试结果通过专门小组的评审

确认测试

 目的          验证软件的功能和性能及其他特性是否与用户的要求一致
测试内容    有效性测试 运行黑盒测试方法验证所测软件是否满足需求规格说明书列出的需求;所有文档正确且便于使用;软件可移植性、易用性、兼容性进行测试;软件配置复查 保证软件配置的所有成分都齐全

系统测试

 目的          验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试
测试内容    在真实或模拟系统运行环境下,检查完整的程序系统能否和系统(硬件设备、网络、系统软件)正确配置、连接,满足用户需求

验收测试

测试内容   根据任务书或合同、供需双方约定的验收依据文档进行对整个系统的测试与评审,确认是否接收或拒绝系统;

 7、按实施组织——测试分类(开发方、用户、第三方)

开发方

通常也叫‘验证测试’或‘Α α测试’,在软件开发环境中,开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求 (可控)

用户

在用户的应用环境下,用户检测与核实软件实现是否符合自己预期的要求。Β β测试通常被认为是用户测试,把软件有计划地免费地分发到目标市场,让用户大量使用、评价检查软件(不可控)

第三方

由第三方测试机构来进行的测试,也称独立测试

8、按测试技术——测试分类(黑盒、白盒、灰盒或静态、动态)

动态测试
通过人工或使用工具运行程序进行检查,分析程序的执行状态和程序的外部表现

静态测试
不运行程序,能过人工对程序和文档进行分析与检查,包括走查、符号执行、需求确认等

黑盒测试
又称功能测试,通过运行程序发现其缺陷和错误,在程序界面处进行测试

白盒测试
通过对程序内部结构的分析、检测来寻找问题,检查程序的结构及路径是否正确,检查程序的内部动作是否按照设计说明的规定正常进行

灰盒测试
介于白盒和黑盒测试之间,关注输出对于输入的正确性,也关注程序的内部结构,但没有白盒测试那样详细、完整

总结:

本次内容先到这,测试种类过多,导致测试及非测试人员老是谈不到一个点,因此列出此三类,希望此文对大家梳理分类有帮助。

 

posted @ 2021-10-28 10:43  攻城狮-tester  阅读(56)  评论(0编辑  收藏  举报