第一章 软件测试基本概念

§    什么是软件

§    软件的分类

§    什么是Bug

§    什么是软件测试

§    测试环境

§    测试用例

1.1 什么是软件?

§    软件是计算机中与硬件相结合的一部分,包括程序和文档。

§    软件=程序+文档

(文档也是软件的重要组成部分,包括《用户手册》、readme等都要受到重视。)

1.2 软件的分类

§    按照功能:系统软件、应用软件

§    按照技术架构:单机版、C/S结构、B/S结构

§    按照用户:产品软件、项目软件

§    按照开发规模:小型、中型、大型

1.3 什么是Bug

§    Bug的起源:一个小虫子引起继电器出错

§    Bug的定义:软件的Bug是指软件中(包括程序和文档)不符合用户需求的问题。

 分辨bug的唯一标准就是是否符合用户需求

1.4 什么是软件测试

§    标准定义:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

 软件测试是一个过程,就算没有发现bug,测试过程也是有价值的。

1.5 测试环境

§    软件测试环境=软件+硬件+网络

§    搭建测试环境要考虑:1.真实 2.干净 3.无毒 4.独立(测试环境与开发环境)

§    除了软件测试环境,还有:软件开发环境、软件生产运行环境

1.6 测试用例

§    测试用例=输入+输出+测试环境

§    测试用例模板:Excel模板和Word模板

§    Why?便于团队交流、重复测试、跟踪统计、用户自测。(缺点:花费时间)

§    When?尽早编写,比如需求书完成之后。

§    Who?测试设计人员。

§    What?根据《系统需求规格说明书》和软件模型编写。

 

第二章 软件测试分类

§    黑盒测试和白盒测试

§    静态测试和动态测试

§    单元测试、集成测试、系统测试和验收测试

§    功能测试和性能测试

§    回归测试、冒烟测试、随机测试

§    不同测试分类之间的关系

2.1 黑盒测试和白盒测试

§     黑盒测试

不关心盒子里面是什么,只关心输入和输出。

相对比较简单,不涉及代码检查,突出功能和

性能的测试。

§     白盒测试

研究源代码和程序结构。

较为复杂,突出对程序源代码的测试。

2.2 静态测试和动态测试

§    静态测试:不运行软件,直观检查程序代码、界面和文档中的错误。

§    动态测试:运行被测程序,输入测试数据,检查输出是否和预期相符。

§    静态、动态测试与黑盒、白盒测试不排斥

2.3 单元测试、集成测试、系统测试和验收测试

§     单元测试:由程序员或白盒测试工程师对软件中的最小可测功能模块进行测试。参考标准:语句覆盖率100%,分支覆盖率85%

桩stub模块(调用)和驱动driver模块(被调用)

§     集成测试:由程序员或白盒测试工程师对单元模块组成的系统或子系统测试,重点测试接口。

§     系统测试:黑盒测试工程师对整个系统和软硬件。

§     验收测试:用户对整个系统和软硬件做黑盒测试。

α测试(内测)β测试(公测)

2.4 功能测试和性能测试

§    功能测试:属于黑盒测试,分为:逻辑功能、界面、易用性、安装、兼容性测试等。

§    性能测试:软件性能包括时间性能、空间性能测试等。性能测试分为一般性能测试(单用户)、稳定性测试(单用户测时长)、负载测试(多用户测时长)和压力测试(测最大用户数),是软件测试的高端领域。

2.5 回归测试、冒烟测试、随机测试

§    回归测试:对软件的新版本重复执行上一个版本的测试用例。

§    冒烟测试:先验证一下基本功能是否实现。(电子设备先通电看看是否会冒烟……)

§    随机测试(猴子测试):像猴子乱敲,随机输入数据测试。(可以考虑作为辅助测试)

2.6 不同测试分类之间的关系

§     按阶段划分:单元测试、集成测试、系统测试、验收测试

§     按是否运行程序划分:静态测试、动态测试

§     按是否查看源码划分:白盒测试、黑盒测试

§     黑盒测试包括功能测试和性能测试

§     功能测试包括(逻辑功能、界面、易用性、安装、兼容性测试)

§     性能测试包括(一般性能、稳定性、负载、压力测试)

§     其他还有回归测试、冒烟测试、随机测试

 

第三章 软件测试的常识

§    公司里测试部门的组织结构

§    软件测试工程师所需具备的素质

§    软件测试和软件质量的关系

§    软件测试和SQA的关系

§    软件测试的一些基本原则

§     组织结构:大公司测试部和开发部分开,测试经理->测试组长->测试工程师

§     优秀的测试工程师需要细心、耐心、自信;有服务意识和团队合作意识,注重沟通能力。不断学习、阅读原版书、阅读缺陷管理系统中的缺陷报告、阅读高手写的测试用例、学习相关的业务知识。

§     SQA=Software Quality Assurance软件质量保障,负责监督开发软件。预防问题的出现

§    CMM标准=Capability Maturity Model能力成熟度模型,分为5级:初始级、可重复级、已定义级、已管理级、优化级

