《QTP自动化测试进阶》(1)
学习《QTP自动化测试进阶》第一章。
采用不同的项目开发模型对自动化测试有不同的影响。
(1)瀑布模型:瀑布模型在需求定义方面做得很好,这对自动化测试是有益的,包括可以尽早选择合适的自动化测试策略,让自动化测试可以高层次、整体地进行计划。
(2)RUP:RUP强调的迭×××发让自动化测试可以应用在开发周期的很大一部分时间中。但是,也意味着频繁的变更,自动化测试需要与开发策略紧密结合,关注早期构建、迭代的速度、风险、覆盖目标等。
(3)敏捷:敏捷方法打破了传统的自动化测试方法。第一个破坏点集中在自动化的可接受性测试。这种测试所使用的工具超越了传统的自动化测试工具的范围,并且,很难被其他类型的自动化重用。细粒度的迭代让每次自动化测试难以集中目标和定义标准。
要想成为专业的QTP自动化测试工程师,需要掌握很多方面的专业技术。包括:
1、VBScript 。QTP使用VBScript作为测试脚本语言,因此需要掌握很多VBScript的知识。
2、软件测试自动化框架知识。为了让自动化测试脚本的可重用性、可维护性更强,自动化测试框架方面的知识不可或缺。
3、COM/DCOM 技术。主要是Excel, Word, Outlook等相关的COM技术,例如,在自动化测试过程中经常需要调用Excel编程接口来读取数据。
4、SQL语言。查询数据库读取测试数据、添加数据库验证点,这些都需要SQL语言的基础和数据库应用基础。
5、HTML、XML、DOM 。测试WEB页面、Web服务、AJAX应用时经常需要跟这些技术打交道。
学习《QTP自动化测试进阶》第二章。
手工测试不可替代的地方至少包括以下几点:
测试用例的设计:测试人员的经验和对错误的猜测能力是工具不可替代的。
界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。
正确性的检查:人们对是非的判断、逻辑推理能力是工具不具备的。
在进行项目的自动化测试之前,先要考虑以下5个方面:
(1)测试自动化类似于软件开发过程
(2)测试自动化是一个长期的过程
(3)确保测试自动化的资源,包括人员和技能
(4)循序渐进地开展自动化测试
(5)确保测试过程的成熟度
IBM的网站上提供了一个自动化ROI计算器:
http://www-01.ibm.com/software/rational/offerings/testing/roi/tool/ROI_Rational.html
自动化测试项目计划
1 工作阶段分解
1.1 项目启动阶段
1.1.1 评估过去的项目
1.1.2 目标范围
1.1.3 效果衡量
1.1.4 团队成员构成
1.1.5 招聘
1.2 早期项目支持阶段
1.2.1 目标和目的
1.2.2 约束调研
1.2.3 可测试性评审
1.2.4 需求评审
1.2.5 测试流程分析
1.2.6 组织介入
1.3 测试自动化计划阶段
1.3.1 测试需求
1.3.2 自动化测试策略
1.3.3 可交付的成果
1.3.4 测试程序参数
1.3.5 培训计划
1.3.6 技术环境
1.3.7 自动化工具兼容性检查
1.3.8 风险评估
1.3.9 测试计划归档
1.3.10 自动化测试数据
1.3.11 自动化测试环境
1.3.12 角色和责任
1.3.13 自动化测试系统管理
1.4 测试自动化设计阶段
1.4.1 原型自动化测试环境
1.4.2 自动化技术和工具
1.4.3 自动化设计标准
1.4.4 自动化脚本编码计划
1.4.5 测试自动化库
1.5 自动化开发阶段
1.5.1 自动化脚本编码任务分配
1.5.2 脚本同行评审
1.5.3 测试脚本和工具的改进
1.5.4 测似脚本配置管理
1.6 自动化集成阶段
1.6.1 环境建立
1.6.2 测试阶段执行
1.6.3 自动化测试报告
1.6.4 问题处理
1.7 自动化过程改进阶段
1.7.1 测试工具/脚本评估
1.7.2 回顾和评审
1.7.3 维护测试过程库
1.7.4 自动化内部知识网
1.7.5 持续培训
2 时间表
2.1 关键里程碑
2.2 迭代周期目标的实现
2.3 项目进度表
3 项目资源
3.1 组队计划
3.2 资源需求计划
3.3 培训计划
3.4 预算
4 项目监控
4.1 自动化效果评估
4.2 进度控制计划
4.3 预算控制计划
4.4 报告计划
4.5 度量计划
5 配套流程
5.1 配置管理计划
5.2 缺陷跟踪和问题处理
5.3 自动化框架评估
5.4 框架归档计划
5.5 过程改进
自动化功能测试脚本的开发方式主要有以下几种:
线性的
结构化的
共享的
数据驱动的
关键字驱动的
更多参考资料:
1、《修炼成QTP高手的十个步骤》:
http://blog.csdn.net/Testing_is_believing/archive/2008/07/07/2623007.aspx
2、在2007年10月的《Better Software Magazine》中,Dion Johnson发表文章《Test Automation Grows Up》指出现在我们都把自动化测试当成是手工测试的附属品、是手工测试的“儿子”,就像当年把测试当成是开发的“儿子”一样。
3、Bob Galen在名为《Sizing up Automation Candidates – Selecting Which Tests,When To Automate Them,and Which To Take Off the Ticket Entirely》的文章中提到 , 采用不同的项目开发模型对自动化测试有不同的影响:
http://downloads.seapine.com/pub/papers/stpSizingAuto.pdf
4、Alan S.Koch在《Agility and Quality》一文中讨论了敏捷项目中测试人员的角色问题:
http://blog.csdn.net/Testing_is_believing/archive/2007/10/09/1817399.aspx
5、Alan S. Koch在《The QA Catchall》一文中提到,测试不能保证质量、技术评审也不能保证质量,质量保证必须内建于开发中:
http://blog.csdn.net/Testing_is_believing/archive/2007/09/30/1808454.aspx
6、《自动化测试与脚本编写能力》:
http://blog.csdn.net/Testing_is_believing/archive/2008/05/27/2487614.aspx
7、作为一名专业的自动化测试工程师,不应该仅仅局限于对工具的掌握和使用,应该建立测试的自动化知识体系(ABOK,Automation Body of Knowledge):
http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=category&id=69&Itemid=95
8、在《Are You Ready for the Test Automation Game》一文中,Kerry Zallar描述了软件测试组织的成熟度对于成功实施自动化测试的重要影响:
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=MAGAZINE&ObjectId=5040&tth=DYN&tt=siteemail&iDyn=2
9、《敏捷测试的最佳实践,第 4 部分: 自动化测试的 ROI》一文从自动化测试的测试脚本的开发维护成本量,测试脚本生命周期即脚本重复运行次数,测试脚本运行错误比率,测试周期长度来估算自动化测试投入产出比(EROI)模式:
http://www.ibm.com/developerworks/cn/rational/r-cn-agiletesting4/
10、Dion Johnson在《Test Automation ROI》一文中介绍了几种计算自动化测试ROI的方法:
http://www.stickyminds.com/getfile.asp?ot=XML&id=8502&fn=XDD8502filelistfilename1.pdf
11、IBM的网站上提供了一个自动化ROI计算器:
http://www-01.ibm.com/software/rational/offerings/testing/roi/tool/ROI_Rational.html
12、软件在设计时考虑可测性的问题,可以让自动化测试开展得更加顺利,Tarun Lalwani在《Developing automation friendly web application》一文中介绍了如何设计和开发自动化“友好”的Web应用程序:
http://knowledgeinbox.com/articles/qtp/general/developing-automation-friendly-web-application/
13、Michael Kelly在《Choosing a test automation framework》一文中介绍了几种自动化测试框架的脚本编写方法:
http://www.ibm.com/developerworks/rational/library/591.html
14、Automated Testing Institute归纳了自动化测试框架的演变历史,第一代框架为“线性的”,第二代框架是“数据驱动的”,第三代框架是“关键字驱动的”:
http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=article&id=69&Itemid=75
15、Bret Pettichord在《Hey Vendors, Give Us Real Scripting Languages》这篇文章中提到测试工具厂商的编程语言的种种弊端:
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=2326
16、《Ten Steps to Building Software Test Automation That Works》一文描述了迈向成功自动化测试的路线图:
http://www.qasignature.com/offers/tensteps.htm
17、LogiGear的白皮书《Achieving the Full Potential of Test Automation》中总结了一些自动化测试的经验:
http://www.logigear.com/campaigns/ta_whitepaper.pdf
18、Meir Bar-Tal在《Implementing a GUI Layer with Classes》这篇文章中提到自动化测试项目应该与开发项目一样看待:
http://www.advancedqtp.com/knowledge-base/articles/qtp-tricks4/descriptive-programming/implementing-a-gui-layer-with-classes/
转载于:https://blog.51cto.com/5587423/959907
相关文章:

