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