§    Zero Bug、Good Enough;不要穷举测试;开发和测试人员要不同;测试要尽早执行;要追溯需求;缺陷的二八定理(80%的bug集中在20%的模块中);缺陷具有免疫性

 

第四章 黑盒测试技术

§    等价类技术

§    边界值技术

§    因果图法

§    流程图法

§    黑盒测试技术的综合运用

4.1 等价类技术

§     定义:某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。

§     有效等价类:符合《需求规格说明书》,合理地输入数据集合。

§     无效等价类:不符合说明书,无意义地输入数据集合。

§     等价类划分步骤:1.考虑输入数据的数据类型 2.考虑数据范围 3.画出示意图,区分等价类 4.为每个等价类编号 5.从一个等价类选一个数据构造测试用例

§    4.2 边界值技术(取数据边界值进行验证)

§    4.3 因果图法(用于输入条件较多)

步骤:1.找出所有输入条件和输出条件,并编号 2.分析输入条

件之间的关系 3.画出输入条件的排列组合情况 4.编写测试用例

§    4.4 流程图法(便于整体把握)

§    4.5 黑盒测试技术的综合运用

首先画出流程图,然后根据需要选择因果图法或等价

类法(利用边界值技术验证)

 

第五章 缺陷管理

§    Bug的分类

§    缺陷报告

§    提交缺陷报告的注意事项

§    Bug的处理流程

§    常见的缺陷管理工具

§    Bugzilla使用指南

5.1 Bug的分类

§    按严重程度划分(Severity)

§    按优先级划分(Priority)

严重程度和优先级没有直接关系

§    按测试种类划分

§    按功能模块划分

以上两个可以混合划分

§    按Bug生命周期划分

5.3 提交缺陷报告的注意事项

§     确保重现Bug

§     要用最少且必要的步骤描述Bug

§     简洁、准确、完整

§     一个Bug一个报告

5.4 Bug的处理流程

提交报告->分配->处理->返回测试->关闭(重新打开),可利用工具完成TD、TM、Bugzilla

 

第六章 测试管理

§    软件的生命周期

§    软件测试计划

§    软件测试用例设计和实施

§    软件测试评估

§    测试团队建设

6.1 软件的生命周期

§    软件的生命周期

可行性研究需求分析->设计、编码测试->软件发布维护->淘汰

§    软件开发的生命周期

需求分析->概要设计->详细设计->编码->维护

§    软件测试的生命周期

测试计划->测试设计->测试执行->测试评估

§     软件生命周期的模型

1.瀑布模型(waterfall model)

优点:开发的各个阶段比较清晰、强调早期计划及需求调查、适合需求稳定的产品开发

缺点:依赖早期需求调查,不适应变化、单一流程,不可逆、风险往往后期显露、测试仅是编码后的一个阶段

2.螺旋模型(spiral model)

迭代开发。由需求、设计、编码、测试、集成等组成。

3.V模型

单元测试参考《详细设计》;集成测试参考《概要设计》;系统测试参考《需求规格说明书》;验收测试参考实际用户需求。

6.2 软件测试计划

§    增强测试计划的实用性

§    明确内容与过程

§    采用评审和更新机制,保证测试计划满足实际需求

§    分别创建测试计划与测试策略

测试计划对应战术,测试策略对应战略

6.3 测试用例设计和实施

认真参考书上给出的几种测试用例

6.4 软件测试评估

§    对覆盖的评测

     1.对源代码的覆盖

     2.对需求的覆盖

§    对缺陷的评测

     1.缺陷分布图

     2.缺陷趋势图

§    撰写测试总结报告

第七章 软件测试工具简介

§    软件测试工具分类

§    目前市场上主流的测试工具

§    软件测试工具的利与弊

§    如何选择软件测试工具

§      软件测试工具分类:黑盒测试工具(功能和性能)、白盒测试工具(源代码分析单元测试)、测试管理工具(管理整个流程)

§      目前市场上主流的测试工具:MI公司(Mercury Interactive)的LoadRunner(性能测试)、WinRunner(宏)、TestDirector(缩写TD,测试管理工具)、QTP(Quick Test Professional,取代WinRunner)

IBM Rational公司TM、CQ、Robot、Purity

Compuware康博公司QACenter、TrackRecord、QARun、QALoad、DevPartner

Telelogic公司Telelogic doors、Logiscope

其他公司WAS、WebLoad、TestViewManager、Bugzilla等

 

参考书第一部分勘误

§    比较大小的程序错误 P25

§    举例时的桩模块 应该是main的 P30

§    通过对上述缺陷报告单的 P51(错字)

§    排列组合(错字)P56

§    黑盒测试章等价类方法,个人觉得还应该考虑输入数据一个是数字,另一个是字母的情况

§    思考题答案错误 测试用例第三个错误 P157

 

2007年9月第二次印刷版ISBN 978-7-03-018517-4

 

文章版权:杜斟的个人博客 - 个人技术分享

本文链接:http://mcat.cc/index.php/archives/582/

转载请注明文章原始出处 !

添加新评论

返回顶部