权威网络测试概述.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
权威网络测试概述

第六章 软件测试自动化;; [本章要点] 1.自动化测试应考虑的各种因素; 2.自动化测试和手工测试中涉及的问题以及二者的优缺点; 3.应用自动化测试工具的目的; 4.自动化测试工具的分类和选择方法; 5.自动化测试过程实例及自动化测试经验。; [本章目标] 1.了解自动化测试应考虑的各种因素以及如何衡量自动化测试成本。 2.掌握自动化测试和手工测试的优缺点,知道如何正确选择两种软件测试策略。 3.了解测试工具的分类、使用目的及其选择,了解几种常用的测试工具。 4.了解自动化测试的过程。;手工测试的局限性;6.1 软件自动化测试概念与测试基础;软件自动化测试所带来的好处;No Silver Bullet - Essence and Accidents of Software Engineering ;;建立正确的自动化测试目标 ;;1.进行自动化测试的适当时机;自动化测试在软件开发周期中的位置 ;在决定是否要进行自动化???试之前,通常需要考虑如下几个主要问题: 同手工测试相比,只运行一次的自动化测试要多付出多少代价? 自动化测试的生命周期是有限的。那么,这类测试是否迟早要终止?什么事件将会导致测试中止? 在整个生命周期内,这次测试能捕获到新bug的可能性会有多大?这些难以预计的收益能够使自动化测试的成本得到补偿吗?;创建一次自动化的测试所花费的时间要比一次手工测试所花费的时间多得多。 测试成本因产品的架构以及自动化测试的方式不同而异。介绍如下几种(费用由高至低): 1 通过图形用户界面来测试产品; 2 使用GUI捕捉/回放工具来跟踪测试与产品之间的交互,同时建立脚本; 3 测试的是一个编译器; 测试成本还要考虑测试时间、Bug的多少等问题。 ;回归测试???;;6.2 软件自动化测试的原理和方法;代码分析;;;;线性脚本;结构化脚本;共享脚本;数据驱动脚本;关键词驱动脚本;;6.3 软件自动化测试的评价;;6.4 自动化测试的生命周期;自动化测试的生命周期; 为了使测试免受中介代码变化的影响,应该从以下几个方面考虑: 1、评估一下中介代码的改变会不会影响测试。如果绝不会影响到测试,使用自动测试就能节省大量的时间。 2、如果中介代码的变化会影响到测试,就必须考虑一下使用测试库函数能够使测试不受影响的可能性会有多大。 3、假如没有测试函数库——如果是在捕捉/回放的模式下使用GUI测试自动化工具——不要指望测试会不受影响。; 进行自动化测试要解决的问题就是: 自动化测试的价值必须要超过所有因此而放弃的手工测试的价值。 ;注意: 高价值的测试不可能是特征驱动测试而是任务驱动测试。; 一、分析被测试代码的结构 例子:被测试的是一段处理从银行账户里提款的代码。 把被测试的代码分成两部分: ①功能代码(feature code),它直接实现被测试代码所完成的功能。测试会专门对其进行调用。功能代码(support code)可以完成用户所进行的操作(通过使用用户界面的关联代码)。 ②支撑代码(support code),它起到支持功能代码 (support code)的作用。测试代码会对其进行调用,但并没有针对这些代码的特殊测试。 ;图1 功能代码和支撑代码示意图; 二、被测试代码的变化所带来的影响 主要考虑这样一些问题: 1.就给定的结构而言,代码的变化将会产生什么样的影响? 2.什么样的变化具有测试价值? 假设一些功能代码发生了变化,如图2中灰色图形所示: 这种变化极有可能会导致调用功能代码的测试中止。因此,如果希望使用自动化测试的方法在发生变化的功能代码(feature code)中找到bug,就必须终止原有测试。如果测试的成本很高,这样做是很不经济的。 ; 为了使原有的测试行为仍然能够保留,通常采用的做法是更改支撑代码(support code)以便能够支持其他功能代码的变动。请看图3:; 三、支撑代码的变化对测试的影响 主要从以下两方面来考虑这个问题: 代码的变化有多少?这些变化会引入多少bug? 例子 假设我正在测试一个产品,测试已经完成一半。产品已经实现了主要的功能,但是还需要增加一些辅助功能。现在我要对这些主要的功能进行测试。 测试过程中,在同如下人员进行交流的过程中提出的问题如下:; 程序员: 这些辅助的功能是否有可能需要改变产品的支撑代码?程序员有可能精心设计了支撑代码,并且考虑坚持使用可视化的用户界面来完善各种功能。如果是这样的话,那么自动化测试的价值就不大。

文档评论(0)

骨干 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档