日历

« 2008-10-08  
   1234
567891011
12131415161718
19202122232425
262728293031 

最新来客

我的好友

统计信息

  • 访问量: 984
  • 日志数: 6
  • 建立时间: 2007-05-25
  • 更新时间: 2007-07-19

RSS订阅

带着尖锐的眼光去测试

我的最新日志

  • 做了2个月的测试,感觉很不爽

    2007-7-19

    做了2个月的测试,感觉很不爽,基本上是做黑盒测试,我所在的公司编码和测试是分离的,我所在的只是公司的一个小部们而已,和总部不在同一个省份。现在我搞不懂公司招测试员的原因是什么,我做的测试文档他们好像不太关心,只是叫我测,上交的了10多份的测试文档,就只收到了一份回复,很多小问题根本不会去解决。
        因为就只由我一个人在这做测试,上面就是个经理,没有同事感觉这样的工作很畸形,没有像测试长辈学习的机会,全靠自己在网上找资料,前不久公司让我做份测试大纲,我突然有把他们当做客户的想法,怎么样去满足他们的需求。可是他们对需求的描述很模糊,我做的测试大纲也很模糊,在网上找了一大堆的资料,稍稍修改了一下。他们看到我做的也没什么话说,感觉他们自己都不明确自己要什么!
       我的主要困惑时看不到自己的价值,我学。NET 2年,刚毕业,刚进入社会,体会到找工作的不容易,转工作还没试过,也不会简单。以前总是听说先积累经验,可是像我所处的环境,能学到什么,一个人的孤独!
  • 自动化测试在功能测试中的应用

    2007-6-25

    1 综述
    1.1 什么是自动化测试
      自动化测试是指能自动输入测试数据,自动检查被测对象的响应的测试
    1.2 自动化测试的优缺点
      优点:
        测试效率高
        测试过程可完全重现
      缺点:
        前期耗用的 工作 量较大
        对测试人员的技术水平要求较高
        需要对测试脚本(程序)进行维护
    1.3 自动化测试的适用范围
      存在大量重复性的手工测试的项目
      测试时间比较长的项目
    1.4 自动化测试的对测试人员的要求
      有编程能力,至少会使用一种高级语言(C/C++、 java 、VB、Pascal)
      有一定系统设计的能力
    1.5 自动化测试过程
      制定测试方案
      编写、修改、维护测试脚本
      测试实施

    2 测试过程详述
    2.1 设计方案
      2.1.1 选定工具
        winrunner:类C语言,编程能力强,浏览器、ActiveX控件的支持不如 QTP 。需要对界面的每类控件都录制一下,确认 测试工具 的确能操作该控件。
        QuickTest Professional(QTP):类VB语言,编程能力较弱,浏览器、ActiveX控件的支持强。需要对界面的每类控件都录制一下,确认测试工具的确能操作该控件。
        自己编写的程序
      2.1.2 确定测试环境
        数据库 环境
        磁盘文件环境
        测试脚本开始运行时的界面环境(通常为登录成功后的界面)
        测试脚本结束运行时的界面环境
      2.1.3 用例设计
        确定功能点
        确定测试数据
    2.2 编写、修改、维护测试脚本
      2.2.1 考虑脚本的架构
        做到用例与用例的无关性,即每个用例都能单独运行,一用例不以另一用例的运行为前提
        要便于挑选若干用例来运行
        要便于大量用例的管理
        当界面发生变化时,脚本的修改量要尽可能容易
        winrunner举例:
        举例1:每个用例对应一个子脚本,一个主控脚本控制调用各子脚本
        举例2:每个用例对应excel表格的一条记录,主控脚本从表格中读取用例信息后运行
      2.2.2 编写测试环境初始化的脚本
        数据库环境初始化
        磁盘文件环境初始化
        界面环境初始化
      2.2.3 生成界面描述文件(winrunner、QTP)
        对界面的每个控件都录制一下,让测试工具生成界面描述文件
        对录制出来的界面描述进行整理,提高可读性
      2.2.4 编码与调试
        脚本能完全自动运行,不因遇到错误而中止
        注意脚本与被测软件的同步问题,避免因不同步而导致脚本中止或报错
        各用例对测试结果的判断和输出不能造成脚本的中止
        各用例结束时的界面环境必须能通过初始化脚本回到初始的界面环境
        不建议使用检查点来判断测试结果
      2.2.5 维护
        根据界面的变化而改动
        根据操作步骤的变化而改动
        根据用例的变化而改动
    2.3 测试实施
      2.3.1 搭环境
      2.3.2 运行测试脚本
      2.3.3 记录bug

    3 性能测试 的误区
      自动化测试一定能提高测试效率,缩短测试时间
      自动化测试一定能降低测试成本
      自动化测试令测试工作变得简单易行,谁都可以来做
      做自动化测试,会录制脚本就够了

    4 常见问题
      我们的项目时间紧,怎么样做自动化测试?
      自动化测试何时开始介入?
      测试工具无法识别第三方控件时怎么办?
      业务逻辑比较复杂,从而导致测试脚本比较复杂,怎么办?

  • 提高测试用例覆盖率的分析方法

    2007-6-06

    开发高质量的测试用例是QA的基本工作。高质量的测试用例是既有高覆盖性又有高可执行性,当两者不可兼得时,它有最佳平衡点。本文不讨论如何取得最佳平衡,只关注采用何种 分析方法 来提高测试用例的覆盖率。

        首先来说,分析分为两个步骤,首先以不同得角度切分系统,使得它成为更简单得模块,第二是把不同得模块想象成一个黑盒子,对这个黑盒子做类似于单元测试得分析。

        1. 从不同得角度把系统分为不同得模块
        这里存在两种思路

        对系统进行完整得划分
        软件是复杂的。软件开发者面对这种复杂性采用的经典的方法瀑布模型,也就是从上到下,逐渐细分,大模块包括小模块,小模块包括更小的模块。对于软件测试来说,很自然的,我们也可以采用这种方法。但是,这还是远远不够的。我们还要从更多的角度切入系统,从不同的角度把系统切分成一块一块的,然后进行测试。

        比如遥控器的例子。我们就可以从下面一些方面来划分系统
        1)功能。
        这个划分非常直观,Spec上肯定会明确指明遥控器假设有3个功能,开关机,+-调台,+-调音。对每个功能我们测试它能否正常工作。当然我们也会注意到边界情况:当音量满的时候,加音量。。。
        2)状态
        Spec上没有说明遥控器的状态,但我们应该能分析得出遥控器有下面的状态
        关机,开机,正在调台,正在调音
        现在我们可以列一个matrix,测试在每种状态下执行上面的任意一种操作系统的反应。注意,这个时候,你就要把你自己当成用户,因为这些情况都不会在spec里详细的说明的。比如在关机状态下调音,竟然开机了。这个显然就是bug。
        3)按键序列
        现在我们走得更远。我们把遥控器看作具有按钮得一个玩意儿,然后输入任意一个序列看是否会出现异常情况,是否会让程序不正常得工作。这里不需要分任何得分析方法。这是一个很好得切入点。另外一个例子是,在测试web application时,做一个爬虫程序去点击页面上得任何link。

        通过这些不同得划分,testcase得覆盖率可以得到有效得提高。

        需要注意一点是,不同得划分肯定会带来testcase得冗余。在划分1)时,有测试开关机得case,在划分2)时,显然也会有这样得case。这是不可避免得,也没有关系。

        寻找某个特定得切面
        上面得划分系统可以看作 对整个系统得一种 分离方法,划分方法得结果是把测试对象分成不同得一块一块。而“特定得切面”则只是描述了测试对象得一个面,它不存在划分系统得问题。还是上面得例子,比如“长按按钮”就是一个“特定得切面”。

       ”长按Power按钮“是一个测试得关注点,“长按volumn+”也是这样得一个关注点,如果在系统中多处存在这样得相似得关注点,那么就构成了一个面,比如在这里是每个按钮都存在“长按按钮”这样一种可能,那么“长按按钮”这就可以看作系统得一个切面。对于这样一个切面,如果把它分散在每个功能测试case里,显然不是好主意。最好得方法是把它拿出来作为一个单独得testcase。

        再举一个例子是,“维护数据完整性” 是一个切面。很多系统都有用户这个对象,很多其他得对象都会引用到它。对于引用已经删除得对象就是一个容易出问题得地方。那么就把“删除用户”作为一个切面拿出来,对每一个相关得对象进行测试。这样一个切面是非常好得testcase。

        说到这里,你可能会发现这其实是面向方面编程(AOP)得概念。bingo!确实如此,好得思想方法在哪里都会闪光啊~_*.


        2. 功能单元测试
        面对一个比较小得功能单元,设计testcase就容易得多了。因为功能单元千差万别,所以我仅仅写一些相对通用得思路。

        1)从4个可能变化的要素入手:输入,输出,参数和状态。
        如果把某个功能想象成一个黑盒子,那么这个黑盒子任何时候得输出可以用下面得三个参数来确定(输入,状态,参数)。这种方法可以对功能进行详尽得测试。

        2)黑盒子得生命周期
        盒子不是凭空出现的,它也不是在真空之中。在它的生命周期中,有那些东西能影响它?它的初始化,重启动,关闭。。。

        3)GUI测试
        一个功能单元可能有GUI,那么他们也应该在这里测试。我们以GUI测试为例,GUI有它自己的特点
        1. GUI很容易变化
        2. GUI一般不容易错,因为GUI不包含复杂的逻辑
        3. GUI的错误很容易看出来, 很多GUI问题其实看一下就知道了,比如字体不对
        4. GUI难以描述。GUI涉及的内容很多颜色,布局,字体。。。
        所以对于GUI的测试用例,应该给出一个关键点,而不用给出具体的描述。比如“检查label字体”比“字体是宋体,大小11,斜体“要好,当然除非特别要求

    此文来源于51testing博客,转载请注明出处
    原始链接:http://www.51testing.com/?764/action_viewspace_itemid_11848.html
  • 软件测试QQ群:25146516

    2007-6-06

    医生是高尚的职业,同样,软件测试也是!

    欢迎大家的家入 !

  • 阅读英语的心理

    2007-6-01

          以前搞不懂为什么要学好英语,现在又点体会了,打开国外的软件,不知从何入手,想看看帮助文档,干打开,脑袋力就自然的产生的一道透明的厚壁,能看见26个字母以不通形式的排列着,可就是不同说个啥意思,有时我明白那些英文意思不很难,可是我得心里就是有一种排斥感。我也总结了我产生这样心里的原因,个别的生字,就是怕看见生字,不知道有经验的朋友能不能指引一下,如何解决这种心理
  • 因测试而测试

    2007-5-25

    一不小心掉进了测试的大坑,原本一片漆黑的大坑,经我再WWW的探索,总算有了点方向,刚刚人识 WR,很想和他交个朋友,特此发帖,以表诚意!
Open Toolbar