軟件測試原理與實踐

所属分类:軟件工程及軟件方法學  
出版时间:2009-2   出版时间:Srinivasan Desikan、Gopalaswamy Ramesh、韓柯、 李娜 機械工業出版社 (2009-02出版)   作者:(印)迪西肯(Desikan,S) 等 著   页数:285  

前言

当今世界,软件变得无处不在。消费者对此的期望大幅度增加,“软件出错很正常,我们必须接受这个事实”的旧观点已经不再适用。如今,人们期望软件能每时每刻地正常运行,并且要满足客户不断变化的需求。早先,软件系统用于后台管理服务和非关键业务的操作。现在,越来越多的关键应用都在全球实现。对无差错运行软件期望的提高,导致了对软件供应商高品质产量需求的增长。反过来,在过去十几年中,市场关注的焦点已从单纯的编程和开发转向更全面的目标:生产的软件一直正常工作,因而更加关注对软件的测试。在过去的十几年中,测试已经引起人们的极大兴趣。以下列举一些事实:测试工作量的成倍增加提供了广阔的职业发展机会;测试相关职位的薪资正在上升;测试已经成为重要的外包机会;过去五年,关于测试的会议和其他类似活动有了明显的增加;越来越多的专业人士考虑把软件测试作为职业。测试的工作方法为了跟上需求的增加也经历了彻底的改变。首先,全球化是持久的。现在的组织利用地域时差和全球的人才,向各大洲派遣开发和测试团队,这些团队共同无缝地工作。为了成功地推动这种新的全球化运作方式,公司必须掌握异地分布团队这项工作的艺术。其次,测试已经从即兴和偶然的尝试,转变为一项系统的、有计划的活动,以完成所有过程并且通过科学的度量。第三,现在成功的测试需要谨慎地利用各种技术,满足产品上市时间的要求。贯穿于测试生命周期的测试自动化也已经成为必需品而不是奢侈品。最后,人们对测试职业的看法也经历了一种巨变——成功的公司应为测试专业人士提供职业发展途径,鼓励他们发挥聪明才智,以保证他们能够长期供职于该公司和从事软件测试这个职业。本书及时满足了测试从业人员的需要,同时鼓舞了有志投身测试行业的专业人士和学生。

内容概要

  《軟件測試原理與實踐》全面論述了軟件測試的基本原理和最佳實踐,介紹了最近出現的極限測試和即興測試等新的測試方法。《軟件測試原理與實踐》介紹了全球團隊的個人、組織結構和模型等問題。在介紹綜合性理論知識的同時,強調實際經驗。《軟件測試原理與實踐》在介紹黑盒測試和白盒測試等傳統方法的同時,還介紹了測試的很多實際問題,例如國際化測試和回歸測試等。  《軟件測試原理與實踐》的突出特點是從工程實踐的角度,比較全面地討論棘手問題的具體應對方法和相應的風險,站在比較高的層次上討論軟件測試工程的整體把握方法。全書在各章附有許多實際問題的思考題,幫助讀者更深刻地理解這些現實問題。  《軟件測試原理與實踐》可作為高等院校軟件工程和測試方面的基礎教材,對軟件開發和測試人員解決實際問題也有較高的參考價值。

作者简介

作者︰(印度)Srinivasan Desikan (印度)Gopalaswamy Ramesh 譯者︰韓柯 李娜Srinivasan Desikan,印度班加羅爾市的西貝爾系統公司質量工程部主任,具有16年的產品測試經驗。所測試的產品正在被全世界數以百萬計的客戶使用。Srinivasan在測試自動化、測試管理、測試過程和測試團隊建立等方面有豐富的經驗。他經常在國際測試會議上發表演講,定期在多所大學舉辦講座。Srinivasan是印度技術學院的客座教授,並擔任多家印度測試公司的榮譽董事主任。

书籍目录

