第七、八章 软件自动化、面向对象的测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、软件自动化测试的工具
测试工具可以从两个不同的方面去分类: 根据测试方法不同,自动化测试工具可以分为: 白盒测试工具和黑盒测试工具。 根据测试的对象和目的,自动化测试工具可以分 为: 单元测试工具、功能测试工具、负载测试工具、 性能测试工具、Web测试工具、数据库测试工具、 回归测试工具、嵌入式测试工具、页面链接测试 工具、测试设计与开发工具、测试执行和评估工 具、测试管理工具等。
一、面向对象的软件测试基本概念
面向对象程序的结构不再是传统的功能模 块结构,作为一个整体,原有集成测试所要求 的逐步将开发的模块搭建在一起进行测试的方 法已成为不可能。而且,面向对象软件抛弃了 传统的开发模式,对每个开发阶段都有不同以 往的要求和结果,已经不可能用功能细化的观 点来检测面向对象分析和设计的结果。因此, 传统的测试模型对面向对象软件已经不再适用。 针对面向对象软件的开发特点,应该有一种新 的测试模型。
3、测试设计与开发工具
测试设计是说明被测软件特征或特征组合的方法, 并确定选择相关测试用例的过程。 测试开发是将测试设计转换成具体的测试用例的 过程。 测试设计和开发需要的工具类型有: 1、测试数据生成器 2、基于需求的测试设计工具 3、捕获/回放 4、覆盖分析
4、测试执行和评估工具
广义的软件测试实际是由确认、验证、测试三个方 面组成。 确认:是评估将要开发的软件产品是否是正确无误、 可行和有价值的。 验证:是检测软件开发的每个阶段、每个步骤的结果 是否正确无误,是否与软件开发各阶段的要求或期望 的结果相一致。验证意味着确保软件是会正确无误的 实现软件的需求,开发过程是沿着正确的方向在进行。 测试:与狭隘的测试概念统一。通常是经过单元测试、 集成测试、系统测试三个环节。 事实上,确认、验证、测试是相辅相成的。确认无 疑会产生验证和测试的标准,而验证和测试通常又会 帮助完成一些确认,特别是在系统测试阶段。
测试执行和评估是执行测试用例并对测试结果进 行评估的过程,包括选择用于执行的 测试用例、设臵测试环境、运行所选择的测试用 例、记录测试执行过程、分析潜在的故障,并检 查测试工作的有效性。评估类工具对执行测试用 例和评估测试结果过程起到辅助作用。测试执行 和评估类工具有: 1、捕获/回放 2、覆盖分析 3、存储器测试
Biblioteka Baidu
回归测试 回归测试是自动化测试的强项,它能够很好的验证 你是否引入了新的缺陷,老的缺陷是否修改过来了。 在某种程度上可以把自动化测试工具叫做回归测试工 具。 多次重复、机械性操作 自动化测试最适用于多次重复、机械性动作,这样 的测试对它来说从不会失败。比如要向系统输入大量 的相似数据来测试。 需要频繁运行测试 在一个项目中需要频繁的运行测试,测试周期按天 算,就能最大限度的利用测试脚本,提高工作效率。 性能、压力测试 实现多人同时对系统进行操作时是否正常处理和响 应以及系统可承受的最大访问量的测试。
面向对象的开发模型突破了传统的瀑布模型,将 开发分为面向对象分析(OOA),面向对象设计 (OOD),和面向对象编程(OOP)三个阶段。 分析阶段产生整个问题空间的抽象描述,在此基 础上,进一步归纳出适用于面向对象编程语言的 类和类结构,最后形成代码。由于面向对象的特 点,采用这种开发模型能有效的将分析设计的文 本或图表代码化,不断适应用户需求的变动。针 对这种开发模型,结合传统的测试步骤的划分, 本文建议一种整个软件开发过程中不断测试的测 试模型,使开发阶段的测试与编码完成后的单元 测试、集成测试、系统测试成为一个整体。
传统测试模式与面向对象的测试模式的最 主要的区别在于,面向对象的测试更关注对象 而不是完成输入/输出的单一功能,这样的话 测试可以在分析与设计阶段就先行介入,便得 测试更好的配合软件生产过程并为之服务。与 传统测试模式相比,面向对象测试的优点在于: 更早地定义出测试用例;早期介入可以降低成 本;尽早的编写系统测试用例以便于开发人员 与测试人员对系统需求的理解保持一致;面向 对象的测试模式更注重于软件的实质。
简而言之,所谓的自动化测试就是将您现有的手动 测试流程给自动化。而且要实施自动化测试的公司或 组织,本身必须要有一套正规的手动测试流程。而这 个正规的手动测试流程至少要包含以下的条件: 详细的测试个案:从商业功能规格或设计文件而来 的测试个案,包含可预期的预期结果。 独立的测试环境:包含可回复测试资料的测试环境, 以便在应用软件每次变动后,都可以重复执行测试个 案。
5、测试管理工具
测试管理工具用于对测试过程进行管理,帮助完 成制定测试计划,跟踪测试运行结果。通常,测 试管理工具对测试计划、测试用例、测试实施进 行管理,还包括缺陷跟踪管理等。 常用的测试管理工具有: IBM公司的Rational Test Manager 测试管理工具包括以下内容: 测试用例管理 缺陷跟踪管理(问题跟踪管理) 配臵管理
(1) 对认定的对象的测试:
OOA中认定的对象是对问题空间中的结构,其他系统,设 备,被记忆的事件,系统涉及的人员等实际实例的抽象。 对它的测试可以从如下方面考虑: 1、认定的对象是否全面,是否问题空间中所有涉及到的实 例都反映在认定的抽象对象中。 2、认定的对象是否具有多个属性。只有一个属性的对象通 常应看成其他对象的属性,而不是抽象为独立的对象。 3、对认定为同一对象的实例是否有共同的,区别于其他实 例的共同属性。 4、对认定为同一对象的实例是否提供或需要相同的服务, 如果服务随着不同的实例而变化,认定的对象就需要分解 或利用继承性来分类表示。 5、如果系统没有必要始终保持对象代表的实例的信息,提 供或者得到关于它的服务,认定的对象也无必要。 6、认定的对象的名称应该尽量准确,适用。
具体有如下不同: 1、测试的对象不同:传统软件测试的对象是面 向过程的软件,一般用结构化方法构建;面向对 象测试的对象是面向对象软件,采用面向对象的 概念和原则,用面向对象的方法构建。 2、测试的基本单位不同:前者是模块;面向对 象测试的基本单元是类和对象。 3、测试的方法和策略不同:传统软件测试采用 白盒测试,黑盒测试,路径覆盖等方法;面向对 象测试不仅吸纳了传统测试方法,也采用各种类 测试等方法,而且集成测试和系统测试的方法和 策略也很不相同。
2、黑盒测试工具
黑盒测试工具是在明确软件产品应具有的功能的条件 下,完全不考虑被测程序的内部结构和内部特性,通 过测试来检验软件功能是否按照软件需求规格的说明 正常工作。 按照完成的职能不同,黑盒测试工具可以分为: 功能测试工具——用于检测程序能否达到预期的功能要 求并正常运行。 性能测试工具——用于确定软件和系统的性能。 常用的黑盒测试工具有: Compuware公司的QACenter IBM公司的Rational TeamTest
一、什么是软件自动化测试
自动化测试的定义: 使用一种自动化测试工具来验证各种软件 测试的需求,它包括测试活动的管理与实施。 自动化测试就是希望能够通过自动化测试 工具或其他手段,按照测试工程师的预定计划 进行自动的测试,目的是减轻手工测试的劳动 量,从而达到提高软件质量的目的。自动化测 试的目的在于发现老缺陷。而手工测试的目的 在于发现新缺陷。
1、白盒测试工具
白盒测试工具一般是针对被测源程序进行的测试,测 试所发现的故障可以定位到代码级。根据测试工具工 作原理的不同,白盒测试的自动化工具可分为静态测 试工具和动态测试工具。 静态测试工具——是在不执行程序的情况下,分析 软件的特性。静态分析主要集中在需求文档、设计文 档以及程序结构方面。按照完成的职能不同,静态测 试工具包括以下几种类型: (1)代码审查 (2)一致性检查 (3)错误检查 (4)接口分 析 (5)输入输出规格说明分析检查 (6)数据流分析 (7)类型分析 (8)单元分析 (9)复杂度分析
第七、八章 软件自动化测试、面向对象 的软件测试
宁华 287263358@qq.com
第七章 软件自动化测试
本章重点: 了解软件自动化测试 掌握软件自动化测试方法 了解软件自动化测试工具
通常,软件测试的工作量很大(据统计, 测试会占用到40%的开发时间;一些可靠性要 求非常高的软件,测试时间甚至占到开发时间 的60%)。而测试中的许多操作是重复性的、 非智力性的和非创造性的,并要求做准确细致 的工作,计算机就最适合于代替人工去完成这 样的任务。 软件自动化测试是相对手工测试而存在的, 主要是通过所开发的软件测试工具、脚本等来 实现,具有良好的可操作性、可重复性和高效 率等特点。
1、面向对象分析的测试(OOA Test) 是"把E-R图和语义网络模型,即信息造型 中的概念,与面向对象程序设计语言中的重要 概念结合在一起而形成的分析方法",最后通 常是得到问题空间的图表的形式描述。 OOA直接映射问题空间,全面的将问题空 间中实现功能的现实抽象化。
OOA阶段的测试划分为以下五个方面: 对认定的对象的测试 对认定的结构的测试 对认定的主题的测试 对定义的属性和实例关联的测试 对定义的服务和消息关联的测试
测试模型如下图所示:
OOA Test和OOD Test 是对分析结果和设计结果的测试,主要是 对分析设计产生的文本进行,是软件开发前期的关键性测试。 OOP Test主要针对编程风格和程序代码实现进行测试,其主要 的测试内容在面向对象单元测试和面向对象集成测试中体现。
二、面向对象软件测试内容及方法
动态测试工具——是直接执行被测程序以提供测试 活动。它需要实际运行被测系统,并设臵断点, 向代码生成的可执行文件中插入一些监测代码, 掌握断点这一时刻程序运行数据(对象属性、变 量的值等),具有功能确认、接口测试、覆盖率 分析、性能分析等性能。 动态测试工具可以分为以下几种类型: (1)功能确认与接口测试 (2)覆盖测试 (3)性能测试 (4)内存分析 常用的动态工具有: Compuware公司的DevPartner IBM公司的 Rational
假如您目前的测试流程并未包含上述条件,即使您 导入了自动化测试,也不会得到多大的好处。
自动化测试最实际的应用与目的是自动化回归测试。
二、什么情况适合软件自动化测试
自动化测试不是适合所有公司、所有项目,以下情 况适合自动化测试: 产品型项目 产品型的项目,每个项目只改进少量的功能,但每 个项目必须反反复复的测试那些没有改动过的功能。 这部分测试完全可以让自动化测试来承担, 同时可以 把新加入的功能的测试也慢慢地加入到自动化测试当 中。 增量开发、持续集成的项目 由于这种开发模式是频繁的发布新版本进行测试, 也就需要频繁的自动化测试,以便把人从中解脱出来 测试新的功能。
(2) 对认定的结构的测试
对认定的分类结构的测试可从如下方面着手: 对于结构中的一种对象,尤其是处于高层的对象,是 否在问题空间中含有不同于下一层对象的特殊可能性, 即是否能派生出下一层对象。 对于结构中的一种对象,尤其是处于同一低层的对象, 是否能抽象出在现实中有意义的更一般的上层对象。 对所有认定的对象,是否能在问题空间内向上层抽象 出在现实中有意义的对象 高层的对象的特性是否完全体现下层的共性 低层的对象是否有高层特性基础上的特殊性
第八章 面向对象的软件测试
本章重点: 掌握面向对象的软件测试基本概念 掌握面向对象软件测试内容 熟悉面向对象软件测试方法
面向对象方法是一种把面向对象的思想应 用于软件开放过程中,指导开发活动的系统方 法,是建立在“对象”概念基础上的方法学。 面向对象方法作为一种新型的独具优越性的新 方法正在逐渐代替被广泛使用的面向过程开发 方法,被看成是解决软件危机的新兴技术。面 向对象技术产生更好的系统结构,更规范的编 程风格,极大的优化了数据使用的安全性,提 高了程序代码的重用,一些人就此认为面向对 象技术开发出的程序无需进行测试。