《软件测试技术总复习PPT-Student.ppt》由会员分享,可在线阅读,更多相关《软件测试技术总复习PPT-Student.ppt(34页珍藏版)》请在三一办公上搜索。
1、,计算机软件测试,Testing Computer Software,教学内容,软件测试的基本理论 软件测试的类型 测试计划和测试文档的编写 软件测试技巧和方法 软件测试周期的V形图 测试用例的编写 测试结果的分析 测试项目管理,需要掌握的基础知识,计算机操作 软件工程 C语言 Office软件的掌握(Excel)数据库原理 离散数学,第一章 软件测试概论,1.1 软件测试的发展1.2 软件测试内涵1.3 测试的经济学1.4 为什么需要软件测试1.5 测试样例,1.1 软件测试的发展,1.2 软件测试内涵,广义上:测试是指软件产品生存周期内 所有的检查、评审和确认活动。如设计评审、系统测试,狭
2、义上:测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。,1.3 测试经济学,在软件开发总成本中,软件测试的开销大约占到:30%50%。发现缺陷的成本Vs 修复缺陷的成本。软件维护支持费用增长:微软公司几乎每天接受25000个电话,每个电话的处理费用50100美元之间。,1.4 为什么需要软件测试,国内的软件:“重开发,轻测试”,国际公司的实践经验,第二章 测试的目标和原则,2.1 软件测试目标,软件测试不是完全测试一个程序,也不是只是验证程序运行正确,2.1 软件测试目标,简单地说,就是替用户受过,测试的最终目的是确保最终交给用户的产品
3、的功能符合用户的需求,把尽可能多的问题在产品交给用户之前发现并改正。,第二章 测试的目标和原则,2.1 软件测试目标,1.确保产品完成了它所承诺和公布的功能,并且可以访问到的功能都有明确的书面说明2.确保产品满足性能和效率的要求3.确保产品是健壮的和适应用户环境的,第二章 测试的目标和原则,2.1 软件测试目标,测试目的是为了发现尽可能多的缺陷 不符合产品规范的缺陷 偏离客户需求的缺陷 缺陷的分类 错误的Wrong 遗漏的Missing 多余的Extra,第二章 测试的目标和原则,第二章 测试的目标和原则,软件测试是为了发现错误而执行程序的过程;测试是为了证明程序有错,而不是证明程序无错;一个
4、好的测试用例是在于它能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。,软件测试的观点(经典),第二章 测试的目标和原则,2.2 软件测试基本原则,1、应尽可能早地开始测试在软件生命周期中,1个错误发现的越晚,修复错误的费用越高。,第二章 测试的目标和原则,第二章 测试的原则,2.2 软件测试基本原则,2、82原则 20的模块消耗80的资源;20的模块包含80的错误;20的错误消耗80的修改成本;,第二章 测试的原则,2.2 软件测试基本原则,3、Good Enough原则Good-enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资
5、源的浪费,同样也是一种不负责任的表现。我们的操作困难在于:如何界定什么样的测试是不充分的,什么样的测试是过分的。,第三章 测试的类型及其在软件开发工程中的地位,3.1 软件开发阶段综述,前言:,测试是一门艺术:个人的想象力 测试是一件手工艺品:熟练 测试遵循规定的测试计划:时间不够 较高的组织程度:较规范 非常规范化的测试:世界级,第三章 测试的类型及其在软件开发工程中的地位,3.1 软件开发阶段综述,开发的生命周期传统的 需求设计代码测试维护 测试不应被约束为一个单一的阶段 大多数系统错误发生在设计阶段 测试的经济性要求我们要尽可能早地开始测试,第三章 测试的类型及其在软件开发工程中的地位,
6、3.1 软件开发阶段综述,软件测试生命周期的V形图,错误,需求规格说明,缺陷,设计,错误,编码,错误,缺陷,测试,缺陷,缺陷分类,缺陷隔离,缺陷解决,修复,错误,第三章 测试的类型及其在软件开发工程中的地位,3.1 软件开发阶段综述,软件测试生命周期的V形图,错误,需求规格说明,缺陷,设计,错误,编码,错误,缺陷,测试,缺陷,缺陷分类,缺陷隔离,缺陷解决,修复,错误,测试计划;测试用例开发;运行测试用例;评估测试结果,第三章 测试的类型及其在软件开发工程中的地位,3.1 软件开发阶段综述,注意:,1.测试不应被约束为一个单一的阶段。,2.大多数系统错误发生在设计阶段。,3.测试的经济性要求我们
7、要尽可能早的开始测试,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,1.按是否需要执行被测软件,分为静态测试和动态测试:,静态测试:1.技术文档审查与评审,UML模型测试 2.代码走查:对软件的源代码进行研读,查找 错误或收 集一些度量数据,并不需要对代码进行编译和执行。动态测试:1.执行系统代码 2.通过观察软件运行时的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,2.从测试是否针对系统的内部结构角度,分为:,白盒测试:主要用于软件验证测试,开发人员执行。黑盒测试:主要用于软件确认测试,独
8、立的测试人员执行。,第三章 测试的类型及其在软件开发工程中的地位,白盒测试,也称结构测试或逻辑驱动测试 测试程序内部,基于内部逻辑结构的测试。主要方法有逻辑驱动、基路测试等。覆盖率:语句覆盖、分支覆盖、条件覆盖、条件组合覆盖、基本路径覆盖、循环覆盖、数据流覆盖、变异覆盖。,第三章 测试的类型及其在软件开发工程中的地位,黑盒测试,不论系统知识,基于外部功能的测试 也称功能测试或数据驱动测试 黑盒测试方法主要有:功能分解,等价类 划分、边值分析、因果图、错误推测等,组合逻辑测试、基于状态转换的测试、随机测试。,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,3.测试按照执行的顺
9、序分为:,单元测试 集成测试 系统测试 验收测试 回归测试 测试和测试,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,单元测试,定义:确定程序代码的正确性,即程序代码单元是否按照预设的方式执行而产生合乎期待的结果。xUnit系列框架(包括Junit、Dunit、CUnit等等),有许多软件开发环境也都内建单元测试的功能,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,集成测试,通过测试发现和接口有关的问题 非增量集成、增量集成(自顶向下集成、自底向上集成)构造程序:使用一步到位的方法;使用增量集成的方法;自顶向下集成:深度优先;广度优先 自底向上集成:
10、实现特定子功能的簇,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,系统测试,是对整个系统进行的一系列不同测试 恢复测试:容错 安全测试:不受非法侵入 压力测试:需要反常数量、频率或资源 性能测试:测试软件在集成系统中的运行性能的 功能测试 人机交互测试 本地化测试 配置和兼容性测试 可安装性测试 安全性测试 软件可靠性测试 用户文档测试,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,验收测试,客户执行的对应于用户需求的测试,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,回归测试,针对已发现缺陷较多的模块再次组织的测试 专门针对可能会被修改影响的软件功能的附加 测试 针对修改过的软件成分的测试,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,测试和测试,测试:用户在开发者场所进行的测试,开发者指导用户进行测试;测试:软件最终用户在多个场所测试,开发者不在现场,发布前的测试。,第三章 测试的类型及其在软件开发工程中的地位,3.2 软件测试分类,软件开发的V字模型,