JNDI概述(转载)
JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI…
怎样用Python控制图片人物动起来?一文就能Get!
作者 | 李秋键责编 | 李雪敬头图 | CSDN 下载自视觉中国出品 | AI科技大本营(ID:rgznai100)引言:近段时间,一个让梦娜丽莎图像动起来的项目火遍了朋友圈。而今天我们就将实现让图片中的人物随着视频人物一起产生动作。…

Directx11教程(61) tessellation学习(3)
现在我们看看在不同tess factor的情况下,三角形是如何细分的?(这儿三条边和内部tess factor值是一样的,而且partitioning("integer")) 下面8张图是三角形在tess factor 1到8的情况下的细分细节: 因为TS阶段是硬件自己做…

HTML語法大全
作者:闪吧標籤 , 屬性名稱 , 簡介 <! - - ... - -> 註解 <!> 跑馬燈 <marquee>...</marquee>普通捲動 <marquee behaviorslide>...</marquee>滑動 <marquee behaviorscroll>...</marquee>預設捲動 <marquee beh…
php相关书籍视频
虽然如今web领域,PHP JSP .NET 并驾齐驱,但PHP用的最广,原因不用我多说。 首先发一个PHP手册,方便查询,这个肯定是学PHP必备的。 下载地址:http://u.115.com/file/aq3e5sv9PHP100的视频教程,这个…

