发布新日志

  • 【转载】QTP学习历程--从工具使用到框架思想

    莲藕之家 发布于 2011-06-24 22:02:01

     
          1. 入门,初识自动化  相信很多的朋友,包括我自己也是一样,在刚听到或接触到自动化测试的时候,迫不及待的下载了一个工具开始用,然后傻眼了,面对例如功能强大QTP,不知如何下手,同时也会严重的打消我们的积极性,在这里,我建议每个刚开始接触或学习自动化的朋友,先了解一些自动化的概念,在这一阶段你要先搞清楚这几个问题:
         什么是自动化测试?
         自动化可以做什么?
         学好自动化测试需要哪些知识准备?
         自动化测试的局限性?
         你做的项目适不适合做自动化测试?为什么?
         为什么要先搞懂这几个问题?因为你先了解了这些问题后,有助于消除你对自动化测试学习的恐惧,也会有一个初步的思路,不会觉得无所适从,再者,带着问题去学习,能更好的理解并记住然后形成自己的思维。

          2. 下载安装QTP   这时候是不是对自动化测试有所了解了,那现在就下载一个自动化测试工具,然后安装并破解它或使用试用版本,开始自动化工具的学习吧。在这里我要谈一点我个人的经验:我应该学习哪个工具?对于这个问题,我想说这跟我当时学习编程语言一样的,到处找资料看人家的经验,人家说VB容易上手,马上学习VB,看到人家说DEPHI好就学习DEPHI,人家说JAVA好就学习JAVA。。。。。。。,甚至一天几变,几个月下来,什么也没学会,最后安下心来从C开始吧,自动化测试也是一样,不要老去问别人学什么好,选择一个,硬着头皮学下来就是了,你精通了一门工具后,再去用另一个工具也就是一两周的时间就能运用自如,所以,就从QTP开始吧,它的IDE很直观,适合新手,然后下载一份用户手册,先了解下各个功能

         3. 简单自动化  QTP装好了吧,那现在就开始我们的第一个自动化体验:录制flight自动化脚本,这个过程比较简单,录制三个部分:登陆、定票、查询定票和删除定票,具体的业务过程和录制过程我就不说了,网上有很多资料,本文也不是一个实验指导书,只是提供一个比较清晰的自动化学习路线。当然,在录制了这些脚本之后,回放成功,第一个自动化完成了。

          4.增强脚本功能  这个阶段主要是学习一些QTP的基本功能,在这里你要去增强一下你的脚本了,参数化登陆用户名和密码,参数化航班选择、定票张数,增加金额的检查。主要是学习参数化和检查点,这里会遇到一些困难:
         那就是选择航班这里,可以运用随机数等方法来参数化航班
         金额的检查会需要用到一些简单编程,总金额=张数*单价
         通过定单号查询定票会要用到对象的GetRoProperty("")方法
         这个学习的过程,还会遇到一些调试方面的因难,不过不用心急,慢慢来,成功是建立在失败之上的,记得在调试时,可以按F11单步运行,建立你的输出如:msgbox实时输出你想要看到的信息 

         5.  数据驱动   经历了上面的阶段,在这里将要接触一点数据驱动的思想了,其实很简单,就是把你参数化的地方拿出来,放到一个外置的excel文件里面,然后通过读取excel里面的数据来控制循环次数,大概的步骤如下:
         创建excel对象
         循环读取excel数据赋值给变量
         在脚本中引用变量
         具体每个步骤的实现我就不详细说了,网上也是资料大把
         6. 功能函数化   这个阶段主要是把各个可以重用的功能写成函数,而主控脚本主要是用来调用这些功能函数,实现重用和结构清晰化,这个阶段又可以分成以下几个子阶段:
    把单个的功能写成一个action,主脚本调用这些action,在这里会遇到一个问题,那就是关于被调用action的设置,这个在我的博客里面有一篇文章有介绍,可以去看看
    把单个的功能写成函数放到一个action里面,脚本最下面调用这些函数
    把单个的功能写成函数到一个.vbs文件,脚本中调用这些函数,在这里也会遇到一个问题,那就是QTP调用.vbs文件,这在我的博客里面也有一篇文章详细写了,这里就不再重复
        这个过程完成后,就大概有基本的框架了,接下来进入下一个阶段

         7. 完善框架   在这个阶段,我们以网上一位朋友的轻量级自动化测试框架来说,相信有很多朋友都有看过,我也懒得重新去做一个示例了,在这里你需要建立你自己的report、日志文件、函数文件、数据驱动文件、脚本文件等,把这些都放到单独的文件夹里面,方便管理,并对函数的创建、定义进行规范,详情参见轻量级自动化测试框架

         8. 理清框架思想  在这个阶段主要是用来思考和完善你的框架思想了,此时你们应该有一个清晰的思路了,明白自动化脚本开发的各个阶段,并知道最后要做成什么样子,现在重要的一点就是学习做分析和计划了,一个项目交到你手里,你要先评估这个项目适不适合做自动化、自动化哪些东西、哪些功能可以封装起开写成函数、哪些地方需要进行数据来控制驱动,最后评估各个阶段的耗时、需要的资源、各阶段的产出(文档、脚本等)

           至此,你的一个完整的自动化测试学习完成了,现在你也可以算得上一名合格的自动化测试工程了,这当中还会有很多的技术细节等,我没有一一写出来,如果有遇到什么问题可以网上找资料也可以跟我联系,如果你在我的博客里面留言了,当天晚上都会回复,最后两句话请牢记,自动化框架设计的原则:框架与脚本分离、脚本与数据分离。
  • 如何编写测试计划

    sixsigmay 发布于 2008-11-13 18:40:34

    如何编写测试计划

                                                

    俗话说:凡事预则立。软件测试同样,在测试项目之初就要制定相应的测试计划。接下来谈下如何编写测试计划问题。

     

    一.首先了解以下几个问题:

     

    1.为什么要编写测试计划?

    1)领导能够根据测试计划做宏观调空,进行相应资源配置等;

    2)测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等;

    3)便于相关人员了解测试人员的工作内容,进行有关配合工作

    2.什么时间开始编写测试计划?

    (测试需求分析前总体测试计划书/测试需求分析后详细测试计划书)

    3.由谁来编写测试计划?

    具有丰富经验的项目测试负责人

    4.测试计划编写6要素?(5W1H

    1why——为什么要进行这些测试;

    2) what—测试哪些方面,不同阶段的工作内容;

    3) when—测试不同阶段的起止时间;

    4) where—相应文档,缺陷的存放位置,测试环境等;

    5) who—项目有关人员组成,安排哪些测试人员进行测试

    6) how—如何去做,使用哪些测试工具以及测试方法进行测试。

     

    二.测试计划主要内容:

     

    1.引言

    1.1项目背景

    1.2参考资料(计划编写依据:可行性分析报告/软件需求定义/软件概要设计/软件详细设计/用户使用说明书/……)

    1.3测试术语

    1.4有关项目人员组成以及联系方式(开发人员/版本控制人员/测试人员/软、硬、结构、营销人员等)

    2.任务概述

    2.1测试范围

    2.2测试目标

    2.3广义上还包含测试需求分析/测试用例编写/测试环境搭建/测试培训/测试执行等

    3.测试策略

    3.1测试人员需求、分工

    3.2测试方法(自动化测试/手动测试;白盒测试/黑盒测试;中断测试/临界测试/压力测试等)

    3.3工具引用及测试培训(内训/外训)

    3.4测试阶段计划(工作内容、人员安排、起止时间等)

    3.5测试停止及恢复条件

    3.6测试文档及缺陷提交管理等

    3.7测试环境

    4.测试资源

    4.1硬件资源需求

    4.2软件资源需求

    4.3测试环境需求

    4.4测试人员需求

    4.5其他(仪器、服务器等)

    5.风险评估

    5.1人力方面;

    5.2时间方面;

    5.3环境方面;

    5.4资源方面

    5.5部门合作方面

    6其他内容

    除以上内容有关项外,还要包括测试计划制定者、日期、修改记录、评审人员(开发负责人/测试负责人/项目经理)等信息

     

    三.编写测试计划注意事项

     

    1.测试计划不一定要尽善尽美,但一定要切合实际,要根据项目特点、公司实际情况来编制,不能脱离实际情况;

    2.测试计划一旦制定下来,并不就是一层不变的,世界万事万物时时刻刻都在变化,软件需求、软件开发、人员流动等都在时刻发生着变化,测试计划也要根据实际情况的变化而不断进行调整,以满足实际测试要求.

    3.测试计划要能从宏观上反映项目的测试任务、测试阶段、资源需求等,不一定要太过详细.

     

    四.评审总结

     

    1.计划评审

       测试计划编写完成后,一般要对测试计划的正确性、全面性以及可行性等进行评审,评审人员的组成包括软件开发人、营销人员、测试负责人以及其他有关项目负责人。

    2.计划总结

      项目完成后,应该对计划的执行情况进行评审,看有哪些不合理的地方,以便为编写下一个项目测试计划做经验积累。

  • [论坛] 常用的网站功能测试方法(已更新)和GUI基本测试内容

    q260954617 发布于 2008-04-10 08:32:37

                                                      从别的论坛搜集的 希望对大家有帮助

    网站功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:

    1、页面链接检查: 每一个链接是否都有对应的页面,并且页面之间切换工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持asp、do、jsp等结尾的网页,同时能够生成html格式的测试报告。

    2、相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确检查按钮的功能是否正确 如新建、编辑、删除、关闭、返回、保存、导入等功能是否正确。

    3、字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型。

    1)标点符号检查:输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。

    2)特殊字符检查:输入特殊符号,如@、#、$、%、!等,看系统处理是否正确。

    3)字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。

    4、中文字符处理:在可以输入中、英文的系统输入中文,看会否出现乱码或出错。

    检查信息的完整性 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否一致。

    5、信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理。

    6、检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理。

    7、检查添加和修改是否一致:检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型

    8、检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错

    9、重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统检查多次使用返回键的情况   在有返回键的地方,返回到原来页面,重复多次,看会否出错

    10、搜索检查:有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确。

    11、输入信息位置:注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。

    12、上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载文件能否打开或者保存,下载的文件是否有格式要求,如需要特殊工具才可以打开等。

    13、必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加“*”;对必填项提示返回后,焦点是否会自动定位到必填项。

    14、快捷键检查:是否支持常用快捷键,如Ctrl+C、 Ctrl+V、 Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。

    15、回车键检查:在输入结束后直接按回车键,看系统处理如何,会否报错。

    16、刷新键检查:在Web系统中,使用浏览器的刷新键,看系统处理如何,会否报错。   

    17、回退键检查:在Web系统中,使用浏览器的回退键,看系统处理如何,会否报错。对于需要用户验证的系统,在退出登录后,使用回退键,看系统处理如何;多次使用回退键,多次使用前进键,看系统如何处理。

    18、直接URL链接检查:在Web系统中,直接输入各功能页面的URL地址,看系统如何处理,对于需要用户验证的系统更为重要。

    19、空格检查:在输入信息项中,输入一个或连串空格,查看系统如何处理。如对于要求输入整型、符点型变量的项中,输入空格,既不是空值,又不是标准输入。

    20、输入法半角全角检查:在输入信息项中,输入半角或全角的信息,查看系统如何处理。如对于要求输入符点型数据的项中,输入全角的小数点(“。”或“.”,如4.5);输入全角的空格等。

    21、密码检查:一些系统的加密方法采用对字符Ascii码移位的方式,处理密码加密相对较为简单,且安全性较高,对于局域网系统来说,此种方式完全可以起到加密的作用,但同时,会造成一些问题,即大于128的Ascii对应的字符在解密时无法解析,尝试使用“uvwxyz”等一些码值较大的字符作为密码,同时,密码尽可能的长,如17位密码等,造成加密后的密码出现无法解析的字符。

    22、用户检查:任何一个系统,都有各类不同的用户,同样具有一个或多个管理员用户,检查各个管理员之间是否可以相互管理,编辑、删除管理员用户。同时,对于一般用户,尝试删除,并重建同名的用户,检查该用户其它信息是否重现。同样,提供注销功能的系统,此用户再次注册时,是否作为一个新的用户。

    23、系统数据检查:这是功能测试最重要的,如果系统数据计算不正确,那么功能测试肯定是通不过的。数据检查根据不同的系统,方法不同。对于业务管理平台,数据随业务过程、状态的变化保持正确,不能因为某个过程出现垃圾数据,也不能因为某个过程而丢失数据。

    24、系统可恢复性检查:以各种方式把系统搞瘫,测试系统是否可正常迅速恢复。



                                                                      GUI基本测试内容

    图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确。同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度。因为现在 GUI 设计和实现有了越来越多的类似,所以也就产生了一系列的测试标准。下列问题可以作为常见 GUI 测试的指南:

    窗口:
    · 窗口是否基于相关的输入和菜单命令适当地打开?
    · 窗口能否改变大小、移动和滚动?
    · 窗口中的数据内容能否用鼠标、功能键、方向键和键盘访问?
    · 当被覆盖并重新调用后,窗口能否正确地再生?
    · 需要时能否使用所有窗口相关的功能?
    · 所有窗口相关的功能是可操作的吗?
    · 是否有相关的下拉式菜单、工具条、滚动条、对话框、按钮、图标和其他控制可为窗口使用,并适当地显示?
    · 显示多个窗口时,窗口的名称是否被适当地表示?
    · 活动窗口是否被适当地加亮?
    · 如果使用多任务,是否所有的窗口被实时更新?
    · 多次或不正确按鼠标是否会导致无法预料的副作用?
    · 窗口的声音和颜色提示和窗口的操作顺序是否符合需求?
    · 窗口是否正确地被关闭?

    下拉式菜单和鼠标操作:
    · 菜单条是否显示在合适的语境中?
    · 应用程序的菜单条是否显示系统相关的特性(如时钟显示)?
    · 下拉式操作能正确工作吗?
    · 菜单、调色板和工具条是否工作正确?
    · 是否适当地列出了所有的菜单功能和下拉式子功能?
    · 是否可以通过鼠标访问所有的菜单功能?
    · 文本字体、大小和格式是否正确?
    · 是否能够用其他的文本命令激活每个菜单功能?
    · 菜单功能是否随当前的窗口操作加亮或变灰?
    · 菜单功能是否正确执行?
    · 菜单功能的名字是否具有自解释性?
    · 菜单项是否有帮助,是否语境相关?
    · 在整个交互式语境中,是否可以识别鼠标操作?
    · 如果要求多次点击鼠标,是否能够在语境中正确识别?
    · 光标、处理指示器和识别指针是否随操作恰当地改变?

    数据项:
    · 字母数字数据项是否能够正确回显,并输入到系统中?
    · 图形模式的数据项(如滚动条)是否正常工作?
    · 是否能够识别非法数据?
    · 数据输入消息是否可理解?



    用户界面测试检查表.gif


    [ 本帖最后由 q260954617 于 2008-3-28 10:30 编辑 ]
  • 测试读书笔记《全程软件测试》(一)

    UniqueStudioWCD 发布于 2008-11-05 20:38:01

    本来这两天准备继续钻研LR的东西的,可是一回公司其他的事情就又压上来了,老大因为这次去出差工作做得不错,“奖励”了一本测试书籍,朱绍民的《全程软件测试》。

    对于朱老师是早闻其名了,看了一下书的目录,觉得书籍文如其名,讲了很detail的测试流程,测试管理等一些东西,对于了解并实践了软件测试的人员来说,这是一本不可多得的好书,仅从目录就可以受益不少:

    一,帮助测试人员对测试有了个概括性的总结,而不是一团糟;

    二,测试人员可以乘机检索一下自己还有多少东西没有学到或者没有学过;

    三,方便测试人员了解测试的整个流程的管理与维护。

    但是,朱老师和丛书序的推荐者都说适合初学测试的人看,我却不以为然,理由如下:

    一,书籍涵盖的内容太多,用于新手入门显然灌输的信息量过大;

    二,书籍所讲述的部分内容比较深入详细,对于新手来讲,这些只会增加他们学习的负担。

    因此,我觉得这本书最适合的读者是了解了测试并且有项目测试经验,或者志在组建所在公司测试规范的人员学习之用。

  • 开源测试工具

    zhuang0417 发布于 2008-09-24 09:16:43

    开源测试工具——功能测试工具

    Linux Test Project
    http://ltp.sourceforge.net/
    工具描述:
    Linux Test Project是一个测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。
    使用环境:
    Linux

    MaxQ
    http://maxq.tigris.org/
    工具描述:
    MaxQ是一个免费的功能测试工具。它包括一个HTTP代理工具,可以录制测试脚本,并提供回放测试过程的命令行工具。测试结果的统计图表类似于商用测试工具,比如Astra QuickTest和Empirix e-Test,这些商用工具都很昂贵。MaxQ希望能够提供一些关键的功能,比如HTTP测试录制回放功能,并支持脚本。
    使用环境:
    Java 1.2以上版本

    WebInject
    http://www.webinject.org/
    工具描述:
    WebInject是一个针对Web应用程序和服务的免费测试工具。 它可以通过HTTP接口测试任意一个单独的系统组件。可以作为测试框架管理功能自动化测试和回归自动化测试的测试套。
    使用环境:
    Windows, OS Independent, Linux

    开源测试工具——性能测试工具

    Apache JMeter
    http://jakarta.apache.org/jmeter/
    工具描述:
    Apache JMeter是100%的Java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计Jmeter的初衷是测试Web应用,后来又扩充了其它的功能。Jmeter可以完成针对静态资源和动态资源(讹误女监, Servlets, Perl脚本, Java对象, 数据查询s, FTP服务等)的性能测试。。 Jmeter可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能。Jmeter提供图形化的性能分析。
    使用环境:
    Solaris, Linux, Windows (98, NT, 2000). JDK1.4以上.

    DBMonster
    http://dbmonster.kernelpanic.pl/
    工具描述:
    DBMonster是一个生成随机数据,用来测试SQL数据库的压力测试工具。
    使用环境:
    OS Independent

    OpenSTA (Open System Testing Architecture)
    http://portal.opensta.org/index.php
    工具描述:
    基于CORBA的分布式软件测试构架。使用OpenSTA,测试人员可以模拟大量的虚拟用户。OpenSTA的结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况,可以精确的度量负载测试的结果。
    使用环境:
    OS Independent

    TPTEST
    http://tptest.sourceforge.net/about.php
    工具描述:
    TPTest的提供测试Internet连接速度的简单方法。
    使用环境:
    MacOS/Carbon、 Win32

    Web Application Load Simulator
    http://www.openware.org/loadsim/index.html
    工具描述:
    LoadSim是一个网络应用程序的负载模拟器。
    使用环境:
    JDK 1.3以上

    开源测试工具——缺陷管理工具

    Mantis
    http://mantisbt.sourceforge.net/
    工具描述:
    Mantis是一款基于WEB的软件缺陷管理工具,配置和使用都很简单,适合中小型软件开发团队,关于Mantis的介绍文章参见51testing软件测试网顾问蔡琰的文章 《使用开源软件 Mantis 实施缺陷跟踪的成功实践》
    使用环境:
    MySQL, PHP

    Bugzilla
    http://www.mozilla.org/projects/bugzilla/
    工具描述:
    一款不错的软件缺陷管理工具。
    使用环境:
    TBC

    开源测试工具——测试管理工具

    TestLink
    http://testlink.sourceforge.net/docs/testLink.php
    工具描述:
    基于WEB的测试管理和执行系统。测试小组在系统中可以创建、管理、执行、跟踪测试用例,并且提供在测试计划中安排测试用例的方法。
    使用环境:
    Apache, MySQL, PHP

    Bugzilla Test Runner
    http://sourceforge.net/projects/testrunner/
    工具描述:
    Bugzilla Test Runner基于Bugzilla缺陷管理系统的测试用例管理系统。
    使用环境:
    Bugzilla 2.16.3 or above

  • 对于测试b/s结构的Web的一些测试点

    zhuang0417 发布于 2008-11-13 00:45:09

    对于测试b/s结构的Web的一些测试点

    引用一位博友的,再此谢谢!


    1、        数据有效性检测不合理——参数的取值范围,包括有效值、无效值、边界值、特殊字符等的校验
    2、        数据来源不正确——下拉列表数据的正确性以及其他
    3、        数据处理结果不正确——新增、修改、查询操作后的结果是否正确,查询后的结果是否按照查询条件出现正确的结果
    4、        数据库结果检查——页面上显示的与数据库中实际数据是否一致
    5、        流程控制不符合要求——操作流程中的控制是否合理
    6、        控件之间的关联性以及可见性——各控件之间的关联和可见性检查
    7、        提示信息的不合理以及出现的不合时机
    8、        功能多余、重复、缺少、与设计不符合等重要测试点
    9、        控件的排列不统一,页面的大小、美观性
    10、        焦点控制不合理或不全面
    11、        提示框返回后,焦点停留位置不合理
    12、        ESC按键的触发事件
    13、        Enter按键的触发事件
    14、        Table按键的焦点顺序不对(从上而下,从左到右)
    15、        快捷键的使用
    16、      国际本土化
    以上只是做黑盒测试在编写测试用例的时候简单归纳的一些测试点。
Open Toolbar