- 网页设计
- 整站网页设计
- 网站模板设计
- 网站开发
- 综合门户网开发
- 企业网站开发
- 电子商务网站开发
- 资讯网站开发
- 团购网站开发
- 手机网站开发
- 宣传展示网站
- 网站功能开发
- 网站特效制作
- 应用软件开发
- 手机应用软件
- 计算机应用软件
- 软件美工
- 程序修改
- 仿网站开发
- 脚本插件
- 软件测试
- 网站改版
- 企业办公系统
- 软件汉化
- 软件界面皮肤
- 企业办公系统界面
- 应用移植
- Android开发
- IOS开发
- 应用汉化
- 安卓系统定制
- 网店装修
测试反模屎有效规避常见的92种测试陷阱(软件和系统工程领域专家亲笔撰写,软件工程大师、畅销书作者Capers Jones作序倾情推荐.
- 产品名称:测试反模式
- 书名:测试反模式
《测试反模屎有效规避常见的92种测试陷阱》
软件和系统工程领域专家亲笔撰写,软件工程大师、畅销书作者Capers Jones作序倾情推荐,是软件测试领域不可多得的参考指南 以反模式方尸深入剖析92种常见测试陷阱,详细阐述了如何避免陷入这些陷阱、在陷入的时候识别这些陷阱,以及在逃脱陷阱的同时将负面后果*小化本书赞誉
译者序
序
前言
第1章 概述1
1.1 什么是测试1
1.2 测试和V模型1
1.3 什么是缺陷5
1.4 为何测试很关键5
1.5 测试的局限性6
1.6 什么是测试陷阱8
1.7 陷阱分类8
1.8 陷阱描述9
第2章 测试陷阱概要介绍10
2.1 一般测试陷阱10
2.1.1 测试计划和进度陷阱10
2.1.2 利益相关者参与和承诺的陷阱10
2.1.3 管理相关的测试陷阱11
2.1.4 人员配备陷阱12
2.1.5 测试过程陷阱12
2.1.6 测试工具和环境陷阱13
2.1.7 测试沟通陷阱14
2.1.8 需求相关测试陷阱15
2.2 测试类型相关陷阱16
2.2.1 单测试陷阱16
2.2.2 集成测试陷阱16
2.2.3 专业工程测试陷阱17
2.2.4 系统测试陷阱18
2.2.5 系统的系统(SoS)测试陷阱18
2.2.6 回归测试陷阱19
第3章 测试陷阱的详细描述20
3.1 共同的负面后果20
3.2 一般建议21
3.3 一般测试陷阱22
3.3.1 测试计划和进度陷阱22
3.3.2 利益相关者参与和承诺陷阱34
3.3.3 管理相关的测试陷阱40
3.3.4 人员配备陷阱51
3.3.5 测试过程陷阱59
3.3.6 测试工具和环境陷阱83
3.3.7 测试沟通陷阱101
3.3.8 需求相关的测试陷阱111
3.4 测试类型相关的陷阱126
3.4.1 单测试陷阱126
3.4.2 集成测试陷阱130
3.4.3 专业工程测试陷阱136
3.4.4 系统测试陷阱159
3.4.5 系统的系统(SoS)测试陷阱162
3.4.6 回归测试陷阱173
第4章 结论184
4.1 将来的工作184
4.2 维护陷阱列表185
附录A 术语表186
附录B 缩略语191
附录C 注释193
附录D 参考201
附录E 计划检查单202第1章
Chapter 1
概 述
1.1 什么是测试
测试是在特定的前提条件下(例如,预测试模式、状态、存储的数据和外部条件)来运行系统、子系统或组件的活动,通过特定的输入,将它的实际行为(输出和后置条件)与要求或预期的行为进行比较。
测试不同于其他验证和确认方法(例如,分析、演示和审查),它是一个动态的(而不是静态的)分析方法,包含了被测试对象的实际运行。
测试有以下目标。
主要目标:
通过以下活动使被测系统(SUT)得到改进:
“打破”它(即通过造成故障和失效)
暴露缺陷,输可以被修复
次要目标:
基于充足的客观证据,提供对于SUT以下方面的足够信心:
质量
系统的质量不只是没有缺陷或者它的正确性(在满足其需求方面)。系统还必须具备相关的质量特性和属性的必要级别,例如,可用性、容量、可扩展性、可维护性、性能、可移植性、可靠性、健壮性、安全性、保密安全性和易用性。
用途的适用性
装运、部署或投入运行的准备度
1.2 测试和V模型
图1.1展示了一种常见的系统工程建模方屎传统的系统工程活动的V模型。V的左侧是将用户问题分解成小且可管理的部件的分析活动。类似地,V的右侧显示将部件合成(并测试)为能解决用户问题的系统的活动。
图1.1 系统工程活动的传统单V模型
传统的V模型虽然有用,但从测试人员的角度来看,它并不能真正代表系统工程。接下来的3个图展示了3个更加详细的V模型,它们更好地把握了系统工程的测试方面。
图1.2展示了面向工作产品而不是活动的V模型。具体而言,这些是主要的可执行的工作产品,因为测试涉及了工作产品的执行。在这个例子中,V的左侧展示了更加详细的可执行模块的分析,而V的右侧展示了相应的实际系统的增量和迭代的合成。这款V模型显示可执行的东西都是经过测试的,而不是生成它们的通用的系统工程活动。
图1.2 可测试工作产品的单V模型
图1.3展示了双V模型,它在单V模型上增加了相应的测试[Feiler 2012]。关键点有:
每一个可执行的工作产品都需要测试。测试不需要(而且事实上不应该)限制在所实施的系统和它的部件中。测试任何可执行的需求、架构和设计同样重要。这样才可以在转移到实际系统和其部件之前,发现和修复相关的缺陷。这通常包括对以下内容的测试:可执行需求、架构或者通过建模语言(通常是基于状态且充分正式的)建立的被测系统(SUT)的设计模型,如SpecTRM-RL,结构分析和设计语言(AADL)以及程序设计语言(PDL);SUT的模拟;SUT的可执行的原型。
测试应在相应的工作产品创建时创建和执行。带有双向头的短头是用来表明:可以先开发可执行的工作产品并用于驱动测试的创建;可以使用测试驱动开发(TDD),在这种情况下,测试在它们所测的工作产品之前开发。
该模型的顶行使用测试来确认系统是否满足其利益相关者的需求(即建立了正确的系统)。相反,模型底部4行使用测试来验证该系统是否正确地建立(即架构符合需求、设计符合架构、实施符合设计等)。
最后,在实践中,底行的两侧通常被整合,从而使单设计模型纳入单位,并且编程语言用作程序设计语言(PDL)。同样,单设计模型测试被纳入单测试,使得同一单测试可验证单设计和它的实现。
图1.4记录了三重V模型,其中增加了额外的验证活动来验证测试活动的正常进行。这是为了提供证据表明测试是充分完整的,不会产生大量的假阳性和假阴性的结果。
虽然V模型看起来是展现一个连续的瀑布开发周期,它们也可以用来展现一个渐近的(即增量、迭代和并发)开发周期,结合许多小的、可能重叠的V模型。然而,在大型、复杂系统的敏捷开发中应用V模型时,存在一些潜在的复杂性,需要超过一个简单的小V模型的集合,比如:
在架构上重要的需求和相关的架构需要尽可能快地敲定,因为所有后续的增量依赖于架构,一旦最初的增量是基于它的,再做修改是非常困难和昂贵的。
多个跨职能的敏捷团队将同时工作于不同的组件和子系统,所以他们的增量必须在团队间进行协调,以产生可以集成和发布的一致的、可测试的组件和子系统。
最后,有趣的是,要注意这些V模型不只是适用于正在开发的系统,同样也适用于该系统的测试环境或测试床及其测试实验室或设备的开发。《测试反模屎有效规避常见的92种测试陷阱》系统归纳了在日常的开发过程中容易出现的92种测试陷阱,从描述、可能出现之处、典型症状、潜在的负面后果、潜在原因、建议和相关的陷阱等多个方面探讨了这些陷阱,可帮助测试人员、技术经理和其他利益相关者避免陷入这些陷阱、在陷入的时候识别这些陷阱,以及在逃脱陷阱的同时将负面后果最小化。
《测试反模屎有效规避常见的92种测试陷阱》共分4章:第1章讲解测试、缺陷和测试陷阱等重要概念,并介绍如何对测试陷阱进行分类和记录,以便能更容易地找到并理解它们;第2章总结了92种常见的测试陷阱,并对每种陷阱进行了简要介绍,以帮助读者轻松寻找并识别出相关的陷阱;第3章是本书的核心内容,详细讲解经常发生的92种测试陷阱,包括名字、描述、适用性、典型症状、潜在的负面后果、潜在原因和相关的规避陷阱或限制后果的建议;第4章提供了关于测试陷阱的整体总结,然后简单地介绍了未来可能使测试陷阱分类更加有用的研究。此外,附录部分还提供了词汇表、缩略语、注释、参考和计划检查单,帮助读者快速了解大部分陷阱,指导实际工作。......Donald G. Firesmith 软件工程研究所(SEI)软件解决方案部门首席工程师,帮助美国国防部等政府机构采购大型的、复杂的软件依赖系统。作为国际公认的软件和系统工程专家,他在商业及政府软件和系统开发方面有35年的行业经验,擅长于需求工程、系统与软件架构工程、面向对象开发、测试、质量工程,以及包括情境方法工程的过程改进。他还发表过数十篇技术文章,在很多国际会议上发表演讲,并且还曾担任多个软件会议的程序员委员会主席或者委员。他的众多论文和报告可从他的个人网站下载:http://picimg.witcp.com/pic/donald.firesmith.net 。
译者简介
王文慧 六西格玛黑带,CMMI高成熟度评估师,ISO9000/20000/27001审计员,CSM、PMP、管理3.0_敏捷领导力认证讲师。现任惠普公司高级质量经理,曾为金融、交通、IT等行业客户提供质量咨询服务,拥有十余年软件行业经验。她拥有浙江大学电子工程学士学位,澳大利亚新南威尔士大学计算机硕士学位。_310x310.jpg
软件和系统工程领域专家亲笔撰写,软件工程大师、畅销书作者Capers Jones作序倾情推荐,是软件测试领域不可多得的参考指南 以反模式方尸深入剖析92种常见测试陷阱,详细阐述了如何避免陷入这些陷阱、在陷入的时候识别这些陷阱,以及在逃脱陷阱的同时将负面后果*小化本书赞誉
译者序
序
前言
第1章 概述1
1.1 什么是测试1
1.2 测试和V模型1
1.3 什么是缺陷5
1.4 为何测试很关键5
1.5 测试的局限性6
1.6 什么是测试陷阱8
1.7 陷阱分类8
1.8 陷阱描述9
第2章 测试陷阱概要介绍10
2.1 一般测试陷阱10
2.1.1 测试计划和进度陷阱10
2.1.2 利益相关者参与和承诺的陷阱10
2.1.3 管理相关的测试陷阱11
2.1.4 人员配备陷阱12
2.1.5 测试过程陷阱12
2.1.6 测试工具和环境陷阱13
2.1.7 测试沟通陷阱14
2.1.8 需求相关测试陷阱15
2.2 测试类型相关陷阱16
2.2.1 单测试陷阱16
2.2.2 集成测试陷阱16
2.2.3 专业工程测试陷阱17
2.2.4 系统测试陷阱18
2.2.5 系统的系统(SoS)测试陷阱18
2.2.6 回归测试陷阱19
第3章 测试陷阱的详细描述20
3.1 共同的负面后果20
3.2 一般建议21
3.3 一般测试陷阱22
3.3.1 测试计划和进度陷阱22
3.3.2 利益相关者参与和承诺陷阱34
3.3.3 管理相关的测试陷阱40
3.3.4 人员配备陷阱51
3.3.5 测试过程陷阱59
3.3.6 测试工具和环境陷阱83
3.3.7 测试沟通陷阱101
3.3.8 需求相关的测试陷阱111
3.4 测试类型相关的陷阱126
3.4.1 单测试陷阱126
3.4.2 集成测试陷阱130
3.4.3 专业工程测试陷阱136
3.4.4 系统测试陷阱159
3.4.5 系统的系统(SoS)测试陷阱162
3.4.6 回归测试陷阱173
第4章 结论184
4.1 将来的工作184
4.2 维护陷阱列表185
附录A 术语表186
附录B 缩略语191
附录C 注释193
附录D 参考201
附录E 计划检查单202第1章
Chapter 1
概 述
1.1 什么是测试
测试是在特定的前提条件下(例如,预测试模式、状态、存储的数据和外部条件)来运行系统、子系统或组件的活动,通过特定的输入,将它的实际行为(输出和后置条件)与要求或预期的行为进行比较。
测试不同于其他验证和确认方法(例如,分析、演示和审查),它是一个动态的(而不是静态的)分析方法,包含了被测试对象的实际运行。
测试有以下目标。
主要目标:
通过以下活动使被测系统(SUT)得到改进:
“打破”它(即通过造成故障和失效)
暴露缺陷,输可以被修复
次要目标:
基于充足的客观证据,提供对于SUT以下方面的足够信心:
质量
系统的质量不只是没有缺陷或者它的正确性(在满足其需求方面)。系统还必须具备相关的质量特性和属性的必要级别,例如,可用性、容量、可扩展性、可维护性、性能、可移植性、可靠性、健壮性、安全性、保密安全性和易用性。
用途的适用性
装运、部署或投入运行的准备度
1.2 测试和V模型
图1.1展示了一种常见的系统工程建模方屎传统的系统工程活动的V模型。V的左侧是将用户问题分解成小且可管理的部件的分析活动。类似地,V的右侧显示将部件合成(并测试)为能解决用户问题的系统的活动。
图1.1 系统工程活动的传统单V模型
传统的V模型虽然有用,但从测试人员的角度来看,它并不能真正代表系统工程。接下来的3个图展示了3个更加详细的V模型,它们更好地把握了系统工程的测试方面。
图1.2展示了面向工作产品而不是活动的V模型。具体而言,这些是主要的可执行的工作产品,因为测试涉及了工作产品的执行。在这个例子中,V的左侧展示了更加详细的可执行模块的分析,而V的右侧展示了相应的实际系统的增量和迭代的合成。这款V模型显示可执行的东西都是经过测试的,而不是生成它们的通用的系统工程活动。
图1.2 可测试工作产品的单V模型
图1.3展示了双V模型,它在单V模型上增加了相应的测试[Feiler 2012]。关键点有:
每一个可执行的工作产品都需要测试。测试不需要(而且事实上不应该)限制在所实施的系统和它的部件中。测试任何可执行的需求、架构和设计同样重要。这样才可以在转移到实际系统和其部件之前,发现和修复相关的缺陷。这通常包括对以下内容的测试:可执行需求、架构或者通过建模语言(通常是基于状态且充分正式的)建立的被测系统(SUT)的设计模型,如SpecTRM-RL,结构分析和设计语言(AADL)以及程序设计语言(PDL);SUT的模拟;SUT的可执行的原型。
测试应在相应的工作产品创建时创建和执行。带有双向头的短头是用来表明:可以先开发可执行的工作产品并用于驱动测试的创建;可以使用测试驱动开发(TDD),在这种情况下,测试在它们所测的工作产品之前开发。
该模型的顶行使用测试来确认系统是否满足其利益相关者的需求(即建立了正确的系统)。相反,模型底部4行使用测试来验证该系统是否正确地建立(即架构符合需求、设计符合架构、实施符合设计等)。
最后,在实践中,底行的两侧通常被整合,从而使单设计模型纳入单位,并且编程语言用作程序设计语言(PDL)。同样,单设计模型测试被纳入单测试,使得同一单测试可验证单设计和它的实现。
图1.4记录了三重V模型,其中增加了额外的验证活动来验证测试活动的正常进行。这是为了提供证据表明测试是充分完整的,不会产生大量的假阳性和假阴性的结果。
虽然V模型看起来是展现一个连续的瀑布开发周期,它们也可以用来展现一个渐近的(即增量、迭代和并发)开发周期,结合许多小的、可能重叠的V模型。然而,在大型、复杂系统的敏捷开发中应用V模型时,存在一些潜在的复杂性,需要超过一个简单的小V模型的集合,比如:
在架构上重要的需求和相关的架构需要尽可能快地敲定,因为所有后续的增量依赖于架构,一旦最初的增量是基于它的,再做修改是非常困难和昂贵的。
多个跨职能的敏捷团队将同时工作于不同的组件和子系统,所以他们的增量必须在团队间进行协调,以产生可以集成和发布的一致的、可测试的组件和子系统。
最后,有趣的是,要注意这些V模型不只是适用于正在开发的系统,同样也适用于该系统的测试环境或测试床及其测试实验室或设备的开发。《测试反模屎有效规避常见的92种测试陷阱》系统归纳了在日常的开发过程中容易出现的92种测试陷阱,从描述、可能出现之处、典型症状、潜在的负面后果、潜在原因、建议和相关的陷阱等多个方面探讨了这些陷阱,可帮助测试人员、技术经理和其他利益相关者避免陷入这些陷阱、在陷入的时候识别这些陷阱,以及在逃脱陷阱的同时将负面后果最小化。
《测试反模屎有效规避常见的92种测试陷阱》共分4章:第1章讲解测试、缺陷和测试陷阱等重要概念,并介绍如何对测试陷阱进行分类和记录,以便能更容易地找到并理解它们;第2章总结了92种常见的测试陷阱,并对每种陷阱进行了简要介绍,以帮助读者轻松寻找并识别出相关的陷阱;第3章是本书的核心内容,详细讲解经常发生的92种测试陷阱,包括名字、描述、适用性、典型症状、潜在的负面后果、潜在原因和相关的规避陷阱或限制后果的建议;第4章提供了关于测试陷阱的整体总结,然后简单地介绍了未来可能使测试陷阱分类更加有用的研究。此外,附录部分还提供了词汇表、缩略语、注释、参考和计划检查单,帮助读者快速了解大部分陷阱,指导实际工作。......Donald G. Firesmith 软件工程研究所(SEI)软件解决方案部门首席工程师,帮助美国国防部等政府机构采购大型的、复杂的软件依赖系统。作为国际公认的软件和系统工程专家,他在商业及政府软件和系统开发方面有35年的行业经验,擅长于需求工程、系统与软件架构工程、面向对象开发、测试、质量工程,以及包括情境方法工程的过程改进。他还发表过数十篇技术文章,在很多国际会议上发表演讲,并且还曾担任多个软件会议的程序员委员会主席或者委员。他的众多论文和报告可从他的个人网站下载:http://picimg.witcp.com/pic/donald.firesmith.net 。
译者简介
王文慧 六西格玛黑带,CMMI高成熟度评估师,ISO9000/20000/27001审计员,CSM、PMP、管理3.0_敏捷领导力认证讲师。现任惠普公司高级质量经理,曾为金融、交通、IT等行业客户提供质量咨询服务,拥有十余年软件行业经验。她拥有浙江大学电子工程学士学位,澳大利亚新南威尔士大学计算机硕士学位。_310x310.jpg
热门设计服务