|
|
|
|
移动端

1.1 基本概念

《软件测试:一个软件工艺师的方法(原书第4版)》第1章测试概述,本章给出软件测试的总体知识框架。本节为大家介绍基本概念。

作者:马琳/李海峰 译来源:机械工业出版社|2017-11-15 16:51

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

第1章 测试概述

为什么要测试?最主要的目的有两个:一是对质量或可接受性做出评判,二是发现存在的问题。之所以要测试,是因为人经常会出错,特别是在软件领域和采用软件控制的系统中,这个问题尤为突出。本章给出软件测试的总体知识框架。

1.1 基本概念

在许多软件测试方面的文献中,名词术语的使用都比较混乱(有时候前后不统一),究其原因,可能是因为测试技术在近几十年中不断地演化进步,而且文献作者的造诣也各有千秋。国际软件测试认证委员会(ISTQB)提出了一个全面的测试术语列表(见http://www.istqb.org/downloads/glossary.html)。全书所采用的术语同ISTQB术语表一致,并且也符合电子电气工程师学会(IEEE)计算机协会1983年所颁布的技术标准(IEEE,1983)。这里我们首先来研究几个有用的术语。

错误(error):人是会出错的。错误的同义词是过失(mistake)。编程时出的错我们称之为bug。错误很容易传递和放大,比如需求分析时出的错在系统设计时有可能会被放大,而且在编码时还会被进一步放大。

故障(fault):故障是错误的后果。更确切地说,故障是错误的具体表现形式,比如文字叙述、统一建模语言(UML)图表、层次结构图、源代码等。类似于把编程错误称为bug,故障的一个很好的同义词是缺陷(defect)(见ISTQB术语表)。故障可能难以捕获。比如一个遗漏错误所导致的故障可能只是在表象上丢掉了一些应有的内容。这里给我们的启发是有必要把故障进一步细分为过失故障和遗漏故障。如果在表象中添加了不正确的信息,这是过失故障;而未输入正确的信息,则是遗漏故障。在这两类故障中,遗漏故障更难检测和纠正。

失效(failure):代码执行时发生故障就会导致失效。失效具有两个很微妙的特征:

1)失效只出现在程序的可执行表象中,通常是源代码,确切地说是加载后的目标代码;2)这样定义的失效只和过失故障有关。那么如何处理遗漏故障所对应的失效呢?进一步说,对于不轻易被执行的故障,或者长期不执行的故障,情况又会怎样呢?实施代码审查(见第22章)能够找出故障来避免失效。实际上,好的代码审查同样能检查出遗漏故障。

事故(incident):当失效发生时,用户(或客户,测试人员)可能明显察觉到,也可能察觉不到。事故是与失效相关联的症状,它警示用户有失效发生了。

测试(test):测试显然要考虑到错误、故障、失效和事故等诸多问题。测试就是利用测试用例来试验软件。测试有两个明确的目标:找出失效和证实软件执行的正确性。

测试用例(test case):每个测试用例都有一个用例标识,并针对一项程序行为。每个测试用例还包括一组输入和期望输出。

图1-1给出了一个软件测试的生命周期模型。从图中可以看出,在软件开发阶段,有三个地方可能会产生错误,由此引发的故障将会传递到后续开发过程中。故障解决阶段实际上也是一处可能产生错误(以及新故障)的地方。如果实施了一个修复操作会导致原先正确的软件出现异常行为,这样的修复就是不完善的。本书后面在讨论回归测试时还要进一步研究这个问题。

从这一系列术语可以看出,测试用例在测试中占核心地位。测试的过程还可以进一步细分为若干独立的步骤:测试计划制订、测试用例开发、测试用例运行,以及测试结果评估等。本书的重点就是研究如何构造有效的测试用例集合。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

安全模式:J2EE、Web服务和身份管理最佳实践与策

本书全面阐述Java应用安全的基本知识并介绍一种强大的结构化安全设计方法;介绍独立于厂商的安全架构;列出详细的评估核对表以及23种经过实...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