Author:袁琳
MSN:
testwin@sohu.com
近来,有不少刚刚从事软件测试工作的朋友通过MSN和Email等方式向我咨询,希望可以从我这里得到一些帮助,希望我能够介绍一些软件测试方面的入门书籍。
我非常欣喜的看到有越来越多的朋友加入到软件测试者的行列,也对他们目前的困惑表示理解。毕竟,软件测试行业在国内才起步不久,很多人都是刚刚毕业就进入这个行业,或者从其他岗位转过来,对软件测试的知识和技能了解的有限,而软件测试又是一个非常重视实践经验的工作。如何在较短时间内熟悉软件测试的基础知识、并掌握一定的软件测试基本方法,读书就是一个比较好的办法。因此,推荐两本测试方面的书籍。
![](https://i-blog.csdnimg.cn/blog_migrate/b739c52ff33851cd3ff71ce0b286427b.png)
《软件测试》
作者:(美)Ron Patton
译者:周予滨 姚静
出版社:机械工业出版社
原出版社: SAMS
第一部分软件测试综述
第1章 软件测试背景
1.l 臭名昭著的软件错误案例研究
1.l.l 迪斯尼的狮子王,1994~1995
1.1.2 英特尔奔腾浮点除法软件缺陷,1994
1.l.3 美国航大局火星极地登陆,1999
1.1.4 爱国者导弹防御系统,1991
1.1.5 千年虫,大约1974
1.2 软件缺陷是什么
1.2.l 描述软件失败的术语
1.2. 2 软件缺陷:正式定义
1.3 为什么会出现软件缺陷
1.4 软件缺陷的修复费用
1.5 软件测试员究竟做些什么
1.6 怎样成为优秀软件测试员
1.7 小结
1.8 小测验
第2章 软件开发过程
2.l 产品的组成部分
2.l.l 软件产品需要多少投入
2.1.2 客户要求
2. 1.3 产品说明书
2. 1.4 进度表
2.1.5 软件设计文档
2.1.6 测试文档
2.1.7 软件产品由哪些部分组成
2.2 软件项目成员
2.3 软件开发模式
2.3.l 大棒模式
2. 3.2 边写边改模式
2.3. 3 流水模式
2.3.4 螺旋模式
2. 4 小结
2. 5 小测验
第3章 软件测试的实质
3. 1 测试原则
3.1.l 完全测试程序是不可能的
3.1.2 软件测试是有风险的行为
3.1.3 测试无法显示潜伏的软件缺陷
3.1.4 找到的软件缺陷越多,就说明软件缺陷越多
3. 1.5 杀虫剂怪事
3. 1.6 并非所有软件缺陷都能修复
3. 1.7 难以说清的软件缺陷
3.1.8 产品说明书不断变化
3.1.9 软件测试员在产品小组中不受欢迎
3.1.10 软件测试是一项讲究条理的技术专业
3.2 软件测试的术语和定义
3.2.l 精确和准确
3.2.2 验证和合法性检查
3.2.3 质量和可靠性
3.2.4 测试和质量评判(QA)
3.3 小结
3.4 小测验
第二部分测试基础
第4章 检查产品说明书
4.l 开始测试
4. 1.l 黑盒子和白盒子测试
4.1.2 静态和动态测试
4.1.3 静态黑盒子测试,测试产品说明书
4.2 对产品说明书进行高级审查
4.2. 1 设身处地为客户着想
4. 2.2 研究现有的标准和规范
4.2.3 审查和测试同类软件
4.3 产品说明书的低级测试技术
4. 3.l 产品说明书属性检查清单
4. 3.2 产品说明书用语检查清单
4. 4 小结
4. 5 小测验
第5章 闭着眼睛测试软件
5.l 动态黑盒子测试,闭着眼睛测试软件
5.2 通过测试和失败测试
5.3 等价分配
5.4 数据测试
5.4.l 边界条件
5.4.2 边界条件类型
5.4.3 测试边界线
5.4.4 次边界条件
5.4.5 2的乘方
5.4.6 ASCII表
5.4.7 默认、空白、空值、零值和无
5.4. 8 非法、错误、不正确和垃圾数据
5.5 状态测试
5.5.l 测试软件的逻辑流程
5.5.2 建立状态转换图
5.5.3 减少要测试的状态及转换的数量
5.5.4 怎样进行具体测试
5.6 失败状态测试
5.6.l 竞争条件和时序错乱
5.6.2 重复、压迫和重负
5.7 其他黑盒子测试技术
5.7.l 像愚笨的用户那样做
5.7. 2 在已经找到软件缺陷的地方再找找
5.7. 3 凭借经验、直觉和预感
5.8 小结
5.9 小测验
第6章 检查代码
6.l 静态白盒子测试:检查设计和代码
6. 2 正式审查
6.2.l 同事审查
6.2.2 公开陈述
6. 2. 3 检验
6. 3 编码标准和规范
6.3.l 编程标准和规范示例
6. 3. 2 获取标准
6.4 通用代码审查清单
6. 4.1 数据引用错误
6. 4. 2 数据声明错误
6. 4.3 计算错误
6.4. 4 比较错误
6. 4.5 控制流程错误
6.4.6 子程序参数错误
6.4.7 输入/输出错误
6.4. 8 其他检查
6. 5 小结
6.6 小测验
第7章 带上X光眼镜检查软件
7. 1 动态白盒子测试
7. 2 动态白盒子测试和调试
7. 3 分段测试
7.3. 1 单元和集成测试
7. 3.2 单元测试示例
7.4 数据范围
7. 4.l 数据流
7. 4.2 次边界
7. 4.3 公式和等式
7. 4.4 错误强制
7.5 代码范围
7.5.l 程序语句和代码行范围
7. 5.2 分支范围
7. 5.3 条件范围
7. 6 小结
7. 7 小测验
第三部分运用测试技术
第8章 配置测试
8. l 配置软件综述
8.1.l 分离配置缺陷
8.1.2 计算工作量
8.2 执行任务
8. 2.l 确定所需的硬件类型
8.2.2 确定哪些硬件商标、型号和驱动程序可用
8.2.3 确定可能的硬件特性、模式和选项
8.2.4 将明确后的硬件配置缩减为可控制范围
8.2. 5 明确使用硬件配置的软件唯一特性
8.2.6 设计在每一种配置中执行的测试案例
8.2.7 在每种配置中执行测试
8.2.8 反复测试直到小组对结果满意为止
8.3 获得硬件
8.3.l 明确硬件标准
8.3.2 对其他硬件进行配置测试
8. 4 小结
8.5 小测验
第9章 兼容性测试
9.l 兼容性测试综述
9.2 平台和应用程序版本
9.2.l 向前和向后兼容
9.2.2 测试多个版本的影响
9.3 标准和规范
9.3.l 高级标准和规范
9.3.2 低级标准和规范
9.4 数据共享兼容性
9.5 小结
9.6 小测验
第10章 外国语言测试
10.l 使文字和图片有意义
10.2 翻译问题
10.2.l 文本扩展
10.2.2 ASCII、DBCS和 Unicode
10.2.3 热键和快捷键
10.2. 4 扩展字符
10.2. 5 字符计算
10.2.6 从左向右和从右向左读
10.2.7 图形中的文字
10.2.8 使文字脱离代码
10.3 本地化问题
10.3. 1 内容
10.3. 2 数据格式
10.4 配置和兼容性问题
10.4.l 国外平台配置
10.4. 2 数据兼容性
10.5 测试量有多大
10.6 小结
10.7 小测验
第11章 易用性测试
11.l 用户界面测试
11.2 优秀UI由什么构成?
11.2. 1 符合标准和规范
11.2.2 直观性
11. 2.3 一致性
11.2. 4 灵活性
11.2.5 舒适性
11. 2.6 正确性
11.2. 7 实用性
11.3 为残疾人测试:辅助选项测试
11.3.l 这是法律
11.3. 2 软件中的辅助特性
11.4 小结
11.5 小测验
第12章 测试文档
12.l 软件文档的类型
12. 2 文档测试的重要性
12.3 审查文档时要找什么
12. 4 文档测试的实质
12. 5 小结
12.6 小测验
第13章 网站测试
13.l 网页基础
13.2 黑盒子测试
13. 2. 1 文字
13.2.2 超级链接
13. 2.3 图形
13. 2. 4 表单
13.2.5 对象和其他零碎功能
13. 3 灰盒子测试
13.4 白盒子测试
13.5 配置和兼容性测试
13.6 易用性测试
13.7 自动化简介
13. 8 小结
13.9 小测验
第四部分加强测试
第14章 自动测试和测试工具
14.l 自动化和工具的好处
14.2 测试工具
14.2.l 查看器和监视器
14. 2.2 驱动程序
14.2. 3 管道
14.2.4 施压和增负工具
14.2.5 干扰发射器和噪声发生器
14.2.6 分析工具
14. 3 软件测试自动化
14.3. 1 宏录制和回放
14.3.2 可编程的宏
14.3.3 完全可编程的自动测试工具
14.4 随机测试:猴子测试员
14.4.l 笨猴子
14. 4. 2 不太笨的猴子
14.4. 3 聪明猴子
14.5 使用测试工具和自动化的实质
14.6 小结
14.7 小测验
第15章 臭由轰炸和Beat测试
15.l 能看多远看多远
15.2 测试共享
15.3 Beat测试
15.4 提交测试
15.5 小结
15.6 小测验
第五部分使用测试文档
第16章 计划测试工作
16.l 测试计划的目标
16. 2 测试计划主题
16. 2.l 高级期望
16.2.2 人、地点和事
16. 2.3 定义
16.2.4 团队之间的责任
16.2.5 哪些要测试,哪些不要测试
16.2.6 测试阶段
16.2.7 测试策略
16.2.8 资源要求
16.2.9 测试员的任务分配
16.2.10 测试过度
16.2. 11 测试案例
16.2. 12 软件缺陷报告
16. 2. 13 频度和统计
16. 2. 14 风险和问题
16.3 小结
16.4 小测验
第17章 编写和跟踪测试案例
17. 1 测试案例计划的目标
17. 2 测试案例计划综述
17.2.l 测试设计
17.2.2 测试案例
17.2. 3 测试程序
17.2.4 细节和真实
17. 3 测试案例组织和跟踪
17. 4 小结
17. 5 小测验
第18章 报告发现的问题
18.l 使软件缺陷得以修复
18. 2 分离和再现软件缺陷
18.3 所有软件缺陷不是生来就平等的
18.4 软件缺陷的生命周期
18.5 软件缺陷跟踪系统
18.5.1 标准:测试事件报告
18.5.2 手工软件缺陷报告和跟踪
18.5.3 自动软件缺陷报告和跟踪
18.6 小结
18.7 小测验
第19章 评价成效
19.l 使用软件缺陷跟踪数据库中的。
19. 2 在日常测试中使用的频度
19.3 常用项目级频度
19.4 小结
19.5 小测验
第六部分软件测试展望
第20章 软件质量评判
20.l 质量是免费的
20. 2 生产车间中的测试和质量评判
20.2.l 软件测试
20.2.2 质量评判
20.2.3 软件测试团队的其他名称
20. 2.4 测试管理和组织结构
20.2.5 能力成熟度模型(CMM)
20.2.6 ISO 9000
20.3 小结
20.4 小测验
第21章 软件测试员职业指导
21.l 软件测试员工作
21.2 寻求软件测试职位
21.3 获得亲身体验
21.4 正规培训机会
21.5 因特网链接
21.6 专业组织
21.7 参考书目
21.8 小结
21.9 小测验
附录测验问题解答
![](https://i-blog.csdnimg.cn/blog_migrate/21255e9abe22337a28716dde65e015b6.png)
《自动化软件测试—入门、管理与实现(影印版)》
作者:[美]Elfriede Dustin等著
Acknowledgments
Part I What Is Automated Testing?
1 The Birth and Evolution of Automated Testing
1.1 Automated Testing
1.2 Background on Software Testing
1.3 The Automated Test Life-Cycle Methodology(ATLM)
1.3.1 Decision to Automate Test
1.3.2 Test Tool Acquisition
1.3.3 Automated Testing Introduction Phase
1.3.4 Test Planning,Design,and Development
1.3.5 Execution and Management of Tests
1.3.6 Test Program Review and Assessment
1.4 ATLM's Role in the SoftwareTesting Universe
1.4.1 ATLM Relationship to System Development Life Cycle
1.4.2 Test Maturity Model(TMM)-Augmented by Automated Software Testing Maturity
1.4.3 Test Automation Development
1.4.4 Test Effort
1.5 Software Testing Careers
2 Decision to Automate Test
2.1 Overcoming False Expectations for Automated Testing
2.1.1 Automatic Test Plan Generation
2.1.2 Test Tool Fits All
2.1.3 Immediate Test Effort Reduction
2.1.4 Immediate Schedule Reduction
2.1.5 Tool Ease of Use
2.1.6 Universal Application of Test Automation
2.1.7 One Hundred Percent Test Coverage
2.2 Benefits of Automated Testing
2.2.1 Production of a Reliable System
2.2.2 Improvement of the Quality of the Test Effort
2.2.3 Reduction of Test Effort and Minimization of Schedule
Case Study:Value of Test Automation Measurement
2.3 Acquiring Management Support
2.3.1 Test Tool Proposal
3 Automated Test Tool Evaluation and Selection
3.1 The Organization's Systems Engineering Environment
3.1.1 Third-Party Input from Management,Staff,and Customers and End Users
3.1.2 Tool Criteria Reflecting the Systems engineering Environment
3.1.3 Level of Software Quality
3.1.4 Help Desk Problem Reports
3.1.5 Budget Constraints
3.1.6 Types of Tests
3.1.7 Long-Term Investment Considerations
3.1.8 Test Tool Process
3.1.9 Avoiding Shortcuts
3.2 Tools That Support the Testing Life Cycle
3.2.1 Business Analysis Phase Tools
3.2.2 Requirements Definition Phase Tools
3.2.3 Tools for the Analysis and Design Phase
3.2.4 Programming Phase Tools
3.2.5 Metrics Tools
3.2.6 Other Testing Life-Cycle Support Tools
3.2.7 Testing Phase Tools
3.3 Test Tool Research
3.3.1 Improvement Opportunities
3.4 Evaluation Domain Definition
3.5 Hands-On Tool Evaluation
3.5.1 Evaluation Report
3.5.2 License Agreement
Part II Introduction of Automated Testing to a Project
4 Automated Testing Introduction Process
4.1 Test Process Analysis
4.1.1 Process Review
4.1.2 Goals and Objectives of Testing
Case Study:Test Objectives and Strategies
4.1.3 Test Strategies
4.2 Test Tool Consideration
4.2.1 Review of Project-Specific System Requirements
4.2.2 Application-Under-Test Overview
4.2.3 Review of Project Schedule
4.2.4 Test Tool Compatibility Check
4.2.5 Demonstration of the Tool to the Project Team
4.2.6 Test Tool Support Profile
4.2.7 Review of Training Requirements
5 Test Team Management
5.1 Organizational Structure of a Test Team
5.1.1 Stovepipe Test Team
5.1.2 Centralized Test Team
5.1.3 IV&V Test Team
5.1.4 Systems Methodology and Test Team
5.1.5 Test Team Summary
5.2 Test Program Tasks
5.3 Test Effort Sizing
5.3.1 Test Team Sizing Methods:An Overview
5.3.2 Development Ratio Method
5.3.3 Percentage Method
5.3.4 Test Procedure Method
5.3.5 Task Planning Method
5.3.6 Test Effort Sizing Factors
5.4 Test Engineer Recruiting
5.4.1 Test Engineer Qualities
5.4.2 Test Team Composition
5.4.3 Job Requisition
5.4.4 Recruiting Activities
5.4.5 Locating Test Engineers
5.4.6 Test Engineer Interviews
5.4.7 Distinguishing the Best Candidate
5.5 Roles and Responsibilities
Part III Test Planning and Preparation
6 Test Planning:Smart Application of Testing
6.1 Test Planning:Smart Application of Testing
6.2 Test Planning Activities
6.2.1 System Description
6.2.2 Critical/High-Risk Functions
6.2.3 Test Goals,Objectives,and Strategies
6.2.4 Test Tools
6.2.5 Test Program Parameters
6.2.6 Verification Methods
6.2.7 Teset Requirements Definition
6.3 Test Requirements Management
6.3.1 Requirement Management Tools
6.3.2 Assessing the Test Requirements Risk
6.3.3 Prioritization of Tests
6.3.4 Requirements Traceability Matrix
6.4 Test Program Events,Activities,and Documentation
6.4.1 Events
6.4.2 Activities
6.4.3 Documentation
6.5 The Test Environment
6.5.1 Test Environment Preparations
6.5.2 Test Environment Integration and Setup
6.6 The Test Plan
6.6.1 Test Completion/Acceptance Criteria
6.6.2 Sample Test Plan
7 Test Analysis and Design
7.1 Test Requirements Analysis
7.1.1 Development-Level Test Analysis(Structural Approach)
7.1.2 System-Level Test Analysis(Behavioral Approach)
7.2 Test Program Design
7.2.1 Test Program Design Models
7.2.2 White-Box Techniques(Development-Level Tests)
7.2.3 Black-Box Techniques(System-Level Tests)
7.2.4 Test Design Documentation
7.3 Test Procedure Design
7.3.1 Test Procedure Design
7.3.2 Test Procedure Definition
7.3.3 Automated Versus Manual Test Analysis
Case Study:Naming Conventions
7.3.4 Manual Test Design Guidelines
7.3.5 Detailed Test Design
7.3.6 Test Data Requirements
8 Test Development
8.1 Test Development Architecture
8.1.1 Technical Environment
8.1.2 Environment Readiness Checks
8.1.3 Automation Framework Reuse Analysis
8.1.4 Test Procedure Development/Execution Schedule
8.1.5 Modularity-Relationship Analysis
8.1.6 Explanation of the Sample Modularity-Felationship Matrix
8.1.7 Calibration of the Test Tool
8.1.8 Compatibility Work-Around Solutions
Case Study:Incompatibility Work-Around Solutions
8.1.9 Manual Execution of Test Procedures
8.1.10 Test Procedure Inspections-Peer Reviews
8.1.11 Test Procedure Configuration Management
8.2 Test Development Guidelines
8.2.1 Design-to-Development Transition
8.2.2 Reusable Test Procedures
Case Study:Navigation Using Tabs or Mouse Clicks
Case Study:Testing Bitmaps Using a Capture/Playback Tool
8.2.3 Maintainable Test Procedures
Case Study:Automating Documentation
Case Study:Automated Random Testing
8.2.4 Other Guidelines
8.3 Automation Infrastructure
8.3.1 Table-Driven Test Automation
8.3.2 PC Environment Automated Setup Script
8.3.3 Automated Recording Options
8.3.4 Login Function
8.3.5 Exit Function
8.3.6 Navigation
8.3.7 Verifying GUI Standards
8.3.8 Smoke Test
Case Study:Smoke Test Application
8.3.9 Error-Logging Routine
8.3.10 Help Function Verification Script
8.3.11 Timed Message Boxes Function
8.3.12 Advanced Math Functions
Part IV Test Execution and Review
9 Test Execution
9.1 Executing and Evaluating Test Phases
9.1.1 Unit Test Execution and Evaluation
9.1.2 Integration Test Execution and Evaluation
9.1.3 System Test Execution and Evaluation
9.1.4 Test Results Analysis of Regression Tests
9.1.5 User Acceptance Test Execution and Evaluation
9.2 Defect Tracking and New Build Process
9.2.1 Defect Life-Cycle Model
9.3 Test Program Status Tracking
9.3.1 Earned Value Management System
Case Study:System Test Status Tracking
9.3.2 Test Metrics Collection and Analysis
10 Test Program Review and Assessment
10.1 Test Program Lessons Learned-Corrective Actions and Improvement Activity
10.2 Test Program Return on Investment
Case Study:Test Program Return on Investment
Case Study:Quantify Tool Return on Investment
Part V Appendixes
A How to Test Requirements
A.1 Requirements Testing Approach
Abstract
The Quality Gateway
Make the Requirement Measurable
Quantifiable Requirements
Nonquantifiable Requirements
Keeping Track
Coherency and Consistency
Completeness
Relevance
Requirement or Solution?
Stakeholder Value
Traceaility
Order in a Disorderly World
Conclusions
References
B Tools That Support the Automated Testing Life Cycle
B.1 Introduction
B.2 Business Analysis Phase
B.2.1 Business Modeling Tools
B.2.2 Configuration Management Tools
B.2.3 Defect Tracking Tools
B.2.4 Technical Review Management
B.2.5 Documentation Generators
B.3 Requirements Definition Phase
B.3.1 Requirements Management Tools
B.3.2 Requirements Verifiers
B.3.3 Use Case Generators
B.4 Analysis and Design Phase
B.4.1 Visual Modeling Tools
B.4.2 Structure Charts,Flowcharts,and Sequence Diagrams
B.4.3 Test Procedure Generators
B.5 Programming Phase
B.5.1 Syntax Checkers/Debuggers
B.5.2 Memory Leak and Runtime Error Detection Tools
B.5.3 Code Checkers
B.5.4 Static and Dynamic Analyzers
B.5.5 Unit and Integration Test Tools
B.6 Metrics Tools
B.6.1 Code(Test)Coverage Analyzers and Code Instrumentors
B.6.2 Usability Measurement Tools
B.7 Testing Support Tools
B.7.1 Test Data Generators
B.7.2 File Comparison Tools
B.7.3 Simulation Tools
B.8 Testing Phase
B.8.1 Test Management Tools
B.8.2 Network Testing Tools
B.8.3 GUI Application Testing Tools
B.8.4 Load/Performance Testing Tools
B.8.5 Web Testing Tools
B.8.6 Year 2000 Testing Tools
B.9 Other Test Tool Vendors
C Test Engineer Development
C.1 Technical Skills Stage
C.2 Test Process Stage
C.3 Team Effort Stage
C.4 Technical Stewardship Stage
C.5 Test/Project Management Stage
C.6 Business/Product Management Stage
D Sample Test Plan
D.1 Introduction
D.1.1 Purpose
D.1.2 Background
D.1.3 System Overview
D.1.4 Applicable Documents
D.1.5 Master Schedule
D.2 Roles and Responsibilities
D.2.1 Project Organization
D.2.2 Project Roles and Responsibilities
D.2.3 Test Task Structure
D.2.4 Test Team Resources
D.3 Test Program
D.3.1 Scope
D.3.2 Test Approach
D.3.3 Test Strategies
D.3.4 Automated Tools
D.3.5 Qualification Methods
D.3.6 Test Requirements
D.3.7 Test Design
D.3.8 Test Development
D.4 Test environment
D.4.1 Test Environment Configuration
D.4.2 Test Data
D.5 Test Execution
D.5.1 Test Program Reporting
D.5.2 Test Program Metrics
D.5.3 Defect Tracking
D.5.4 Configuration Management
D.6 Detailed Test Schedule
APPENDIXES
D.A Test Procedure Development guidelines
D.B Test Verification Summary and Matrix
D.C Test Procedures and Test Scripts
E Best Practices
E.1 Documented Proess
E.2 Managing Expectations
E.3 Pilot Project
E.4 Test Tool Compatibility Checks
E.5 Test Tool Upgrades
E.6 Baselined System Setup and Configuration
E.7 Software Installations in the Test Environment Baseline
E.8 Overall Test Program Objectives
E.9 Keep Automation Simple
E.10 Test Procedure Design and Development Standards
E.11 Automated Versus Manual Test Analysis
E.12 Reuse Analysis
E.13 Test Team Communication with Other Teams
E.14 Schedule Compatibility
E.15 Customer Involvement
E.16 Defect Documentation and Reporting
E.17 Automated Test Advocates and Experts
E.18 Test Team Assignments
E.19 User Group Participation
E.20 Test Tool Improvement Suggestions
E.21 Become a Beta Testing Site
E.22 Specialty Topic Experts