你究竟了解多少HTML代码
作者:十二 文章来源: 蓝色理想今天想学习一下基础知识,就看了一下HTML(4.0),发现自己对HTML掌握的太少了。很多代码都很陌生,根本就没见过,更别提用了。就拿<a></a>元素来举个例子。它的属性…

Delphi 调用webservice接口
一、使用向导 1.导入wsdl文件:file--new----other----webservice---WSDLimporter---输入wsdl地址 http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 完成之后,即可导入wsdl文件。 注:结尾处的?wsdl不能少。 2…
都是程序员,凭什么他能站在鄙视链的顶端?
在写代码、改bug之中,有时候会陷入焦虑:明年我还要继续这样的生活吗?程序员群体中有一条无形的鄙视链,最直观的表现就是薪资差异。在最新的调查报告中,全国范围内,程序员年薪达到 50 万以上的,仅…

软件开发经验总结(一)细节决定软件的成败
最近在公司做开发的时候,需要开发一个自动备份的功能,于是我想到了SQL SERVER备份调度功能,于是打开SQL SERVER 备份调度界面,想照样画葫芦做一个,然后20分钟就把该功能做出来。30分钟过去了,我的界面依然还没有做完,原来打算很快做完的界面却总是离目标…

简明 HTML CSS 开发规范
作者:wjack 文章来源: 蓝色理想//总论本规范既是一个开发规范,也是一个脚本语言参考,本规范并不是一个一成不变的必须严格遵守的条文,特殊情况下要灵活运用,做一定的变通。但是,请大家千万不…
B 站神曲damedane:精髓在于换脸,五分钟就能学会
导读:AI 换脸技术层出不穷,但一代更比一代强。最近,一个发表在 NeurIPs 2019 的 AI 换脸模型 first order motion model 火了起来,其表情迁移效果胜过同领域其它方法。最近,这项技术在 B 站引起一波新潮流……来源 | H…

html select以数组的方式提交
2019独角兽企业重金招聘Python工程师标准>>> 1).select 以数组的方式提交 <form> <input type"hidden" name"app" value"wap_test"> <select name"attribute[颜色]"> &…

META的一些功用
作者:军军 文章来源:闪吧 META的一些功用 META标记用于描述不包含在标准HTML里的一些文档信息。基于这一基 础上又开发出一些其它的有用功能,下面我挑选几种功能和大家说一下: 1、如何让搜索引擎搜索到你的页面 …
Python爬虫并自制新闻网站,太好玩了
来源 | 凹凸数据(ID:alltodata)我们总是在爬啊爬,爬到了数据难道只是为了做一个词云吗?当然不!这次我就利用flask为大家呈现一道小菜。Flask是python中一个轻量级web框架,相对于其他web框架来说…

CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法
cpu quantum造成的Oracle等待事件解决办法 不少接触数据库的朋友有一个困扰已久的问题——resmgr:cpu quantum。已经遇过不少次这种CPU突然全绿的情况,通过隐含参数屏蔽了一下,方便研究。 刚好有人问我这个问题,就干脆翻文档写一篇文章给这位…

