共计 3050 个字符,预计需要花费 8 分钟才能阅读完成。
1 软件测试目标
测试的目标就是以起码的工夫和人力找出软件中潜在的各种谬误和缺点,证实软件的性能和性能与需要阐明相符,Glenford J.Myers
曾提出以下观点:
- 测试是为了证实程序有错,而不是证实程序无谬误
- 一个好的测试用例能发现至今未发现的谬误
- 一个胜利的测试是发现了至今未发现的谬误
软件测试的目标往往蕴含以下内容:
- 测试并不仅仅是为了找出谬误,通过剖析谬误产生的起因和谬误的产生趋势,能够帮忙我的项目管理者发现以后软件开发过程中的缺点,以便及时改良
- 测试帮忙测试人员设计有针对性的测试方法,改善测试的效率和有效性
- 没有发现错误的测试也是有价值的,残缺的测试是评定软件品质的一种办法
2 软件测试的准则
- 软件测试是证伪而非证真
- 尽早地和一直地进行软件测试
- 器重有效数据和非预期的测试
- 该当对每一个测试后果做全面查看
- 测试现场爱护和材料归档
- 程序员应防止查看本人的程序
- 充沛留神测试中的群集景象
- 用例要定期评审
3 软件测试分类
3.1 按测试阶段划分
能够分为:
- 单元测试:用于测验被测代码的一个很小的、明确的性能是否正确
- 集成测试:对通过单元测试的模块之间的依赖接口的关系图进行测试
- 确认测试:用于验证软件的有效性
- 零碎测试:将整个软件系统与计算机硬件、外设、支持软件、数据、人员等其余零碎元素联合起来进行测试
- 验收测试:最终用户参加测试的过程
3.2 按执行状态划分
能够分为:
- 动静测试:运行被测程序,查看运行后果与预期后果的差别,并剖析运行效率和健壮性等性能,由“结构测试实例、执行程序和分析程序的输入后果”组成
- 动态测试:对被测程序进行个性分析方法的总成,是指计算机不运行被测试的程序,而对程序和文档进行剖析和查看,包含走查、符号执行、需要确认等
3.3 依照测试技术划分
能够分为:
- 黑盒测试:也叫功能测试或数据驱动测试,测试时把程序看做不能关上的黑盒,齐全不思考程序内部结构和个性,对程序接口测试,检查程序性能是否依照需要规格说明书的规定失常应用,程序是否能适当地接管输出数据而产生正确的输入信息,并且放弃内部信息的完整性
- 白盒测试:又叫构造测试或逻辑驱动测试,用于检测产品外部的构造及测验程序中的每条通路可能依照预约要求正确工作
- 灰盒测试:介于白盒与黑盒测试之间,次要用于测试各个组件之间的逻辑关系是否正确,采纳桩驱动把各个函数依照肯定的逻辑串起来,达到在产品还没有界面的状况下的后果输入
一般来说,单元测试采纳白盒测试的办法,集成测试采纳灰盒测试的办法,而零碎测试和确认测试采纳黑盒测试的办法,黑盒测试与白盒测试比拟如下:
- 布局方面:黑盒测试用于功能测试,而白盒测试用于构造测试
- 性质:黑盒测试是一种确认(
Validation
)技术,而白盒测试是一种验证(Verification
)技术 - 长处:黑盒测试的长处包含从用户的角度登程、实用于各阶段测试、从产品性能角度测试、容易动手生成测试数据,而白盒测试的长处包含针对程序外部特定局部进行笼罩测试、可形成测试数据使特定程序局部失去测试、有肯定充分性的度量伎俩、可取得较多工具的反对
- 毛病:黑盒测试的毛病包含无奈测试程序外部特定局部、某些代码得不到测试、如果规格阐明谬误则无奈发现、不易进行充分性的测试,白盒测试的毛病包含无奈测试程序内部个性、通常不易生成测试数据、无奈对未实现规格阐明的局部进行测试、工作量大通常只用于单元测试
- 利用范畴:黑盒测试的利用范畴包含边界分析法、等价类划分法、决策表测试,白盒测试的利用范畴包含:语句笼罩、断定笼罩、条件笼罩、门路笼罩等
3.4 按执行主体划分
能够分为:
Alpha
测试:也叫验收测试或开发方测试,开发者和用户独特去检测与证实软件的实现是否满足软件设计阐明或软件需要规格阐明的要求Beta
测试:通常被认为是用户测试,通过用户大量应用来评估查看软件- 第三方测试:也叫独立测试,由第三方机构来进行的测试
4 软件测试模型
软件测试模型用于领导软件测试的实际,常见的有:
V 模型
W 模型
H 模型
X 模型
前置模型
4.1 V 模型
V 模型
反映了测试流动与开发流动间的关系,表明测试过程中存在的不同级别,并分明形容测试的各个阶段和开发过程的各个阶段对应关系。
- 左侧是开发阶段:从定义软件需要开始,把需要转换为概要设计和具体设计,最初造成程序代码
- 右侧是测试阶段:在代码编写实现后,从单元测试开始,顺次进行集成测试、零碎测试和客户验收测试
4.2 W 模型
W 模型
相比起 V 模型
,减少了软件各开发阶段中应同步进行的验证和确认流动。 W 模型
强调:
- 测试随同整个软件周期
- 测试对象不仅是程序,需要、设计也要测试
- 测试与开发同步进行
4.3 H 模型
H 模型
将测试流动齐全独立进去,使得测试筹备流动和测试执行流动清晰地体现进去,从而使得测试筹备与测试执行拆散,有利于资源调配,减低老本,提高效率。
4.4 X 模型
- 右边:形容的是针对独自程序片段进行的编码测试,尔后将进行频繁的交接,通过集成最终成为可执行程序
- 左边:上方定位了已通过集成测试的成品进行封板并提交给用户,也可作为更大规模和范畴内集成的一部分,下方定位了探索性测试
4.5 前置模型
前置模型将测试和开发紧密结合,长处如下:
- 开发和测试相结合
- 对每一个交付内容进行测试
- 让验收测试和技术测试放弃互相独立
- 重复交替的开发和测试
- 引入新的测试理念
4.6 测试模型各自特点
V 模型
:强调了整个软件我的项目开发中须要经验的若干个测试级别,每个级别都与一个开发阶段绝对应,但它没有明确指出应该对需要、设计进行测试W 模型
:对V 模型
进行了补充,强调了测试计划等工作的后行和堆零碎需要和软件设计的测试,但和V 模型
一样,没有专门针对软件测试的流程予以阐明H 模型
:体现了测试是独立的,就每一个软件的测试细节来说,都有一个独立的操作流程,只有测试前提具备了,就能够开始进行测试X 模型
:体现出测试设计、测试回溯的过程,帮忙有教训的测试人员在测试计划之外发现软件谬误前置模型
:前置模型将测试和开发紧密结合,重复交替第执行
5 测试用例
5.1 定义
测试用例是指对一项特定的软件产品进行测试工作的形容,体现测试计划、办法、技术和策略,内容包含:
- 测试指标
- 测试环境
- 输出数据
- 预期后果
- 测试脚本
等,最终造成文档。
一个测试用例具备以下属性:
- 优先级秩序
- 目标性
- 所属的范畴
- 阶段性
- 状态性
- 时效性
- 所有者、日期等个性
5.2 测试用例的设计办法
分为有白盒和黑盒测试绝对应的设计办法,比方,黑盒测试的用例设计能够采纳:
- 等价类划分
- 因果图法
- 边值剖析
- 用户界面测试
- 配置测试
- 装置选项验证
等,而白盒测试用例的设计办法如下:
- 采纳逻辑笼罩等构造的测试用例设计办法
- 基于程序结构的域测试用例设计办法
- 依据对象状态或期待状态变动来设计测试用例
- 基于程序谬误的变异来设计测试用例
- 基于代数运算符号测试的测试用例设计办法
5.3 测试用例设计误区
- 把测试用例设计等同于测试输出数据的设计:测试用例中输出数据的确定只是测试用例设计的一个子集,测试用例设计还包含如何依据测试需要、设计规格说明书等文档设计用例的执行策略、执行步骤、预期构造、组织治理模式等问题
- 测试用例设计得越具体越好:编写过于具体的测试用例会消耗大量的资源,必须剖析被测试软件的特色,使用无效的测试用例设计伎俩,尽量应用较少的测试用例,同时满足正当的测试笼罩
- 谋求测试用例设计“一步到位”:任何软件我的项目的开发过程都处于一直变动的过程中,在测试过程中可能发现设计测试用例时考虑不周的中央,须要欠缺,也有可能用户对软件性能提出新的需要变更,须要依据软件变动对测试用例进行调整
- 将多个测试用例混在一个用例中:一个测试用例蕴含许多内容很容易引起混同,从而使得测试后果很难记录
正文完