出版者的话译者序序前言第一部分 写作线索第1章 测试原理1.1 生产软件中的测试背景1.2 本章介绍1.3 不完善的车1.4 Dijkstra定律1.5 及时测试1.6 圣人和猫1.7 首先测试测试用例1.8 杀虫剂悖论1.9 护航舰队与破布1.10 桥上的警察1.11 钟摆的终结1.12 黑衣人1.13 自动化综合症1.14 小结第2章 软件开发生存周期模型2.1 软件项目的阶段2.1.1 需求获取和分析2.1.2 策划2.1.3 设计2.1.4 开发或编码2.1.5 测试2.1.6 部署和维护2.2 质量、质量保证和质量控制2.3 测试、验证和确认2.4 表示不同阶段的过程模型2.5 生存周期模型2.5.1 瀑布模型2.5.2 原型和快速应用开发模型2.5.3 螺旋或迭代模型2.5.4 V字模型2.5.5 改进型V字模型2.5.6 各种生存周期模型的比较第二部分 测试类型第3章 白盒测试3.1 白盒测试的定义3.2 静态测试3.2.1 人工静态测试3.2.2 静态分析工具3.3 结构测试3.3.1 单元/代码功能测试3.3.2 代码覆盖测试3.3.3 代码复杂度测试3.4 白盒测试中的挑战第4章 黑盒测试4.1 黑盒测试的定义4.2 黑盒测试的意义4.3 黑盒测试的时机4.4 黑盒测试的方法4.4.1 基于需求的测试4.4.2 正面和负面测试4.4.3 边界值分析4.4.4 决策表4.4.5 等价划分4.4.6 基于状态或基于图的测试4.4.7 兼容性测试4.4.8 用户文档测试4.4.9 领域测试4.5 小结第5章 集成测试5.1 集成测试的定义5.2 集成测试作为一种测试类型5.2.1 自顶向下集成5.2.2 自底向上集成5.2.3 双向集成5.2.4 系统集成5.2.5 选择集成方法5.3 集成测试作为一个测试阶段5.4 场景测试5.4.1 系统场景5.4.2 用例场景5.5 缺陷围歼5.5.1 选择缺陷围歼的频度和持续时间5.5.2 选择合适的产品版本5.5.3 对缺陷围歼的目标进行沟通5.5.4 建立和监视实验室5.5.5 采取行动解决问题5.5.6 优化缺陷围歼所涉及的工作5.6 小结第6章 系统测试和确认测试6.1 系统测试概述6.2 实施系统测试的原因6.3 功能测试与非功能测试6.4 功能系统测试6.4.1 设计/体系结构验证6.4.2 业务垂直测试6.4.3 部署测试6.4.4 贝塔测试6.4.5 符合性的认证、标准和测试6.5 非功能系统测试6.5.1 设置配置6.5.2 提出进入与退出准则6.5.3 平衡关键资源6.5.4 可伸缩性测试6.5.5 可靠性测试6.5.6 压力测试6.5.7 互操作性测试6.6 确认测试6.6.1 确认准则6.6.2 选择确认测试的测试用例6.6.3 执行确认测试6.7 测试阶段小结6.7.1 多阶段测试模型6.7.2 多个发布版本的处理6.7.3 谁负责实施与何时实施第7章 性能测试7.1 引论7.2 决定性能测试的要素7.3 性能测试的方法论7.3.1 收集需求7.3.2 编写测试用例7.3.3 自动化性能测试用例7.3.4 执行性能测试用例7.3.5 分析性能测试结果7.3.6 性能调谐7.3.7 性能基准测试7.3.8 能力策划7.4 性能测试工具7.5 性能测试的过程7.6 挑战第8章 回归测试8.1 回归测试的定义8.2 回归测试的类型8.3 回归测试的时机8.4 回归测试的方法8.4.1 实施第一次“冒烟”或“摸底”测试8.4.2 理解选择测试用例的准则8.4.3 测试用例分类8.4.4 选择测试用例的方法论8.4.5 重新设置测试用例以进行回归测试8.4.6 总结回归测试的结果8.5 回归测试的最佳实践第9章 国际化[I18n]测试9.1 引言9.2 国际化介绍9.2.1 语言的定义9.2.2 字符集9.2.3 属地9.2.4 本章使用的术语9.3 国际化测试的测试阶段9.4 有效化测试9.5 属地测试9.6 国际化确认9.7 假语言测试9.8 语言测试9.9 本地化测试9.10 国际化使用的工具9.11 挑战与问题第10章 即兴测试10.1 即兴测试概述10.2 伙伴测试10.3 结对测试10.4 探索式测试10.5 迭代式测试10.6 敏捷与极限测试10.6.1 xP工作流10.6.2 通过例子进行小结10.7 缺陷播种10.8 小结第三部分 特殊测试专题第11章 面向对象系统的测试11.1 引言11.2 面向对象软件入门11.3 面向对象测试的差别11.3.1 一组类的单元测试11.3.2 将类组合在一起——集成测试11.3.3 面向对象系统的系统测试与互操作11.3.4 面向对象系统的回归测试11.3.5 面向对象系统的测试工具11.3.6 小结第12章 可使用性与易获得性测试12.1 可使用性测试的定义12.2 可使用性测试的途径12.3 可使用性测试的时机12.4 实现可使用性的方法12.5 可使用性的质量因素12.6 美感测试12.7 易获得性测试12.7.1 基本易获得性12.7.2 产品易获得性12.8 可使用性工具12.9 可使用性实验室的建立12.10 可使用性的测试角色12.11 小结第四部分 测试中的人员和组织问题第13章 常见人员问题13.1 关于测试的感觉和错误概念13.1.1 “测试没有什么技术挑战”13.1.2 “测试没有为我提供职业成长道路13.1.3 “我被派来测试——我到底怎么了?!”13.1.4 “这些人是我的对手13.1.5 “测试是如果我有时间最终会做的工作”13.1.6 “测试的拥有者毫无意义13.1.7 “测试只是破坏13.2 测试与开发工作的比较13.3 为测试人员提供职业发展道路13.4 生态系统的角色与行动要求13.4.1 教育系统的角色13.4.2 高级管理层的角色13.4.3 测试界的角色第14章 测试团队的组织结构14.1 组织结构的要素14.2 单产品公司的结构14.2.1 单产品公司的测试团队结构14.2.2 按组件组织的测试团队14.3 多产品公司的结构14.3.1 测试团队作为“首席技术官办公室”的一部分14.3.2 针对所有产品的单一测试团队14.3 3按产品组织的测试团队14.3.4 针对不同测试阶段的独立测试团队14.3.5 混合模型14.4 全球化与地域分散的团队对产品测试的影响14.4.1 全球化的业务影响14.4.2 全时区开发,测试团队模型14.4.3 测试能力中心模型14.4.4 垒球团队面临的挑战14.5 测试服务公司14.5.1 测试服务的业务需求14.5.2 测试作为一种服务与产品测试公司之间的差别14.5.3 测试服务公司的典型角色和责任14.5.4 测试服务公司面临的挑战与问题14.6 测试公司的成功因素第五部分 测试管理与自动化第15章 测试策划、管理、执行与报告15.1 引言15.2 测试策划15.2.1 准备测试计划15.2.2 范围管理:决定要测试和不测试的特性15.2.3 确定测试方法和策略15.2.4 确定测试准则15.2.5 确定责任、人员和培训计划15.2.6 确定资源需求15.2.7 确定测试的可交付产品15.2.8 测试任务:规模与工作量估计15.2.9 活动分解与进度估计15.2.10 沟通管理15.2.11 风险管理15.3 测试管理15.3.1 标准的选择15.3.2 测试基础设施管理15.3.3 测试人员管理15.3.4 与产品发布集成15.4 测试过程15.4.1 把各种要素放在一起并确定测试计划基线15.4.2 测试用例规格说明15.4.3 可跟踪性矩阵的更新15.4.4 确定有可能实现自动化的测试用例15.4.5 测试用例的开发和基线确立15.4.6 测试用例的执行与可跟踪性矩阵的更新15.4.7 指标的采集与分析15.4.8 准备测试总结报告15.4.9 推荐产品发布准则15.5 测试报告15.6 最佳实践15.6.1 与过程相关的最佳实践15.6.2 与人员相关的最佳实践15.6.3 与技术相关的最佳实践附录A:测试策划检查单附录B:测试计划模板第16章 软件测试自动化16.1 测试自动化的定义16.2 自动化使用的术语16.3 自动化所需的技能16.4 自动化的对象与范围16.4.1 确定自动化负责的测试类型16.4.2 自动化不太可能变更的部分16.4.3 自动化测试符合标准16.4.4 自动化的管理问题16.5 自动化的设计和体系结构16.5.1 外部模块16.5.2 场景与配置文件模块16.5.3 测试用例与测试框架模块16.5.4 工具与结果模块16.5.5 报告生成器与报告/指标模块16.6 测试工具/框架的一股需求16.7 自动化的过程模型16.8 测试工具的选择16.8.1 选择测试工具的准则16.8.2 工具选择与部署步骤16.9 极限编程模型的自动化16.10 自动化中的挑战16.11 小结第17章 测试指标和度量17.1 指标和度量的定义17.2 测试中指标的意义17.3 指标类型17.4 项目指标17.4.1 投入偏差(计划投入与实际投入)17.4.2 计划偏差(计划与实际)17.4.3 不同阶段内的投入分布17.5 进度指标17.5.1 测试缺陷指标17.5.2 开发缺陷指标17.6 生产力指标17.6.1 每100小时测试发现的缺陷数17.6.2 每100小时的测试用例执行数17.6.3 每100小时的测试开发测试用例数17.6.4 每100个测试用例发现的缺陷数17.6.5 每100个失败的测试用例缺陷数17.6.6 测试阶段有效性17.6.7 已关闭缺陷的分布17.7 发布指标17.8 小结参考文献

