软件测试技术基础理论42页PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目组
老板
项目经理
系统架构师
程序员
SQA
测试员
SQA 是独立于项目组之外的第三方监督机构。
4.2.什么是 CMM
CMM 就是 SQA 用来监Baidu Nhomakorabea项目的一个标准质量模型。 CMM,全称为 Capability Maturity Model,即
“能力成熟度模型”,是由卡梅隆大学于20世纪80 年代制定的 ,CMM公分为5级。 “一流公司做标准(Standard),二流公司做品牌 (Brand Name),三流公司做产品(Product)”。
所有人进行很好的沟通。 黑盒测试工程师要会搭建测试环境,掌握常用的黑盒测试技术; 白盒测试工程师还要求具备一定的读代码能力。
2.2.如何成为一名优秀的测试工程师
测试高手
名师指点
基础知识
测试技术
项目经验
自信
1.不断学习充电 2.阅读原版书籍 3.阅读缺陷管理系统中的缺陷报告 4.阅读高手写的测试用例 5.学习产品相关的业务知识
对功能、性能,以及软件所运行的软硬件环境进行测试。 验收测试(acceptance testing)指的是在系统测试的后期,以用户测试为主,或有
测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工 序。
单元、集成、系统、验收测试的比较
测试名称 单元测试
集成测试 系统测试 验收测试
5.7.缺陷具有免疫性
测试人员要根据新版本的特点去修改维护测试用例。
每修复3~4个缺陷,一般就会产生一个新的缺陷, 要充分注意修改错误所产生的影响和波及效果。
第四章 黑盒测试技术
1.等价类技术(equivalence class testing) 1.1.等价类方法总结 2.边界值技术(boundary value testing) 3.因果图法(cause-effect graphs) 3.1.因果图法小结 4.流程图法(workflow method) 5.黑盒测试技术的综合运用
“一能力”指沟通能力。 细心:是对测试人员的基本要求。 耐心:要学会乐在其中。 信心:信心百倍地去面对难度较大的测试工作,并在实践中学习和
提高。 服务意识:现在的软件更多是卖一种服务,一种解决方案。 团队合作意识:项目组不提倡个人英雄主义,更好的发挥就必须树
立团队合作的意识。 沟通能力:测试是连接开发和用户的接口。需要能够与涉及测试的
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的 实际需求。
动态测试(dynamic testing),是指实际运行被测程序,输入相应 的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我 们判断一个测试属于动态测试还是静态测试,唯一的标准就是看到是 否运行程序。
时间比较 1
2 4 2
4.功能测试和性能测试
4.1.功能测试 功能测试(function testing),是黑盒测试的一方面,
它检查实际软件的功能是否符合用户的需求。 功能测试又细分为很多种:逻辑功能测试、界面测试、
易用性测试、安装测试、兼容性测试等。
4.2.性能测试
性能测试(performance testing)是软件测试的高端领域,性能测试一般 要用到自动化测试工具。软件的性能包括很多方面,主要有时间性能和空间 性能两种。
已管理级优化级 已定义级 可重复级 初始级
4.3.SQA与测试
测试是发现问题(Detection),SQA是在预防问题 (Prevention)。测试其实有一些亡羊补牢的意味, 测试的时候,Bug已经实际存在了;而SQA则需要将 Bug扼杀在萌芽之前。
理论上,测试作为软件生命周期的一部分,其过程 也要受到SQA监督。
的《详细设计》文档。 通过标准有语句覆盖率和分支覆盖率。 3.2.集成测试(integrating testing)是单元测试的下一个阶段,是指将通过测试的单
元模块组成系统或子系统,再进行测试,重点测试不同模块的接口部分。 3.3.系统测试(system testing)指的是将整个软件系统看做1个整体进行测试,包括
第一章 软件测试基本概念
1.什么是软件 2.软件的分类 3.什么是Bug 4.什么是软件测试 5.测试环境 6.测试用例
1.什么是软件
软件
测试
程序
文档
软件测试 硬件测试
程序测试 文档测试
2.软件的分类
按照功能划分
按照技术架构 划分
按照用户划分
按照开发的规 模划分
系统软件
单机版软件
产品软件
应用软件
3.3.软件测试和软件质量的关系
计算机产品质量检验员,其实就是软件测试工程师
软件的高质量是设计出来的,而不是靠测试修补出 来的。
用户使用软件时出现问题,大家首先想到的一般都 是测试人员没有尽到责任,没有把好关。遇到这种问 题,测试人员一定要分析是由于自己工作疏忽带来的, 还是软件设计本身的缺陷,如果是后者,就一定要据 理力争。
在国内,许多名义上的SQA做着测试的工作;许多 测试人员做着部分SQA的工作,职业定位比较模糊。
5.软件测试的一些基本原则
5.1.Zero Bug 与 Good Enough Zero Bug ,指的是软件没有任何Bug, Good Enough,指的是只要软件达到一定的质量要求,就可以停止
时间性能:主要是指软件的一个具体事务的响应时间(respond time)。
空间性能:主要是指软件运行时所消耗的系统资源。
软件性能测试分为一般性能测试、稳定性测试、负载测试和压力测试。
1.一般性能测试指的是让被测系统在正常的软硬件环境下运行,不向其施加 任何压力的性能测试。
2.稳定性测试,也叫可靠性测试,是指连续运行被测系统,检查系统运行时 的稳定程度。
搭建测试环境:
1.真实(尽量模拟用户的真实使用环境)
2.干净(测试环境中尽量不要安装其他与被测试软件无关的软件)
3.无毒(测试环境没有中毒)
4.独立(测试环境和开发环境独立)
输入
输出
测试环 境
测试用 例
“输入”包括测试数据和操作步骤;“输出”指的是期望结果; “测试环境”指的就是系统环境设置。
软件?
白盒测试(white-box testing),指的是把盒子盖打 开,去研究里面的源代码和程序结构 。
2.静态测试和动态测试
静态测试(static testing),是指不实际运行被测软件,而只是静态 地检查程序代码、界面或文档中可能存在的错误的过程。
对于代码测试,主要测试代码是否符合相应的标准和规范。
5.5.软件测试应该追溯需求
原始需求
原始要求
正确的规格说明
错误的规格说明
正确的设计
错误的设计\对错误说明的设计
正确编码
错误编码\对错误设计的编码\对错误说明的编码
正确功能
可改正的错误\不可改正的错误\潜伏的错误
不完善的软件产品
5.6.缺陷的二八定理
软件80%的缺陷集中在20%的模块中。通常称为缺 陷的集群现象或是虫子窝现象。
测试了。 Good-Enough原则就是一种权衡投入/产品比的原则 制定最低测试通过标准和测试内容,然后具体问题具体分析。 5.2.不要试图穷举测试 穷举测试指的是测试时考虑所有可能的输入值。穷举测试不好做,
需要在测试用例上多下功夫,设计出优秀的测试用例,用最少的测试 用例达到最大的覆盖率。 5.3.开发人员不能既是运动员又是裁判员 测试应该由独立的第三方机构来完成。 5.4.软件测试要尽早执行
单元测试
软件测试
按阶段划分
按是否运行程序 划分
按是否查看源代 码划分
其他
集成测试 系统测试 验收测试 静态测试 动态测试 白盒测试 黑盒测试 回归测试 冒烟测试 随机测试
功能测试 性能测试
逻辑功能测试 界面测试
易用性测试 安装测试
兼容性测试 一般性能测试 稳定性测试
负载测试 压力测试
第三章 软件测试的常识
冒烟测试(smoke testing),是指在对一个新版 本进行大规模的测试之前,先验证一下软件的基本功 能是否实现,是否具备可测性。
随机测试(random testing),是指测试中所有的 输入数据都是随机生成的,其目的是模拟用户的真实 操作,并发现一些边缘性的错误。
6.不同测试分类之间的关系
测试对象
最小模块, 如函数,类 等
模块间的接 口,如参数 传递
整个系统, 包括软硬件
整个系统, 包括软硬件
测试依据
人员
测试方法
《详细设计》白盒测试工 主要采用白 程师或开发 盒测试 人员
《概要设计》白盒测试工 黑盒和白盒 程师或开发 测试相结合 人员
《需求规格 黑盒测试工 黑盒测试 说明书》 程师
《需求规格 主要为用户, 黑盒测试 说明书》, 还可能有测 验收标准 试工程师等
软件
程序
文档
测试?
软件测试是为了尽快尽早 地发现在软件产品中所存 在的各种软件缺陷而展开 的贯穿整个软件开发生命 周期、对软件产品(包括 阶段性产品)进行验证和
确认的活动过程。
第二章 软件测试分类
1.黑盒测试和白盒测试 2.静态测试和动态测试 3.单元测试、集成测试、系统测试和验收测试
1.公司里测试部门的组织结构 2.软件测试工程师所需具备的素质 2.1测试人员的基本从业素质 2.2如何成为一名优秀的测试工程师 3.软件测试和软件质量的关系 4.软件测试和 SQA 的关系 4.1.什么是 SQA 4.2.什么是 CMM 4.3.SQA 与测试 5.软件测试的一些基本原则 5.1.Zero Bug 与 Good Enough 5.2.不要试图穷举测试 5.3.开发人员不能既是运动员又是裁判员 5.4.软件测试要尽早执行 5.5.软件测试应该追溯需求 5.6.缺陷的二八定理 5.7.缺陷具有免疫性
C/S结构软 件
B/S结构软 件
项目软件
定义:
软件的Bug指的是软件中(包括程序和文档) 不符合用户需求的问题。
标准定义:
使用人工或自动手段,来运行或测试某个系 统的过程。其目的在于检验它是否满足规定的 需求或弄清预期结果与实际结果之间的差别。
软件
硬件
网络
测试环 境
作为一名合格的软件测试工程师,不仅要熟悉软件的知识,也要了解 硬件和网络的相关知识。
分担测试人员压力的角色---- QA
3.4.软件测试和 SQA 的关系
4.1.什么是 SQA SQA(Software Quality Assurance,软件质量保障)的完整定
义为:为确保软件开发过程和结果符合预期要求而建立的一系列规程, 以及依照规程和计划采取的一系列活动及其结果评价。而做软件质量 保障的具体工作人,我们称其为 QA 。
3.1单元测试 3.2集成测试 3.3系统测试和验收测试
4.功能测试和性能测试
4.1功能测试
4.2性能测试
5.回归测试、冒烟测试、随机测试 6.不同测试分类之间的关系
1.黑盒测试和白盒测试
黑盒测试(black-box testing),指的是把软件看作 是一个黑盒子,我们不去关心盒子里面的结构是什么 样子的,只关心软件的输入数据和输出结果。黑盒测 试既包括功能测试,也包括性能测试。
1.公司测试部门的组织结构
小公司的组织 结构
技术总监
项目经理
项目经理
开发工程师
开发工程师
测试工程师
测试工程师
大公司组织结 构
测试经理
测试工程师
专业外包公司 组织结构
项目经理
测试组长
测试组长
测试工程师
测试工程师
项目经理
项目经理
开发工程师
开发工程师
2.软件测试工程师所需具备的素质
2.1测试人员的基本从业素质 “三心二意一能力” “三心”指细心、耐心和信心;“二意”指服务意识、团队合作意识;
3.单元测试、集成测试、系统测试和验收测试
它们都是按照软件测试的阶段来划分的。
3.1.单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证。 单元就是人为规定的最小的被测功能模块。 单元测试的依据主要有两个,一是源程序本身,包括代码和注释;还有一个就是项目
3.负载测试,是性能测试的一种,通常是指让被测系统在其能忍受的压力的 极限范围之内连续运行,来测试系统的稳定性。
4.压力测试,是性能测试的一种,通常是指持续不断地给被测系统增加压力, 直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
5.回归测试、冒烟测试、随机测试
回归测试(regression testing),是指对软件的 新的版本测试时,重复执行上一个版本测试时的用例
老板
项目经理
系统架构师
程序员
SQA
测试员
SQA 是独立于项目组之外的第三方监督机构。
4.2.什么是 CMM
CMM 就是 SQA 用来监Baidu Nhomakorabea项目的一个标准质量模型。 CMM,全称为 Capability Maturity Model,即
“能力成熟度模型”,是由卡梅隆大学于20世纪80 年代制定的 ,CMM公分为5级。 “一流公司做标准(Standard),二流公司做品牌 (Brand Name),三流公司做产品(Product)”。
所有人进行很好的沟通。 黑盒测试工程师要会搭建测试环境,掌握常用的黑盒测试技术; 白盒测试工程师还要求具备一定的读代码能力。
2.2.如何成为一名优秀的测试工程师
测试高手
名师指点
基础知识
测试技术
项目经验
自信
1.不断学习充电 2.阅读原版书籍 3.阅读缺陷管理系统中的缺陷报告 4.阅读高手写的测试用例 5.学习产品相关的业务知识
对功能、性能,以及软件所运行的软硬件环境进行测试。 验收测试(acceptance testing)指的是在系统测试的后期,以用户测试为主,或有
测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工 序。
单元、集成、系统、验收测试的比较
测试名称 单元测试
集成测试 系统测试 验收测试
5.7.缺陷具有免疫性
测试人员要根据新版本的特点去修改维护测试用例。
每修复3~4个缺陷,一般就会产生一个新的缺陷, 要充分注意修改错误所产生的影响和波及效果。
第四章 黑盒测试技术
1.等价类技术(equivalence class testing) 1.1.等价类方法总结 2.边界值技术(boundary value testing) 3.因果图法(cause-effect graphs) 3.1.因果图法小结 4.流程图法(workflow method) 5.黑盒测试技术的综合运用
“一能力”指沟通能力。 细心:是对测试人员的基本要求。 耐心:要学会乐在其中。 信心:信心百倍地去面对难度较大的测试工作,并在实践中学习和
提高。 服务意识:现在的软件更多是卖一种服务,一种解决方案。 团队合作意识:项目组不提倡个人英雄主义,更好的发挥就必须树
立团队合作的意识。 沟通能力:测试是连接开发和用户的接口。需要能够与涉及测试的
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的 实际需求。
动态测试(dynamic testing),是指实际运行被测程序,输入相应 的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我 们判断一个测试属于动态测试还是静态测试,唯一的标准就是看到是 否运行程序。
时间比较 1
2 4 2
4.功能测试和性能测试
4.1.功能测试 功能测试(function testing),是黑盒测试的一方面,
它检查实际软件的功能是否符合用户的需求。 功能测试又细分为很多种:逻辑功能测试、界面测试、
易用性测试、安装测试、兼容性测试等。
4.2.性能测试
性能测试(performance testing)是软件测试的高端领域,性能测试一般 要用到自动化测试工具。软件的性能包括很多方面,主要有时间性能和空间 性能两种。
已管理级优化级 已定义级 可重复级 初始级
4.3.SQA与测试
测试是发现问题(Detection),SQA是在预防问题 (Prevention)。测试其实有一些亡羊补牢的意味, 测试的时候,Bug已经实际存在了;而SQA则需要将 Bug扼杀在萌芽之前。
理论上,测试作为软件生命周期的一部分,其过程 也要受到SQA监督。
的《详细设计》文档。 通过标准有语句覆盖率和分支覆盖率。 3.2.集成测试(integrating testing)是单元测试的下一个阶段,是指将通过测试的单
元模块组成系统或子系统,再进行测试,重点测试不同模块的接口部分。 3.3.系统测试(system testing)指的是将整个软件系统看做1个整体进行测试,包括
第一章 软件测试基本概念
1.什么是软件 2.软件的分类 3.什么是Bug 4.什么是软件测试 5.测试环境 6.测试用例
1.什么是软件
软件
测试
程序
文档
软件测试 硬件测试
程序测试 文档测试
2.软件的分类
按照功能划分
按照技术架构 划分
按照用户划分
按照开发的规 模划分
系统软件
单机版软件
产品软件
应用软件
3.3.软件测试和软件质量的关系
计算机产品质量检验员,其实就是软件测试工程师
软件的高质量是设计出来的,而不是靠测试修补出 来的。
用户使用软件时出现问题,大家首先想到的一般都 是测试人员没有尽到责任,没有把好关。遇到这种问 题,测试人员一定要分析是由于自己工作疏忽带来的, 还是软件设计本身的缺陷,如果是后者,就一定要据 理力争。
在国内,许多名义上的SQA做着测试的工作;许多 测试人员做着部分SQA的工作,职业定位比较模糊。
5.软件测试的一些基本原则
5.1.Zero Bug 与 Good Enough Zero Bug ,指的是软件没有任何Bug, Good Enough,指的是只要软件达到一定的质量要求,就可以停止
时间性能:主要是指软件的一个具体事务的响应时间(respond time)。
空间性能:主要是指软件运行时所消耗的系统资源。
软件性能测试分为一般性能测试、稳定性测试、负载测试和压力测试。
1.一般性能测试指的是让被测系统在正常的软硬件环境下运行,不向其施加 任何压力的性能测试。
2.稳定性测试,也叫可靠性测试,是指连续运行被测系统,检查系统运行时 的稳定程度。
搭建测试环境:
1.真实(尽量模拟用户的真实使用环境)
2.干净(测试环境中尽量不要安装其他与被测试软件无关的软件)
3.无毒(测试环境没有中毒)
4.独立(测试环境和开发环境独立)
输入
输出
测试环 境
测试用 例
“输入”包括测试数据和操作步骤;“输出”指的是期望结果; “测试环境”指的就是系统环境设置。
软件?
白盒测试(white-box testing),指的是把盒子盖打 开,去研究里面的源代码和程序结构 。
2.静态测试和动态测试
静态测试(static testing),是指不实际运行被测软件,而只是静态 地检查程序代码、界面或文档中可能存在的错误的过程。
对于代码测试,主要测试代码是否符合相应的标准和规范。
5.5.软件测试应该追溯需求
原始需求
原始要求
正确的规格说明
错误的规格说明
正确的设计
错误的设计\对错误说明的设计
正确编码
错误编码\对错误设计的编码\对错误说明的编码
正确功能
可改正的错误\不可改正的错误\潜伏的错误
不完善的软件产品
5.6.缺陷的二八定理
软件80%的缺陷集中在20%的模块中。通常称为缺 陷的集群现象或是虫子窝现象。
测试了。 Good-Enough原则就是一种权衡投入/产品比的原则 制定最低测试通过标准和测试内容,然后具体问题具体分析。 5.2.不要试图穷举测试 穷举测试指的是测试时考虑所有可能的输入值。穷举测试不好做,
需要在测试用例上多下功夫,设计出优秀的测试用例,用最少的测试 用例达到最大的覆盖率。 5.3.开发人员不能既是运动员又是裁判员 测试应该由独立的第三方机构来完成。 5.4.软件测试要尽早执行
单元测试
软件测试
按阶段划分
按是否运行程序 划分
按是否查看源代 码划分
其他
集成测试 系统测试 验收测试 静态测试 动态测试 白盒测试 黑盒测试 回归测试 冒烟测试 随机测试
功能测试 性能测试
逻辑功能测试 界面测试
易用性测试 安装测试
兼容性测试 一般性能测试 稳定性测试
负载测试 压力测试
第三章 软件测试的常识
冒烟测试(smoke testing),是指在对一个新版 本进行大规模的测试之前,先验证一下软件的基本功 能是否实现,是否具备可测性。
随机测试(random testing),是指测试中所有的 输入数据都是随机生成的,其目的是模拟用户的真实 操作,并发现一些边缘性的错误。
6.不同测试分类之间的关系
测试对象
最小模块, 如函数,类 等
模块间的接 口,如参数 传递
整个系统, 包括软硬件
整个系统, 包括软硬件
测试依据
人员
测试方法
《详细设计》白盒测试工 主要采用白 程师或开发 盒测试 人员
《概要设计》白盒测试工 黑盒和白盒 程师或开发 测试相结合 人员
《需求规格 黑盒测试工 黑盒测试 说明书》 程师
《需求规格 主要为用户, 黑盒测试 说明书》, 还可能有测 验收标准 试工程师等
软件
程序
文档
测试?
软件测试是为了尽快尽早 地发现在软件产品中所存 在的各种软件缺陷而展开 的贯穿整个软件开发生命 周期、对软件产品(包括 阶段性产品)进行验证和
确认的活动过程。
第二章 软件测试分类
1.黑盒测试和白盒测试 2.静态测试和动态测试 3.单元测试、集成测试、系统测试和验收测试
1.公司里测试部门的组织结构 2.软件测试工程师所需具备的素质 2.1测试人员的基本从业素质 2.2如何成为一名优秀的测试工程师 3.软件测试和软件质量的关系 4.软件测试和 SQA 的关系 4.1.什么是 SQA 4.2.什么是 CMM 4.3.SQA 与测试 5.软件测试的一些基本原则 5.1.Zero Bug 与 Good Enough 5.2.不要试图穷举测试 5.3.开发人员不能既是运动员又是裁判员 5.4.软件测试要尽早执行 5.5.软件测试应该追溯需求 5.6.缺陷的二八定理 5.7.缺陷具有免疫性
C/S结构软 件
B/S结构软 件
项目软件
定义:
软件的Bug指的是软件中(包括程序和文档) 不符合用户需求的问题。
标准定义:
使用人工或自动手段,来运行或测试某个系 统的过程。其目的在于检验它是否满足规定的 需求或弄清预期结果与实际结果之间的差别。
软件
硬件
网络
测试环 境
作为一名合格的软件测试工程师,不仅要熟悉软件的知识,也要了解 硬件和网络的相关知识。
分担测试人员压力的角色---- QA
3.4.软件测试和 SQA 的关系
4.1.什么是 SQA SQA(Software Quality Assurance,软件质量保障)的完整定
义为:为确保软件开发过程和结果符合预期要求而建立的一系列规程, 以及依照规程和计划采取的一系列活动及其结果评价。而做软件质量 保障的具体工作人,我们称其为 QA 。
3.1单元测试 3.2集成测试 3.3系统测试和验收测试
4.功能测试和性能测试
4.1功能测试
4.2性能测试
5.回归测试、冒烟测试、随机测试 6.不同测试分类之间的关系
1.黑盒测试和白盒测试
黑盒测试(black-box testing),指的是把软件看作 是一个黑盒子,我们不去关心盒子里面的结构是什么 样子的,只关心软件的输入数据和输出结果。黑盒测 试既包括功能测试,也包括性能测试。
1.公司测试部门的组织结构
小公司的组织 结构
技术总监
项目经理
项目经理
开发工程师
开发工程师
测试工程师
测试工程师
大公司组织结 构
测试经理
测试工程师
专业外包公司 组织结构
项目经理
测试组长
测试组长
测试工程师
测试工程师
项目经理
项目经理
开发工程师
开发工程师
2.软件测试工程师所需具备的素质
2.1测试人员的基本从业素质 “三心二意一能力” “三心”指细心、耐心和信心;“二意”指服务意识、团队合作意识;
3.单元测试、集成测试、系统测试和验收测试
它们都是按照软件测试的阶段来划分的。
3.1.单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证。 单元就是人为规定的最小的被测功能模块。 单元测试的依据主要有两个,一是源程序本身,包括代码和注释;还有一个就是项目
3.负载测试,是性能测试的一种,通常是指让被测系统在其能忍受的压力的 极限范围之内连续运行,来测试系统的稳定性。
4.压力测试,是性能测试的一种,通常是指持续不断地给被测系统增加压力, 直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
5.回归测试、冒烟测试、随机测试
回归测试(regression testing),是指对软件的 新的版本测试时,重复执行上一个版本测试时的用例