讲解用户角色切换
方法一:有root密码,可以使用su - root切换到root下,为了安全起见,不建议使用,因为如果切换到root下,被人修改了root密码,就真的完蛋了.......方法二:通过sudo给普通用户授权…

HTML教程-各窗口间相互操作(Frame Target)
文章来源: 山西之窗由Frames分出来的几个窗口的内容并不是静止不变的,往往一个窗口的内容随着另一个窗口的要求而不断变化,这就提高了Frames的利用价值。为了完成各窗口之间的相互操作,我们必须为每一个窗口起一个名字,…

[转载] 晓说——第3期:梦回青楼 爱与自由的温柔乡(上)
转载于:https://www.cnblogs.com/6DAN_HUST/archive/2012/08/20/2647811.html
10个 Python 工程师,9个不合格!
毋庸置疑,Python越来越被认可为程序员新时代的风口语言。 无论是刚入门的程序员,还是年薪百万的 BATJ 的大牛都无可否认:Python的应用能力是成为一名码农大神的必要项。 所以,很多程序员把Python当做第一语言来学习。 但对于Pytho…

驱动07.USB驱动程序
1 了解USB识别的过程 eg:在Windows系统下的一个现象:把手机的USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道是"a…
豪气!华为放话:3年培养100万AI人才!网友神回应了
大家经常把BAT挂在嘴边,但是可能有些人还不知道,华为的体量早已超越了这三巨头,只是迟迟不肯上市。华为的创始人任正非曾说表:上不上市不重要,最重要的是要让中国华为的技术能够称霸全球!华为对技术的重视&…

InnoDB的启动,关闭,恢复
InnoDB存储引擎是MySQL的存储引擎之一,因此InnoDB存储引擎的启动和关闭更准确地是指在MySQL实例的启动过程中对InnoDB表存储引擎的处理过程。 参数innodb_fast_shutdown 在关闭时,参数innodb_fast_shutdown影响着表的存储引擎为InnoDB的行为。该参数可取…
微软推出提点神器动态ReLU,可能是最好的ReLU改进
作者 | Vincent 来源 | 晓飞的算法工程笔记 简介ReLU是深度学习中很重要的里程碑,简单但强大,能够极大地提升神经网络的性能。目前也有很多ReLU的改进版,比如Leaky ReLU和 PReLU,而这些改进版和原版的最终参数都是固定的。所以论…

监控 monit
官方说明文档 http://mmonit.com/monit/documentation/monit.html 实例 http://mmonit.com/wiki/Monit/ConfigurationExamples 下载最新软件包 wget http://mmonit.com/monit/dist/monit-5.4.tar.gz monit 介绍 monit是一个实用程序,用于在 Unix 系统上管理和监视…

框架窗口的尺寸设置
将窗口分割为几块,横向分用ROWS属性,纵向分用COLS属性,每一块的大小可以由这两个属性的值来实现。 <frameset cols#> 例:<frameset cols"100,200,300"> <frameset rows#> 例:<…

C语言双链表遍历,插入,删除
#include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memset(a, 0, b)//windows平台下无bzero函数。 增加宏拓展移植性struct node{int data; //有效数据 struct node *pLast;//指向上一个节点的指针…

详解.NET的RAD功能
作者:中国计算机报Visual Studio.NET 拥有开发者建立一个成功而强大的中间层应用服务所需要的所有开发工具,利用这些工具,开发者可以: 1.保障消息传播和利用微软消息队列(MSMQ)跨平台的通讯; 2…

Java初学者如何自学和自己定位解决问题
注: OneCoder 即本人苦逼Coder 今天群里(Java Coder群:91513074)的朋友,问我该如何看帮助文档,或者说在遇到问题的时候如何解决。希望我能介绍一下我的方法。 这个OneCoder其实没有资格高谈阔论,只能说说个人的习惯和…
仅用 4 小时,吃透“百度太行”背后硬科技!
我们正处于一个 AI 生万物,万物生 AI 的时代,云与 AI 也如共同体,水乳相容不可分割。无论是企业还是政府机构、社会团体,上云已然成为一个不可抗的趋势,尤其是 AI 的发展,更是离不开强大、灵活、便捷的云计…

(转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)
原处:http://blog.csdn.net/ns_code/article/details/17485221在这里看到了try catch finally块中含有return语句时程序执行的几种情况,但其实总结的并不全,而且分析的比较含糊。但有一点是可以肯定的,finally块中的内容会先于try…