【内容简介】
本书以软件开发过程中涉及的测试知识为基础,主要讲解了测试用例设计方法、用例与代码评审、单元测试、集成测试、系统测试和一些专门的测试,如内存测试、性能测试、安全性测试等。本书还对测试方面的理论进行了一些探索,以测试空间和设计空间理论作为依据,贯穿于全书之中。特色之处是测试驱动设计、测试空间中的安全性准则、测试用例的设计准则等均以测试空间理论为基础,提出了新的思路。
本书可作为在职测试人员实践上的指南和理论上的辅导书,也可帮助程序员理解测试人员的工作内容和工作方式从而更好地配合测试人员完成项目测试,保证项目质量。
【编辑推荐】
本书以软件开发过程中涉及的测试知识为基础,主要讲解了测试用例设计方法、评审、单元测试、集成测试、系统测试和一些专门的测试,如内存测试、性能测试、安全性测试等。以测试空间和设计空间作为理论基础,本书还对测试方面的理论进行了一些探索,如测试驱动设计、测试空间中的安全性准则、测试用例的设计准则等均以测试空间理论为基础。
从开发与测试两个角度来探讨软件测试实践知识是本书的一大特色。作者在本书中以专题的形式深入探讨了软件测试中诸多领域的知识,并将其应用到软件测试项目中,极大地促进产品质量的提高。
——《LoadRunner性能测试实战》作者 陈绍英
很高兴看到这本测试新书《软件测试实践》的问世。它从实践出发,深入到测试的各个细节,如使用HOOK打桩增加单元测试代码可维护性、使用调试C运行时间库进行内存测试等。本书立意较新、实例丰富、文字流畅,对测试人员能力的提高颇有益处。
——《全程软件测试》作者 朱少民
本书作者是高水平的软件开发专家,在长期的实践中深刻认识和理解了软件测试的重要性,并摸索了一套行之有效的软件测试理论和方法。这本书全面介绍了作者对于软件测试的认识和实践方法,不但内容翔实,逻辑严密,而且行文生动,引人入胜。对于很多开发者来说,特别是C/C++开发者,这是一本营养丰富、容易理解的软件测试书,对于理解软件测试,切实提高代码和软件质量很有帮助。
——《程序员》杂志技术主编 孟岩
【作译者介绍】
本书提供作译者介绍
周伟明,1994年毕业于上海交通大学,曾工作于美国加利福尼亚的DASCOM,Inc.公司(现为IBM的全资子公司)和华为技术有限公司等大型企业。从事过网络安全软件、网络服务器软件、机器翻译软件、工具软件、嵌入式系统软件等的研发工作,亲自编写过的源代码超过40万行,著有《多任务下的数据结构与算法》。
<< 查看详细
【目录信息】
第1章 软件测试概述
1.1 测试的发展
1.2 测试的目的
1.3 软件缺陷
1.4 软件质量特性
1.5 软件测试的分类
1.6 测试空间和设计空间的概念
1.7 可测试性
1.8 软件测试人员应具备的技能和素养
1.9 软件测试常见误区
1.10 小结
1.11 习题与思考
第2章 测试空间与测试驱动接口设计
2.1 可变数据的访问方式与变化形式
2.2 可变数据的表现形式
2.3 可变数据的分层
2.4 测试空间中的安全性准则
2.5 测试驱动接口设计
2.6 测试驱动的开发流程
2.7 小结
2.8 习题与思考
第3章 测试用例设计基本方法
3.1 测试用例设计概述
3.2 测试用例设计基本思想
3.3 场景分析法
3.4 分类推理法
3.5 元素分析法
3.6 等价类分法
3.7 边界值法
3.8 随机数据法
3.9 判定表法
3.10 因果图法
3.11 其他一些测试用例设计方法
3.12 小结
3.13 习题与思考
第4章 评审与检视
4.1 基本概念
4.2 同行评审的角色和职责
4.3 评审的过程
4.4 评审检视技能
4.5 代码检视实例
4.6 小结
4.7 习题与思考
第5章 单元测试
5.1 单元测试基本概念
5.2 单元测试覆盖率
5.3 单元测试的桩函数和驱动函数
5.4 使用HOOK打桩增强单元测试代码的可维护性
5.5 单元测试实例
5.6 单元测试工具
5.7 单元测试误区与常见问题
5.8 单元测试的原则
5.9 小结
5.10 习题与思考
第6章 集成测试
6.1 集成测试基本概念
6.2 集成测试的集成方法
6.3 基本的集成测试用例设计思路介绍
6.4 使用结构化方法来设计用例
6.5 为隐性接口设计用例
6.6 多任务集成测试
6.7 习题与思考
第7章 系统测试
7.1 系统测试的基本概念
7.2 系统测试的过程
7.3 系统测试的几种形式
7.4 系统测试的主要内容
7.5 问题定位与修改
7.6 系统测试的原则
7.7 小结
7.8 习题与思考
第8章 内存测试
8.1 内存测试的基本概念
8.2 静态检查方法
8.3 使用工具进行动态检查的方法
8.4 使用调试C运行时间库(DcRT)进行检查
8.5 自己编码检查越界和泄漏
8.6 内存碎片模拟器的实现
8.7 小结
8.8 习题与思考
第9章 性能测试
9.1 性能测试概述
9.2 常用的软件性能指标
9.3 网络性能
9.4 多任务性能
9.5 可靠性与可用性
9.6 易用性
9.7 易学性
9.8 负载均衡性能
9.9 性能测试实施
9.10 专门的性能测试
9.11 小结
9.12 习题与思考
第10章 安全性测试
10.1 安全的基本知识
10.2 常见安全性缺陷和攻击手段
10.3 软件安全测试过程
10.4 安全性测试手段
10.5 安全性测试的评估
10.6 小结
10.7 习题与思考
附录A 代码静态检查
A.1 为什么要进行代码静态检查
A.2 代码静态检查工具PC-Lint简介
A.3 PC-Lint集成方法
A.4 PC-Lint使用方法及常用选项参数介绍
A.5 PC-Lint选项的用法
A.6 PC-Lim常用选项
A.7 PC-Lint常见告警分析和消除办法
A.8 PC-Lint选项使用原则
<< 查看详细目录
【作者序】
无论是软件开发的过去、现在,还是未来,质量问题都一直是困扰所有软件开发人员的“疙瘩”。软件发展早期,软件规模较小,所以相对地软件Bug较少,涌现了许多擅长编写和调试软件的英雄式的程序员。但随着软件规模的增大,英雄难过质量关,出现了许多因为质量问题将上百万行源代码推倒重来的事例。与此同时,软件工程和测试技术应运而生并快速发展起来,在它们的辅助下软件质量得到了很大的改善,从而也使得软件开发的风险和成本都大幅度降低。.
一个学科的发展通常要经过艺术、技术、原理三个阶段:软件测试最早便是以艺术出现的(最早见于Myers, G. J.的《软件测试的艺术》一书);近十年软件测试技术快速发展..
<< 查看作者序
【序言】
初次听说电子工业出版社准备策划出版一套《测试实践丛书》,我就感到一种欣慰,这个选题对中国软件产业发展具有十分重要的现实意义。
当今世界软件产业之所以称之为产业,不仅是因为其产品的产值具有了超过传统产业的规模,而更重要的是因为其产品的工程化和工业化的生产与服务体系为整个人类社会提供了必要的质量保证。.
随着用户对软件产品质量要求的不断提高以及软件工程技术的日益成熟,软件测试在软件生产与服务过程中成为一个越来越重要的环节,在软件企业、IT服务企业、客户IT部门等机构中扮演着更为重要的角色。对于一个软件企业,“你不去发现缺陷,那一定是你的客户去发现缺陷”,提高软..
<< 查看序言
【媒体评论】
从开发与测试两个角度来探讨软件测试实践知识是本书的一大特色。作者在本书中以专题的形式深入探讨了软件测试中诸多领域的知识,并将其应用到软件测试项目中,极大地促进产品质量的提高。.
陈绍英 《LoadRunner性能测试实战》作者
很高兴看到这本测试新书《软件测试实践》的问世。它从实践出发,深入到测试的各个细节,如使用HOOK打桩增加单元测试代码可维护性、使用调试C运行时间库进行内存测试等。本书立意较新、实例丰富、文字流畅,对测试人员能力的提高颇有益处。
朱少民 《全程软件测试》作者..
本书作者是高水平的软件开发专家,在长期的实践中深刻认识和理解了软件测试的重要性,并摸索了一套行之有效的软件测试理论和方法。这本书全面介绍了作者对于软件测试的认识和实践方法,不但内容翔实,逻辑严密,而且行文生动,引人入胜。对于很多开发者来说,特别是C/C++开发者,这是一本营养丰富、容易理解的软件测试书,对于理解软件测试,切实提高代码和软件质量很有帮助。
孟岩 《程序员》杂志技术主编...
【书摘】
第1章 软件没试概述
•不经意丢下的一个烟头可以毁掉一座森林,这话用在软件上最恰当不过了,程序员编程时不经意的一个字节错误同样能使整个软件系统崩溃。
•假设电脑只有电子的大小(约为10-30kg),假设将整个可观测到的宇宙物质(约为1053kg)全部做成电脑来运行测试,那么宇宙在毁灭了2.5×104 909次后才有可能将某些软件的所有测试执行完。
•曾有智者说过,“一件小事乘以13亿之后就变成大事了”,用这句话来形容软件缺陷造成的破坏力真是太恰当了。一些软件的安全漏洞等看似不起眼的缺陷造成的破坏远远超过那些航天飞机失事、导弹误中自己人等事故,甚至远超过了一场现代战争造成的破坏。
1.1 测试的发展
在传统制造业等行业中,测试早就被当作控制产品质量的手段,不论是玩具还是飞机等都需要经过各种各样的测试才能投入使用。不过本书主要讨论的是软件测试,软件测试的发展经历以下几个阶段。
黑暗时代:计算机行业中,测试早期就被当作控制产品质量的手段,编写的程序也较简单。那时基本上是调试程序,只要程序能正常运行就可以了,谈不上进行什么测试,所以这个时代只能称为测试的黑暗的时代。
石器时代:20世纪50年代到60年代期间,高级语言开始出现了。IBM公司的程序师约翰•巴科斯(J.Backus)在1954年发明了FORTRAN语言。
……