《软件测试实践教程》全面、系统地阐述了软件测试的基础知识和应用技术,是一小非常实用的软件测试教材。伞书共8章,第1章介绍了软件测试的基础知识,包括软件测试的概念、软件测试的分类和软件测试的背景等;第2章介绍了白盒测试的测试用例设计方法和典型案例;第3章介绍了黑盒测试的测试用例设计方法和典型案例;第4章介绍了一种新的测试方法一蜕变测试方法和典型案例;第5章介绍了测试流程和测试文档的基小知识,列举了测试计划、测试说明和测试报告等测试文档的例子;第6章介绍了功能测试工具WinRunnet‘以及使用WinRunner的最佳实践;第7章介绍了压力测试工具LoadRunner以及使用LoadRurmer的最佳实践;第8章介绍了测试管理工具TestDirector以及使用TestDirectot的最佳实践。
小书可以作为大学小科软件测试课程的教材,也可以作为软件测试人员、软件项目经理和需要了解软件测试的各级管理人员的参考书。
软件测试是软件开发过程中的一个重要环节,是保证软件质量的关键技术之一。软件测试工作开展的好坏,直接决定着软件产品质量的优劣。在实际软件开发过程中,国际化大型软件公司在软件测试上投入了大量的人力和物力,以确保软件质量能够满足软件用户的要求,以赢得软件产品质量的美誉度。近年来,随着国内软件产业的蓬勃发展,专业化软件产品及服务软件企业的出现和产业规模的扩大,软件测试的重要性日益凸显,软件测试行业在国内也渐渐兴起,并逐步扩大。2007年第四季度以后,我国IT产业对软件测试人才的需求呈现进一步升级的态势。国家信息产业部提供的数据显示,目前软件测试人才的缺口已经达到40~50万,软件测试人才正在成为我国IT行业最紧缺的人才之一,软件测试能力不足已成为制约我国软件产业发展的重要因素。
虽然越来越多的大学毕业生和其他行业人员有志于从事软件测试行业,却苦于缺乏系统的软件测试理论知识和实用测试技术而被用人企业拒之门外,进一步加剧了软件测试业务的人才供需矛盾。本书正是针对该问题,总结了作者多年从事软件测试课程教学的经验和在软件公司从事软件测试的工作经历,在参阅了大量国内外相关文献资料,进行总结和充实后,完成了软件测试使用技术的编写工作,试图为软件人才的培养和锻炼提供帮助和指导。
出版说明
前言
第1章 软件测试概述
1.1 软件危机
1.1.1 什么是软件危机
1.1.2 软件危机的内在原因
1.1.3 软件工程和软件危机的解决
1.2 软件测试的基本知识
1.2.1 软件测试的背景和意义
1.2.2 软件测试的定义
1.2.3 软件测试的分类
1.2.4 软件测试的过程
1.2.5 软件测试与软件开发过程的关系
1.3 正确认识软件测试
1.4 软件测试职业
1.4.1 软件测试职业和职位
1.4.2 软件测试职业素质
1.4.3 软件测试人才现状
1.5 习题
第2章 白盒测试
2.1 白盒测试概述
2.2 白盒测试的测试用例设计方法
2.3 白盒测试的典型案例
2.3.1 逻辑覆盖法典型案例
2.3.2 路径覆盖法典型案例
2.4 白盒测试的工具
2.4.1 白盒测试工具的分类
2.4.2 开放源码的Junit的使用
2.5 习题
第3章 黑盒测试
3.1 黑盒测试概述
3.2 黑盒测试的主要测试用例设计方法
3.2.1 等价类划分
3.2.2 边界值分析
3.2.3 因果图
3.2.4 判定表驱动测试
3.2.5 正交实验设计法
3.2.6 用例场景法
3.3 黑盒测试的典型案例
3.3.1 使用等价类划分法设计测试用例
3.3.2 使用边界值分析法设计测试用例
3.3.3 使用因果图法设计测试用例
3.3.4 使用判定表法设计测试用例
3.3.5 使用正交表法设计测试用例
3.3.6 使用用例场景法设计测试用例
3.4 习题
第4章 蜕变测试
4.1 蜕变测试概述
4.2 蜕变测试的典型案例
4.2.1 数学应用案例
4.2.2 图论应用案例
4.2.3 搜索程序应用案例
4.2.4.编译器应用案例
4.2.5 图形图像应用案例
4.2.6 其他应用案例
4.3习题
第5章 测试流程和测试文档
5.1 测试流程
5.2 测试文档概述
5.3 编写测试文档
5.3.1 测试计划的内容和实例
5.3.2 测试说明的内容和实例
5.3.3 测试撤告的内容和实例
5.4 习题
第6章 WinRunnet功能测试工具的运用
6.1 WinRunner介绍
6.1.1 WinRunner的测试模式
6.1.2 WinRunner的测试过程
6.1.3 WinRunner的样本软件
6.2.1 WinRunner使用概述
6.2.1 WinRunner主窗口
6.2.2 winRunner测试窗口
6.2.3 加载WinRunner插件窗口
6.3 WinRunner如何识别GUI对象
6.3.1 识别GUI对象
6.3.2 使用GuISpy查看GUI对象的属性
6.4 WinRunner如何学习被测软件的GUI对象
6.4.1 两种GUImap的工作模式
6.4.2 WinRunner.学习GUI对象的方式
6.5 录制测试脚本
6.5.1 两种录制模式
6.5.2 如何录制测试脚本
6.5.3 如何阅读测试脚本
6.5.4 执行测试脚本并分析结果
6.6 同步点
6.6.1 何时使用同步点
6.6.2 如何建立同步点
6.6.3 执行测试并分析结果
6.7 GUI对象检查点
6.7.1 检查GUI对象
6.7.2 插入GUI对象检查点
6.7.3 执行测试并分析结果
6.8 图像检查点
6.8.1 检查应用程序的图像
6.8.2 建立图像检查点
6.8.3 检视结果
6.9 使用TSL修改脚本
6.9.1 录制基本脚本
6.9.2 使用函数生成器在测试脚本中加入函数
6.9.3 在测试脚本中加入判断式
6.9.4 执行测试脚木
6.10 建立数据驱动脚本
6.10.1 数据驱动脚本概述
6.10.2 将测试脚本转换为数据驱动测试脚本
6.10.3 使用regularexpression调整测试脚本
6.10.4 执行脚本并分析结果
6.11 文字检查点
6.11.1 文字检查点概述
6.11.2 建立文字检查点
6.11.3 检查文字
6.11.4 执行测试脚本
6.12 建立批测试
6.12.1 批测试概述
6.12.2 建立批测试
6.12.3 执行批测试
6.12.4 分析测试结果
6.13 维护测试脚本
6.13.1 在GUIMap中改变GUI对象
6.13.2 新增GUl对象到GuIMap
6.13.3 使用RunWizard自动更新GUIMap
6.14 习题
第7章 LoadRunner负载测试工具的运用
7.1 LoadRunner负载测试工具概述
7.1.1 LoadRunner的重要组件
7.1.2 LoadRunrler的例子应用程序
7.2 LoadRunner的测试过程
7.3 制订负载测试计划
7.3.1 分析应用程序
7.3.2 确定测试目标
7.3.3 计划怎样执行LoadRunner
7.4 开发测试脚本
7.4.1 录制基本的用户脚本
7.4.2 完善测试脚本
7.4.3 运行参数设定
7.4.4 单机运行测试脚本
7.5 创建运行场景
7.5.1 选择场景类型ManualScenario
7.5.2 选择场景类型ManualScenariowithPercentageMode
7.5.3 选择场景类型Goal.OrientedScenario
7.6 分析以及监视场景
7.7 分析实时监视图表
7.8 利用Analysis分析结果
7.8.1 分析事务的响应时间
7.8.2 分解页面
7.8.3 确定WebServer的问题
7.9 习题
第8章 TestDireclor测试管理工具的运用
8.1 TestDil:ector概述
8.1.1 TestDirector简介
8.1.2 TestDirector的窗口
8.1.3 TestDirector的测试管理过程
8.2 需求定义
8.2.1 定义测试范围
8.2.2 创建测试需求大纲
8.2.3 定义需求
8.2.4 分析需求定义
8.2.5 TestDirector需求模块
8.3 计划测试
8.3.1 定义测试策略
8.3.2 定义测试主题
8.3.3 定义测试
8.3.4 建立测试覆盖
8.3.5 设计测试步骤
8.3.6 自动测试
8.3.7 分析测试计划
8.4 执行测试
8.4.1 建立测试集合
8.4.2 测试执行表
8.4.3 执行测试
8.4.4 分析测试结果
8.5 跟踪缺陷
8.5.1 添加缺陷
8.5.2 检查新缺陷
8.5.3 修改开放缺陷
8.5.4 验证缺陷
8.5.5 分析缺陷数据
8.6 习题
参考文献
软件测试在软件生存期中占有非常突出的位置,是保证软件质量的重要手段。本章主要介绍软件测试技术的基础知识,包括软件危机的内在原因及软件工程的解决方法、软件测试的背景和意义、软件测试的概念、软件测试的过程、软件测试的职业和职位等基础理论知识,这是学习本书后续内容的必要准备。
1.1 软件危机
在20世纪60年代,由于软件的规模越来越大,软件变得越来越复杂,在软件的开发过程中出现了软件危机。下边分别介绍软件危机的概念、软件危机的内在原因和软件危机的解决方法。
1.1.1 什么是软件危机
随着计算机技术的飞速发展,计算机被广泛地应用。为了适应在广泛应用情况下出现的各种各样的复杂问题,需要严格地保证软件系统的质量。但是,软件系统的开发需要投入大量的人力、物力和财力,相对于硬件系统投资而言,软件投资所占比例越来越大。同时,开发软件本质上是一个“思考”的工程,开发人员有各自的编程习惯和思维方式,可凭个人的爱好进行工作,没有统一的标准可以遵循,因此系统的质量难以得到保证。大约在20世纪60年代,面对愈来愈复杂的大型软件系统开发,出现了“软件危机”,主要表现为以下几个方面。
1)软件项目经常无法按期完成,超出经费预算,软件质量难以控制。
2)开发过程管理不规范,约定不严密,文档书写不完整,使得软件维护费用高,有些系统甚至无法进行修改。
3)缺乏严密有效的质量检测手段,交付给用户的软件质量差,在运行中出现许多问题,甚至带来严重的后果。
4)系统更新换代难度大。