软件测试与质量保证
2013-1
奈克 (Kshirasagar Naik)、特里帕蒂 (Priyadarshi Tripathy)、郁莲、 等 电子工业出版社 (2013-01出版)
郁莲
《软件测试与质量保证:理论与实践》是有关软件测试与质量保证的一本理想入门教材,全书共分18章,主要内容包括测试的基本概念、程序测试理论、单元测试、控制流测试、数据流测试、域测试、系统集成测试、系统测试分类、功能测试、从有限状态机模型生成测试、系统测试设计、系统测试计划与自动化、系统测试的执行、验收测试、软件可靠性、测试团队的组织结构、软件质量及成熟度模型等。《软件测试与质量保证:理论与实践》的两位作者奈克、特里帕蒂在软件测试方面有着丰富的实践经验,全书既有侧重测试理论的概念讲解,也有实际应用的经验总结。
《软件测试与质量保证:理论与实践》既可作为高等院校相关专业软件测试、质量保证、软件工程等课程的教材,也可作为软件测试爱好者的自学用书。对于那些希望增强软件测试方面知识的程序员、软件项目经理和软件开发团队的其他人员,《软件测试与质量保证:理论与实践》也具有很好的参考价值。
作者:(加拿大)奈克(Kshirasagar Naik) (美国)特里帕蒂(Priyadarshi Tripathy) 译者:郁莲 等 奈克(Kshirasagar Naik),是加拿大滑铁卢大学电气与计算机工程学院的副教授。此前,他是印度班加罗尔地区Wipro科技公司的一名软件开发工程师。Naik博士在软件测试领域的很多杂志及会议上发表过大量的文章。Priyadarshi Tripathy博士是NEC美国实验室有限公司的一名资深经理,他负责设计、协调和领导基于网格存储的应用程序的软件测试。Tnpathy博士曾在Nortel Nelnorks、Cisco Systems和Airvana等公司从事软件测试与质量保证的工作,也发表过很多软件测试领域的文章。
第1章 基本概念和预备知识 1.1质量革命 1.2软件质量 1.3软件测试的作用 1.4验证和确认 1.5失败、错误、故障和缺陷 1.6软件可靠性的概念 1.7测试的目标 1.8什么是测试用例 1.9期望结果 1.10完备测试的概念 1.11测试的核心问题 1.12测试活动 1.13测试阶段 1.14测试用例选择的信息来源 1.15白盒测试与黑盒测试 1.16测试计划和设计 1.17监测并度量测试执行 1.18测试工具和自动化 1.19测试团队的组织和管理 1.20本书概述 参考文献 习题 第2章 程序测试理论 2.1测试理论中的基本概念 2.2G00denough和Gerhart理论 2.2.1基本概念 2.2.2测试理论 2.2.3程序错误 2.2.4可靠性条件 2.2.5理论的缺点 2.3Weyuker和Ostrand理论 2.4Gourlay理论 2.4.1几个定义 2.4.2测试方法的能力 2.5测试的足够性 2.6测试的局限性 2.7总结 文献综述 参考文献 习题 第3章 单元测试 3.1单元测试的概念 3.2静态单元测试 3.3缺陷预防 3.4动态单元测试 3.5变异测试 3.6调试 3.7极限编程中的单元测试 3.8JUnit:单元测试框架 3.9单元测试工具 3.10总结 文献综述 参考文献 习题 第4章 控制流测试 4.1基本概念 4.2控制流测试概述 4.3控制流图 4.4控制流图中的路径 4.5路径选择标准 4.5.1全路径覆盖原则 4.5.2语句覆盖原则 4.5.3分支覆盖原则 4.5.4谓词覆盖原则 4.6生成测试输入 4.7选择测试数据的示例 4.8包含无效路径 4.9总结 文献综述 参考文献 习题 第5章 数据流测试 5.1一般概念 5.2数据流异常 5.3动态数据流测试概述 5.4数据流图 5.5数据流术语 5.6数据流测试标准 5.7数据流测试选择标准的比较 5.8可行路径和测试选择标准 5.9测试技术的比较 5.10总结 文献综述 参考文献 习题 第6章 域测试 6.1域错误 6.2域错误测试 6.3域的源 6.4域错误的类型 6.5ON点和OFF点 6.6测试选择标准 6.7总结 文献综述 参考文献 习题 第7章 系统集成测试 7.1集成测试的概念 7.2接口的不同类型和接口错误 7.3系统集成测试的粒度 7.4系统集成技术 7.4.1增量法 7.4.2自顶向下 7.4.3自底向上 7.4.4三明治方式和大爆炸方式 7.5软件和硬件的集成 7.5.1硬件设计验证测试 7.5.2硬件/软件兼容性矩阵 7.6系统集成的测试计划 7.7现成组件集成 7.7.1现成组件的测试 7.7.2内置测试 7.8总结 文献综述 参考文献 习题 第8章 系统测试分类 8.1系统测试分类法 8.2基础测试 8.2.1启动测试 8.2.2升级/降级测试 8.2.3发光二极管测试 8.2.4诊断程序测试 8.2.5命令行界面测试 8.3功能性测试 8.3.1通信系统测试 8.3.2模块测试 8.3.3记录和跟踪测试 8.3.4元素管理系统(EMS)测试 8.3.5管理信息基础测试 8.3.6图形用户界面测试 8.3.7安全性测试 8.3.8特征测试 8.4健壮性测试 8.4.1边界值测试 8.4.2电力循环测试 8.4.3在线插入和删除测试 8.4.4高可用性测试 8.4.5降级节点测试 8.5互操作性测试 8.6性能测试 8.7可扩展性测试 8.8压力测试 8.9负载和稳定性测试 8.10可靠性测试 8.11回归测试 8.12文档测试 8.13规章测试 8.14总结 文献综述 参考文献 习题 第9章 功能测试 9.1Howden的功能测试的概念 9.1.1变量的不同类型 9.1.2测试向量 9.1.3在上下文中测试一个函数 9.2应用功能测试的复杂度 9.3成对测试 9.3.1正交矩阵 9.3.2参数顺序算法 9.4等价类划分 9.5边界值分析 9.6判定表 9.7随机测试 9.8错误猜测 9.9范畴划分 9.10总结 文献综述 参考文献 习题 …… 第10章 从有限状态机模型生成测试 第11章 系统测试设计 第12章 系统测试计划与自动化 第13章 系统测试的执行 第14章 验收测试 第15章 软件可靠性 第16章 测试团队的组织结构 第17章 软件质量 第18章 成熟度模型 术语表
版权页: 插图: 变异测试有2条假设: 1.开发人员能力假设。这条假设说明开发人员通常有足够的能力,他们通常不会写出“随机”的程序。因此我们假设,对于一个给定的问题,开发人员会写出正确的程序,除了微小错误之外。换句话说,将变异体看成是只与原程序有微小的偏差。在实践中,这些变异体通过对被测程序进行“变异算子”的方法来创建,这是一系列系统化和规范化的转换。这些变异算子用于建立开发人员在开发程序时所犯的错误的模型。在实际中,这可能只是部分正确。 2.耦合效应。这条假设首先由DeMillo等人在1978年提出。这条假设可以总结为,复杂的错误都是和简单的错误相耦合,如果一个测试套件能够发现程序中所有的简单错误,它也将发现绝大多数复杂错误。这条假设已经由Offutt做出经验上的证明,并且由Wah给出了理论上的证明。变异测试的基本前提由Geist等人首先提出:如果软件中包含错误,那么通常将有一组变异体,它们只能被某个测试用例杀死,并且该测试用例也能发现这个错误。
《软件测试与质量保证:理论与实践》是为了向学生和软件专业人员介绍测试理论、测试技术、测试实践及质量保证的基本思想。对于在软件工程、计算机科学及计算机工程上没有软件行业经验的本科生,我们将使用循序渐进的方式一步步为其介绍主题内容。从业人员也将受益于结构性的介绍和综合性的材料。研究生可以使用这本书作为参考文献。完整阅读《软件测试与质量保证:理论与实践》,读者将会对下列主题有一个透彻的了解:测试理论和基础概念;支持生产高质量的软件的实践;软件测试技术;需求、缺陷、测试用例和测试结果的生命周期模型;单元测试、集成测试、系统测试和验收测试的过程模型;建立测试团队,其中包括招聘测试工程师和保留人才的方法;质量模型、能力成熟度模型、测试成熟度模型及测试过程改进模型。
内容的安排顺序先从实践开始,这样对软件质量保障的理解更直观一些