章节摘录

第一部分 寫作線索第1章 測試原理1.1 生產軟件中的測試背景我們今天使用的幾乎一切東西都包含軟件。在軟件發展的早期,軟件用戶的數量與大公司相比還是很少的。現在,一個典型的工作場所(或家里),差不多每個人都在使用計算機及軟件。管理人員使用生產率很高的辦公軟件(代替以前的打字機)。會計師及財務人員使用電子表格軟件和其他財務軟件包,比使用計算器(甚至手工)要快得多。公司和家里的每個人都用電子郵件和互聯網進行娛樂、教育、通信和交互,獲取任何想要的信息。另外,“技術”人員使用程序設計語言、建模工具、仿真工具和數據庫管理系統完成以前主要靠手工完成的任務。上面只是說明軟件的使用對于用戶來說“很明顯”的幾個例子。但是,軟件的無處不在和廣泛普及遠不止以上這些例子所揭示的那樣。現在的軟件就像20世紀初的電一樣普及。我們在辦公室和家庭所使用的幾乎每一台設備都嵌入大量的軟件,例如手機、電視、手表和冰箱以及廚房的每一件電器都有嵌入式軟件。另一個值得注意的現象是軟件在任務關鍵場合的使用,在這些場合出現失效是根本不能接受的。對于心髒起搏器軟件,決不能提議“請關機並重啟系統”!我們離不開的幾乎所有服務中都有軟件。銀行、航空管制、汽車等,驅動它們的軟件都是絕對不能失效的。這些軟件系統必須每時每刻、永久、可靠、可預見地運行。這些無所不在、廣泛使用和關鍵之處都對軟件的開發和部署提出了一定的要求。首先,開發軟件產品或提供服務的公司必須盡全力減少、最好消除每件所交付的軟件產品或服務中的缺陷。用戶越來越不能容忍劣質的軟件產品。從軟件開發公司的角度看,發布有缺陷的軟件產品在經濟上也不是可行的。比如,在電視機發運給成千上萬的用戶後,其中的嵌入式軟件被發現有一個缺陷。怎麼可能發送“補丁”給這些用戶,要求他們“安裝補丁”?因此,唯一的解決方案是在產品交付用戶之前就一次做好。

编辑推荐

《軟件測試原理與實踐》從實用的角度對軟件測試進行了全面的闡述,討論了像極限測試和即興測試這類新興的領域。《軟件測試原理與實踐》特色︰關注分散在全球地域的團隊。討論全球化團隊的人員、組織結構和模型問題。提供印度在測試方面的豐富經驗。越來越多的產品測試工作是在印度完成的,但是研究印度經驗或印度業務模型的專著卻很少。《軟件測試原理與實踐》通過實例討論了印度的最佳測試實踐。在保持完整的理論體系基礎上,強調實踐經驗。《軟件測試原理與實踐》在介紹諸如等價類劃分和圈復雜度等傳統方法的同時,還討論了測試的一些實際問題,例如國際化測試和回歸測試。

图书封面




    軟件測試原理與實踐下載



用户评论 (总计1条)

 
 

  •     書的內容有些簡單,講的不夠詳細。對于入門級的可以做為參考。
 

計算機與互聯網 PDF免费下载,軟件工程及軟件方法學PDF免费下载。 计算机教程网 

计算机教程网 @ 2017