发布新日志

  • Cookie测试工具小汇(转)

    2007-12-30 18:27:22

    文章发表时间:2007-08-28

    现在很多网站都用到Cookies,特别是用户的登陆以及购物网站的购物车。 Cookies 通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies 访问了某一个应用系统时,Web 服务器将发送关于用户的信息,把该信息以Cookies 的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
    如果Web 应用系统使用了Cookies ,就必须检查Cookies 是否能正常工作。测试的内容包括Cookies是否起作用,存储的内容是否正确,是否按预定的时间进行保存,刷新对Cookies 有什么影响等。

    http://ccc.atmos.colostate.edu/~hail/howto/faq/coo...

    如果到\Local Settings\Temporary Internet Files文件夹下查看每个Cookies文件是一件很麻烦的事情,这个时候就需要有工具来帮助我们。

    1、Cookie Editor

    http://www.proxoft.com/CookieEditor.asp

    Cookie Editor is an application that helps you manage cookies set by Internet Explorer, Netscape or Mozilla Browsers.

    Cookie Editor allows you to maintain the level of your privacy by allowing you to see, edit or delete any unwanted cookies. It searches your drives for all IE cookies then displays them is easy grid-like format. You can examine content of any cookie or delete it.

    For advanced users, you can also edit the contents of cookies. So, for example, if you want to change your zip code for 'movies.yahoo.com', or move up the expiration date of a given cookie, you could do so without even opening your browser!

    比较大的特点是可以显示出IE,Netscape和Firefox的Cookie;因为Netscape和Firefox的Cookie不是存储在Temporary Internet Files文件夹下的,而是在Application Data文件夹下的对应文件夹里。

    2、IECookiesView

    http://www.nirsoft.net/utils/iecookies.html

    一个可以帮你搜寻并显示出你计算机中所有的Cookies档案的数据,包括是哪一个网站写入Cookies的,内容有什么,写入的时间日期及此Cookies的有效期限..等等资料。你是否常常怀疑一些网站写入Cookies内容到你的计算机中是否会对你造成隐私的侵犯!使用软件来看看这些Cookies的内容都是些什么呢!如此你就不会再担心怀疑了。此软件只对IE浏览器的Cookies有效。

    3、Cookies Manager

    http://home.nordnet.fr/~pmdevigne/CookiesManager_e...

    Cookies Manager helps you to select which cookies you want to keep and which cookies you want to delete.

    4、My Cookie

    My Cookie是一款可以实时查看、修改IE内 Cookied的软件。并且可以设置 Cookie值的生命周期。

     

    文章来源:http://www.cnblogs.com/oscarxie/archive/2007/08/28/872610.html

  • TestDirector更改字体大小操作步骤 (转)

    2007-12-29 03:05:09

    首先下载一个比原有系统字体大的控件TDClientUI80.xco,然后在执行如下操作。

    服务器端:
    第一步到以下路径
    C:\Inetpub\TDBIN\Install
    找到TDClientUI80.xco覆盖此文件

    第二步到以下路径
    C:\Inetpub\TDBIN
    找到setup_a.ini打开找到以下内容,把CheckSize=3197104改为 CheckSize=3197992
    [File_2]
    Register=Y
    URLName=%URL%/Install/tdclientui80.xco
    ShortName=tdclientui80.ocx
    Descrīption=User Interface
    ProgID=tdclientui80.TdFrameX
    Version=8.0.0.2931
    Main=Y
    param_TDsrvURL=%URL%
    param_RegisteredPages=Requirements,{e6e61bac-8859-4d1d-b8d9-cf50bc63a31a}!Test Plan,{3980dd43-7f99-4585-9e8b-9cb29920bd8e}!Test Lab,{99ea8527-6a6a-40fe-a67c-82cf763902d0}!Defects,{61c669c7-eddd-4277-bf5e-64807cb8dcef}
    param_RegisteredTools=Document Generator,{9037655e-bdd5-4883-86fa-ecea50b2a9cc}!Product Information,{4603f45c-0353-451e-9571-e4dbb6351f84}
    param_RegisteredLinks=Site Administrator,%URL%/SiteAdmin.htm!Add-Ins Page,%URL%/Addins.html!Mercury Interactive on the Web,http://www.mercuryinteractive.com!About TestDirector,%URL%/Help/About.htm
    param_RegisteredHelp=Online Help,%URL%/Help/OnlineHelp/TDHelp.htm!Books Online,%URL%/Help/Books/onlinedoc.htm!What's New,%URL%/Help/OnlineHelp/tdhelp.htm?context=w&topic=7000!Support Information,%URL%/Help/Support/supportcustomer_support.htm!Technical Support Online,http://support.mercuryinteractive.com!Mercury Interactive on the Web,http://www.mercuryinteractive.com!About TestDirector,%URL%/Help/About.htm
    param_RegisteredWorkflow={26728871-5c6a-4a91-a2b4-400b80626c19}
    param_Parameters=StartPage=start_a.htm
    CheckSize=3197992

    客户端:
    找到以下路径
    C:\Program Files\Common Files\Mercury Interactive\TD2000_80
    把tdclientui80.ocx文件删除。

    文章来源:http://hrbtester.blog.sohu.com/38741640.html


  • [论坛] 测试过程中对浏览器的设置问题(转)

    2007-12-29 02:19:39



    1.jpg
    图1:Internet临时文件的设置


    2.jpg
    图2:“高级”选项的设置           
    说明:在“高级”选项中,对测试起重要作用的是“禁止脚步调试”(不选择,即前面不要有勾)和“显示每个脚本错误的通知”(选择它,即前面要出现勾)。            
    这些设置对重现有关脚本错误的Bug起着重要的作用。根据这些脚本错误的通知,开发人员可以快速发现代码中的错误,并及时修复它。

    文章来源:
    http://hi.baidu.com/ruanjiancesh ... df73f8ae513357.html
  • [论坛] 软件测试过程中应该注意的要点(转)

    2007-12-29 01:52:15

    软件测试是比较辛苦的事情,但又不是没有章法的,你一旦掌握了一定的技巧之后,将对你有事半功倍的效果。

    1.边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。

    2.非法测试,例如在输入数字的地方输入字母。

    3.跟踪测试,跟踪一条数据的流程,保证数据的正确性。

    4.在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。

    5.接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心。

    6.代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。

    7.突发事件测试,服务器上可能发生意外情况的测试。

    8.外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时, 这个系统所受到的影响的情况。

    9.缺陷验证:在程序员刚修复Bug之后的地方,一定要在次验证、测试,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。

    10.做好BUG管理工作,认真做好测试记录,在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。

    11.错字、错词测试,如果在系统中有用词不当的地方,我想这是不应该的。

    12.系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。

    13.用户的易用性测试,往往用户的需求是不断的变化的,而其中一部份变化的原因,是由用户操作上不方便引起的。

        软件测试是软件开发中的重中之重,没有一点可以马虎,在项目管理过程,强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制。因为软件测试中考虑的问题基本上是项目管理中考虑的问题,相反,在项目管理中考虑的一些问题也应该是在软件测试的时候有所体现,体现的内容就是软件测试的一些侧重点,具体说,软件测试是事务性的,而项目管理是策略性,一些策略性的东西必须在一些事务性的事务上来实现。所以说从事软件开发的相关工作是一件很辛苦的事,只有在工作中多总结,才能找到符合自己的方式方法,才能在工作中事半功倍。

    文章来源:
    http://hrbtester.blog.sohu.com/22361211.html
  • [论坛] Web测试中书写Test Case时要考虑的检查点

    2007-12-29 01:39:09

    通常书写Test Case时需要考虑的检查点

    对于屏幕显示来说包括:
    检查显示的布局;
    检查域和按钮的顺序;
    检查域的尺寸;
    检查字体的大小和风格;
    检查文本的含义;
    检查拼写错误;
    检查屏蔽域;
    检查只读域;
    检查图片;
    检查按钮的状态;
    检查按钮的尺寸;
    检查按钮的图标和名字;
    检查是否有重复的图标;
    检查指针是否在第一个可输入域;
    检查TAB键的次序;

    对于域来说包括:
    检查可编辑性;
    检查域间的移动;
    检查分界条件;
    检查有效分界符;
    检查无效分界符;
    检查连续多个有效分界符;
    检查仅一个分界符输入;
    检查多余空格的截取;
    检查只读域和屏蔽域在TAB时的状态;

    对于数字域来说包括:
    检查正数值;
    检查负数值;
    检查零值;
    检查小数点;
    检查特殊字符加数字;
    检查字母加数字;
    检查ASCII值;
    检查重复值;
    检查空值;


    对于字符域来说包括:
    检查仅有字母;
    检查仅有数字;
    检查字母数字;
    检查允许的特殊字符;
    检查禁止的特殊字符;
    检查包含特殊字符的字母数字;
    检查ASCII值;

    对于字母域来说包括:
    检查字母;
    检查数字值;
    检查字母数字值;
    检查特殊字符;
    检查ASCII值;

    对于时间域来说包括:
    检查字符?和/;
    检查其他特殊字符;
    检查字母数字值;
    检查正确的格式;
    检查错误的格式;
    检查错误的日期数字;
    检查正确的日期数字;
    检查日历表;

    对于错误信息和警告信息来说:
    检查错误信息和警告信息的含义;
    检查错误信息和警告信息的一致性;
    检查确定位置的错误信息;
    检查错误信息后的光标位置;
    检查所有异常对应的错误信息;
    检查错误信息的格式;

    对于普通的检查来说:
    检查文本域和字符域输入是否左对齐;
    检查数字域输入是否右对齐;
    检查标签的切换;
    检查重复的名字;
    检查可删除的表格;
    检查表格的多选;
    检查过滤器的逻辑性;
    检查多个过滤器的逻辑性;
    检查重复的序列号;
    检查显示切换;
    检查快捷键;
    检查工具栏提示;
    检查日期域是否居中;
    检查选择项的高显;
    检查选择符;
    检查显示窗口的风格统一性;


    对于按键的功能包括:
    New button:
    检查包含next和cancel按键的子窗口的显示;
    检查子窗口显示的内容;
    Add button:
    检查包含save和cancel按键的子窗口的显示;
    Edit button:
    检查在未选择项目情况下点击后的警告信息;
    检查包update和cancel按键的子窗口的显示;
    检查选择的项目是否显示在制定的位置;
    Copy button:
    检查在未选择项目情况下点击后的警告信息;
    检查点击后的确认信息;
    检查插入后的复制数据;
    Delete button:
    检查在未选择项目情况下点击后的警告信息;
    检查点击后的确认信息;
    检查删除后的数据;
    Run button:
    检测运行时的参数窗口;
    检查执行结果;
    检查未选择项目情况下点击后的警告信息;
    Back button:
    检查是否回到上一屏幕;
    Next button:
    检查是否显示下一屏幕;
    Finish button:
    检查数据是否进入数据库;
    检查完成屏幕的显示;
    Cancel button:
    检查确认信息;
    检查是否有其他键执行同样功能;
    检测是否能能够正确处理;

    文章来源:
    http://hi.baidu.com/ruanjiancesh ... 8313cad0c86a67.html

    [ 本帖最后由 linwenyan 于 2007-12-29 01:38 编辑 ]
  • [论坛] web压力测试的几个关键点(转)

    2007-12-29 01:30:15

    设计压力应用

        设计试图对 Web 服务进行压力测试的压力测试系统时,要让它们以某种特定的方式运行代码。这些风格超越了功能验证,目的是要弄清楚被测试的 Web 服务是不是不仅能做我们认为它能做的事,而且在被施加了某些高强度压力的情况下仍然继续正常运行。压力测试必须对 Web 服务应用四个基本条件。许多已建立的压力系统应用了这些条件。有效的压力测试系统将应用以下这些关键条件:

    重复(Repetition): 或许最明显的且最容易理解的压力条件就是测试的重复。换句话说,测试的重复就是一遍又一遍地执行某个操作或功能,比如重复调用一个 Web 服务。功能验证测试可以用来被弄清楚一个操作能否正常执行。而压力测试将确定一个操作能否正常执行,并且能否继续在每次执行时都正常。这对于推断一个产品 是否适用于某种生产情况至关重要。客户通常会重复使用产品,因此压力测试应该在客户之前发现代码错误。许多最简单的压力系统只实现这一个条件,但简单地扩 展功能验证测试来多次重复并不能构成一个有效的压力测试。当与下面的一些原则结合起来使用时,重复就可以发现许多隐蔽的代码错误。


    并发(Concurrency): 并发是同时执行多个操作的行为。换句话说,就是在同一时间执行多个测试,例如在同一个服务器上同时调用许多 Web 服务。这个原则不一定适用于所有的产品(比如无状态服务),但是多数软件都具有某个并发行为或多线程行为元素,这一点只能通过执行多个代码示例才能测出 来。功能测试或单元测试几乎不会与任何并发设计结合。压力系统必须超越功能测试,要同时遍历多条代码路径。至于怎么做到这一点取决于具体的产品。例如,一个 Web 服务压力测试需要一次模拟多个客户机。Web 服务(或者任何多线程代码)通常会访问多个线程实例间的一些共享数据。因额外方面的编程而增加的复杂性通常意味着代码会具有许多因并发引起的错误。由于引 入并发性意味着一个线程中的代码有可能被其他线程中的代码中断,所以错误只在一个指令集以特定的顺序(例如以特定的定时条件)执行时才会被发现。把这个原 则与重复原则结合在一起,您可以应用许多代码路径 和定时条件。


    量级(Magnitude): 压力系统应该应用于产品的另一个条件考虑到了每个操作中的负载量。压力测试可以重复执行一个操作,但是操作自身也要尽量给产品增加负担。例如,一个 Web 服务允许客户机输入一条消息,您可以通过模拟输入超长消息的客户机来使这个单独的操作进行高强度的使用。换句话说就是,您增加了这个操作的量级。这个量级 总是特定于应用的,但是可以通过查找产品的可被用户计量和修改的值来确定它 — 例如,数据的大小、延迟的长度、资金数量的转移、输入速度以及输入的变化等等。单独的高强度操作自身可能发现不了代码错误(或者仅能发现功能上的缺陷), 但与其他压力原则结合在一起时,您将可以增加发现问题的机会。


    随机变化: 最后一点,任何压力系统都多多少少具有一些随机性。如果您随机使用前面的压力原则中介绍的无数变化形式,您就能够在每次测试运行时应用许多不同的代码路径。下面是几个关于怎样在测试生 命周期内改变测试的示例。使用重复时,在重新启动或重新连接服务之前,您可以改变重复操作间的时间间隔、重复的次数,或者也可以改变被重复的 Web 服务的顺序。使用并发,您可以改变一起执行的 Web 服务、同一时间运行的 Web 服务数目,或者也可以改变关于是运行许多不同的服务还是运行许多同样的实例的决定。量级或许是最容易更改的 — 每次重复测试时都可以更改应用程序中出现的变量(例如,发送各种大小的消息或数字输入值)。如果测试完全随机的话,因为很难一致地重现压力下的错误,所以 一些系统使用基于一个固定随机种子的随机变化。这样,用同一个种子,重现错误的机会就会更大。


        一个压力测试通常会结合上述的所有原则,并且在允许的范围内尽可能长时间地运行。测试被允许的执行时间越长,就可以遍历越多的代码路径,并且发现的错误也越多。当然,一旦找到错误就必须 诊断并修复它。由于一个代码错误可以在压力测试运行多日以后自己显示出来,所以系统必须保证当出现错误时所有可用的调试信息都被生成 — 否则可能就必须花费同样多的时间来重现这个错误。

    文章来源:
    http://hi.baidu.com/ruanjiancesh ... b77e0734fa4167.html
  • [论坛] 针对代码类测试的要点总结 (转)

    2007-12-27 12:35:57

    代码测试
    静态测试
    (1)同一程序内的代码书写是否为同一风格
    (2)代码布局是否合理、美观
    (3)程序中函数、子程序块分界是否明显
    (4)注释是否符合既定格式
    (5)注释是否正确反映代码的功能
    (6)变量定义是否正确(长度、类型、存储类型)
    (7)是否引用了未初始化变量
    (8)数组和字符串的下标是否为整数
    (9)数组和字符串的下标是否在范围内(不“越界”)
    (10)进行数组的检索及其它操作中,是否会出现“漏掉一个这种情况”
    (11)是否在应该使用常量的地方使用了变量(例:数组范围检查)
    (12)是否为变量赋予不同类型的值
    (13)(12)的情况下,赋值是否符合数据类型的转换规则
    (14)变量的命名是否相似
    (15)是否存在声明过,但从未引用或者只引用过一次的变量
    (16)在特定模块中所有的变量是否都显式声明过
    (17)非(16)的情况下,是否可以理解为该变量具有更高的共享级别
    (18)是否为引用的指针分配内存
    (19)数据结构在函数和子程序中的引用是否明确定义了其结构
    (20)计算中是否使用了不同数据类型的变量
    (21)计算中是否使用了不同的数据类型相同但长度不同的变量
    (22)赋值的目的变量是否小于赋值表达式的值
    (23)数值计算是否会出现溢出(向上)的情况
    (24)数值计算是否会出现溢出(向下)的情况
    (25)除数是否可能为零
    (26)某些计算是否会丢失计算精度
    (27)变量的值是否超过有意义的值
    (28)计算式的求值的顺序是否容易让人感到混乱
    (29)比较是否正确
    (30)是否存在分数和浮点数的比较
    (31)如果(30),精度问题是否会影响比较
    (32)每一个逻辑表达式是否都得到了正确表达
    (33)逻辑表达式的操作数是否均为逻辑值
    (34)程序中的Begin…End和Do…While等语句中,End是否对应
    (35)程序、模块、子程序和循环是否能够终止
    (36)是否存在永不执行的循环
    (37)是否存在多循环一次或少循环一次的情况
    (38)循环变量是否在循环内被错误地修改
    (39)多分支选择中,索引变量是否能超过可能的分支数
    (40)如果(39),该情况是否能够得到正确处理
    (41)子程序接受的参数类型、大小、次序是否和调用模块相匹配
    (42)全局变量定义和用法在各个模块中是否一致
    (43)是否修改了只作为输入用的参数
    (44)常量是否被做为形式参数进行传递

    动态测试
    (1)测试数据是否具有一定的代表性
    (2)测试数据是否包含测试所用的各个等价类(边界条件、次边界条件、空白、无效)
    (3)是否可能从客户那边得到测试数据
    (4)非(3)的情况下,所用的测试数据是否具有实际的意义
    (5)是否每一组测试数据都得到了执行
    (6)每一组测试数据的测试结果是否与预期结果一致
    (7)文件的属性是否正确
    (8)打开文件语句是否正确
    (9)输入/输出语句是否与格式说明书所记述的一致
    (10)缓冲区大小与记录长度是否匹配
    (11)使用文件前是否已打开了文件
    (12)文件结束条件是否存在
    (13)产生输入/输出错误时,系统是否进行检测并处理
    (14)输出信息中是否存在文字书写错误和语法错误
    (15)控件尺寸是否大小适宜
    (16)控件颜色是否符合规约
    (17)控件布局是否合理、美观
    (18)控件TAB顺序是否从左到右,从上到下
    (19)数字输入框是否接受数字输入
    (20)(19)的情况下、数字是否按既定格式显示
    (21)数字输入框是否拒绝字符串和“非法”数字的输入
    (22)组合框是否的能够进行下拉选择
    (23)组合框是否能够进行下拉多项选择
    (24)对于可添加数据组合框,添加数据后数据是否能够得到正确显示和进行选择
    (25)列表框是否能够进行选择
    (26)多项列表框是否能够进行多数据项选择
    (27)日期输入框是否接受正确的日期输入
    (28)日期输入框是否拒绝错误的日期输入
    (29)日期输入框在日期输入后是否按既定的日期格式显示日期
    (30)单选组内是否有且只有一个单选钮可选
    (31)如果单选组内无单选钮可选,这种情况是否允许存在
    (32)复选框组内是否允许多个复选框(包括全部可选)可选
    (33)如果复选框组内无复选框可选,这种情况是否允许存在
    (34)文本框及某些控件拒绝输入和选择时显示区域是否变灰或按既定规约处理
    (35)密码输入框是否按掩码的方式显示
    (36) Cancel之类的按钮按下后,控件中的数据是否清空复原或按既定规约处理
    (37) Submit之类的按钮按下后,数据是否得到提交或按既定规约处理
    (38)异常信息表述是否正确
    (39)软件是否按预期方式处理错误
    (40)文件或外设不存在的情况下是否存在相应的错误处理
    (41)软件是否严格的遵循外设的读写格式
    (42)画面文字(全、半角、格式、拼写)是否正确
    (43)产生的文件和数据表的格式是否正确
    (44)产生的文件和数据表的计算结果是否正确
    (45)打印的报表是否符合既定的格式
    (46)错误日志的表述是否正确
    (47)错误日志的格式是否正确

    文章来源:
    http://hrbtester.blog.sohu.com/53931752.html

    [ 本帖最后由 linwenyan 于 2007-12-26 21:13 编辑 ]
  • [论坛] 恰当选择软件测试自动化方案(转)

    2007-12-27 12:33:22

    随着测试流程的不断规范以及软件测试技术的进一步细化,软件测试自动化已经日益成为一支不可忽视的力量。能否借助于这支外在力量以及如何借助于这支力量来规范企业测试流程、提高特定测试活动的效率,正是本 期所要讨论的话题。

    目前,软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能测试方面)。在这两个领域,与手工测试相比,测试自动化的优势是明显的。首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率; 其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义; 此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想。根据Oppenheimer Funds的调查,在2001年前后的3年中,全球范围内由于采用了测试自动化手段所实现的投资回报率高达1500%。


    方案选型六大原则
    然而存在优势是否就一定意味着选择自动化测试方案都能为企业带来效益回报呢?也不尽然,任何一种产品化的测试自动化工具,都可能存在与某具体项目不甚贴切的地方。再加上,在企业内部通常存在许多不同种类的应用平台,应用开发技术也不尽相同,甚至在一个应用中可能就跨越了多种平台; 或同一应用的不同版本之间存在技术差异。所以选择软件测试自动化方案必须深刻理解这一选择可能带来的变动、来自诸多方面的风险和成本开销。

    以下笔者给出企业用户进行软件测试自动化方案选型的参考性原则,这些原则是从笔者实际工作中凝练而成的,它包括以下六个方面的建议:

    选择尽可能少的自动化产品覆盖尽可能多的平台,以降低产品投资和团队的学习成本;
    测试流程管理自动化通常应该优先考虑,以满足为企业测试团队提供流程管理支持的需求;
    在投资有限的情况下,性能测试自动化产品将优先于功能测试自动化被考虑;
    在考虑产品性价比的同时,应充分关注产品的支持服务和售后服务的完善性;
    尽量选择趋于主流的产品,以便通过行业间交流甚至网络等方式获得更为广泛的经验和支持;
    应对测试自动化方案的可扩展性提出要求,以满足企业不断发展的技术和业务需求。
    实战模拟

    以下笔者结合一个典型的企业客户,剖析其适用的软件测试自动化方案选型过程。

    1.公司背景介绍

    A公司是一家大型保险公司,拥有近20个城市的分公司,并在其中5个城市建立了IT支持中心。平均每年的上线应用数量在20个左右(新业务系统和原有业务系统的主要版本发布)。目前A公司的专职测试团队人数不足30人,而且测试团队的测试人员技能参差不齐,目前测试只是作为项目上线前的一道工序而已。在测试团队内部也几乎没有自动化的手段,主要依靠手工测试。由于已上线应用系统的问题,开发团队必须分出一部分资源去维护和修复上线应用,而同时测试团队的测试成果和效率却无法和这些应用质量挂钩,也更无从谈起对软件质量的控制。所以,A公司决定在软件质量和测试方面进行投入,他们考虑以下几方面:

    引进软件测试流程管理的自动化,提高软件测试过程的管理水平,使软件测试和软件开发一样可被评估、被衡量。
    实现性能测试自动化,所有应用上线之前必须有应用性能风险评估报告和相关部门的确认
    逐步实现功能测试的自动化,在目前人员配置的情况下,把部分手工测试变成自动化测试,提高测试可信度,降低人为错误。
    通过软件测试自动化,管理软件测试中的案例、缺陷、报告等资产,进一步提升软件测试的效率并建立测试基础库。
    在规划中,将来的2~3年内使所有的应用系统上线都必须有数字化的测试数据作为依据。
    2.公司应用系统的情况

    由于保险公司的业务种类繁多,同时在经过了几十年的经营后,公司内的应用系统从早期的终端方式到现代的J2EE和.NET等应有尽有,鱼龙混杂。IT部门已经建立的3年规划,即在未来的3年时间内将所有终端和C/S方式的应用转换成B/S架构,但当前仍然需要对这些旧应用系统进行维护,以保证业务的顺利进行。对于开发部门来说,目前新应用开发基本上已经以B/S架构为主,主要是基于J2EE架构的Web HTTP应用和部分Window.NET Form的应用。

    3.公司软件测试现状

    企业机构在做测试自动化选型时一定要考虑清楚企业内部哪些部分可以实施自动化、哪些部分暂不实施自动化、哪些部分仅在某几个项目做自动化试点。切忌匆忙上马或盲目否定,缺乏实事求是的理性思考。

    测试部门目前仅负责系统测试和对用户验证测试进行管理,对于之前的单元测试和集成测试主要由开发团队中划分出的一部分临时测试人员完成。由于缺乏监测手段,测试部门也无法收集和确定集成测试和单元测试的完成情况,在整个软件测试过程中,业务需求是由开发部门通过Rational RequisitePro进行管理,但测试需求目前尚没有提出要求,测试案例主要通过在公司公用的文件服务器中的目录管理方式管理,对测试中缺陷流程等管理主要依靠邮件的流转进行处理。目前90%以上的测试是通过Excel和Word等测试案例文档来完成,测试人员对软件测试自动化的认识仅停留在“记录+回放”的认识上。

    4.可供选择的方案

    方案A: A公司可以采用美科利(Mercury)公司产品为主的软件测试自动化方案。

    依照原先的邮件流转过程配置TestDirector缺陷管理流程,为每个保险业务的开发小组和测试团队分配相应的用户许可证,取消原有邮件方式。
    部署Mercury Quick Test Professional,以便完成应用程序相关功能测试。
    部署Mercury Load-Runner。从测试团队中分化出专职的性能测试自动化工程师和小组,和业务部门协调,建立A公司应用系统上线性能指标,通过LoadRunner给出测试指标。
    建议A公司成立专门的质量控制部门,对TestDirector中的数据定期进行分析,建立相关质量模型,以便于企业量化管理和过程改进。
    方案B: A公司也可以采用IBM Rational产品为主的软件测试自动化方案。

    采用Rational Test manager来进行整个测试流程的管理,为相关开发和测试小组成员分配相应权限,改变以前通过邮件以及Word、Excel文档管理测试的工作方式。
    部署Rational Robot,用它来完成功能相关的测试工作以及新版本发布时的冒烟测试。此外,Rational Robot也能较好地完成性能相关测试。统一的操作方式降低了工具的学习周期和培训带来的大笔开销。
    部署Rational Purify plus,使测试工作前移到开发阶段。由于Purify plus能较好地支持白盒测试,编程人员在编码阶段引入的错误能尽早被检测到,这大幅降低了后期测试的开销。
    建议A公司成立专门的质量控制部门,对Test manager中的数据定期进行分析,建立相关质量模型,以便于企业量化管理和过程改进。
    方案C: A公司也可以采用开源软件为主的软件测试自动化方案。

    采用Bugzilla来进行Bug跟踪管理,采用Bugzilla Test Runner进行测试用例管理,采用CVS进行测试资源的配置管理。
    采用MaxQ和WebInject对B/S结构的应用系统进行功能测试。
    采用DBMonster、Open-STA、LoadSim进行性能相关测试。
    可采用Xunit架构的开源工具对不同语言的程序单元进行单元测试。
    建议A公司成立专门的开源软件维护小组,以解决可能会碰到的工具维护工作。
    建议A公司成立专门的质量控制部门,对Bugzilla、Test Runner、CVS中的数据定期进行分析,建立相关质量模型,以便于企业量化管理和过程改进。
    5. 方案评价

    由于不同客户在组织架构、员工素质以及流程管理水平等方面的不同,我们很难用一个实例、一两句话来说明不同解决方案的适用性。在上面的例子中,笔者给出了3种可行的方案,具体选择哪一个,需要仔细权衡。这里笔者给出一般性的意见,对于不想受制于某个测试自动化厂家的企业,开源绝对是一个理想的选择。此外,它不需要支付成本,工具的源代码可以随意修改,因而具有较好的灵活性。但开源工具的弊端也是明显的: 缺乏使用培训和技术支持,工具的用户界面一般也较为粗糙。而对于那些比较看重培训和售后支持的企业,笔者建议选择IBM Rational或Mercury或其他厂家的产品。这样虽然需要支付一部分费用,但省去了工具维护所需要的大量工作。至于具体选择哪个厂家的产品为好,笔者尚无结论性意见。相信读者朋友都有一些见仁见智的看法,不妨来信交流。

    实施中的注意事项

    首先,一个企业实施测试自动化,绝对不是拍脑袋说干就能干好的,它不仅涉及测试工作本身流程上、组织结构上的调整与改进,甚至也包括需求、设计、开发、维护及配置管理等其他方面的配合。如果对这些必要的因素没有考虑周全的话,必然在实施过程中处处碰壁,既定的实施方案也无法开展。其次,尽管自动化测试可以降低人工测试的工作量,但并不能完全取代手工测试。100%的自动化测试只是一个理想目标,根据笔者的经验,即便一些如SAP、Oracle ERP等测试库规划十分完善的套件,其测试自动化率也不会超过70%。所以一味追求测试自动化只会给企业带来运作成本的急剧上升。再次,实施测试自动化需要企业有相对规模的投入,对企业运作来说,投入回报率将是决定是否实施软件测试自动化的最终指挥棒,笔者建议企业在决定实施软件测试自动化之前,必须要做量化的投资回报分析。此外,实施软件测试自动化并不意味着必须采购强大的自动化软件测试工具或自动化管理平台,毕竟软件质量的保证不是依靠产品或技术,更多的因素在于高素质的人员和合理有效的流程。

    文章来源:
    http://www.uml.org.cn/Test/200712202.asp
  • [论坛] 11种方法检测软件可靠性(转)

    2007-12-27 12:31:11

    软件的安全可靠性是衡量软件好坏的一个重要标准,安全性指与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性,可靠性指与在规定的一段时间和条件下,软件能维持其性能水平能力有关的一组属性。具体我
    们可以从以下几个方面来判断:

    1.用户权限限制。软件是否按功能模块划分用户权限,权限划分是否合理,考察超级用户对各个用户的权限管理是否合理,包括修改用户的登录资料等。

    2.用户和密码封闭性。软件对用户名和密码有无校验,有无保护措施,尤其对密码有无屏蔽功能。

    3.系统对用户错误登录的次数限制。软件对用户错误登录有无次数限制,一般做法是连续三次登录失败就退出系统。

    4.留痕功能。软件是否提供操作日志,比如某用户登录的时间,查询、修改或删除的动作以及离开的时间等。

    5.屏蔽用户操作错误。考察对用户常见的误操作的提示和屏蔽情况,例如可否有效避免日期的录入错误或写入无效的日期。

    6.错误提示的准确性。当用户操作错误或软件发生错误时,能否有准确清晰的提示,使用户知道造成错误的原因。例如当用户未输入完有效信息时存盘,系统应当给出关于未输入项的提示。

    7.错误是否导致系统异常退出。考察软件运行的稳定性,当软件发生一般错误或严重错误时,软件是否会自动退出。

    8.数据备份与恢复手段。主要针对有数据存储需要的软件,有的软件依靠数据库操作系统本身的备份与恢复机制,这需要用户具备一定的操作知识;好的软件会提供备份与恢复的操作,不需要用户直接对数据库系统进行操作。

    9.输入数据有效性检查。当用户输入的数据有错时,软件应能判断数据的有效性,避免无效数据的生成。

    10.异常情况的影响。在程序运行过程中进行掉电等试验,考查数据和系统的受影响程度;若受损,是否提供补救工具,补救的情况如何。

    11.网络故障对系统的影响。当网络中断连接时,是否会造成数据的丢失。

    以上一些方面是中国软件评测中心在大量的软件测试实践中提炼出来的比较有共性的项目,对于不同类型的软件,在安全可靠性方面还有更多的评测指标,并且依据实际情况侧重点有所不同。

    文章来源:
    http://www.uml.org.cn/Test/200712141.asp
  • [论坛] 测试人员应具备的几种思维方式(转)

    2007-12-25 21:58:55

    1、逆向思维方式
       • 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分
       • 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析
       • 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞

       2、组合思维方式
       • 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长
       • 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”
       • 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性

       3、全局思维方式
       • 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求
       • 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性

       4、两极思维方式
       • 边界值分析是两极思维方式的典范
       • 为了看系统的稳定性,我们采用了压力测试
       • 两极思维方式,是在极端的情况下,看是否存在缺陷?
       • 注意是两极,不是一极
       • 测试人员做久了,往往容易走极端——职业病,不利于与人沟通

       5、简单思维方式
       • 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”
       • 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向

       6、比较思维方式
       • 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用
       • 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用
       • 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式

       7、动起来,更精彩
       • 关注程序的运行时状态
       • 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离
       • 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现

       其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

       最后想说,只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。那真的需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要简单,需要(不断的学习+不断的经历+不断的思考)。

  • SQL SERVER系统控制台启动出错解决方案(转)

    2007-12-12 21:57:56

    关于“MMC不能打开文件C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SQL Server Enterprise Manager.MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限 ”

    运行mmc,控制台--添加/删除管理单元--添加--找到Microsoft   SQL   企业管理器--添加--关闭--确定  
      回到控制台--选项--控制台模式选择"用户模式完全访问"--将下面的选择全部取消   
      控制台--另存为--存储为:C:\Program Files\Microsoft SQL Server\80\Tools\BINN\SQL Server Enterprise Manager.MSC   
      不行的话,重新注册DLL   
      运行:regsvr32   C:\Windows\system32\msxml3.dll 

      
      文章来源:http://community.csdn.net/Expert/topic/4435/4435338.xml?temp=.9712641

  • 验证码技术介绍(转)

    2007-12-12 11:44:26

    作者:陈十三哥    发布时间:2005-07-30

     

    验证码不同于注册码,注册码是软件作者根据提交的机器码通过特殊算法算出的,能让软件正常运行的密码。


    一.常见的验证码
    1,四位数字,随机的一数字字符串,最原始的验证码,验证作用几乎为零。

    2,CSDN网站用户登录用的是GIF格式,目前常用的随机数字图片验证码。图片上的字符比较中规中矩,验证作用比上一个好。没有基本图形图像学知识的人,不可破!可惜读取它的程序,在CSDN使用它的第一天,好像就在论坛里发布了,真是可怜!

    3,QQ网站用户登录用的是PNG格式,图片用的随机数字+随机大写英文字母,整个构图有点张扬,每刷新一次,每个字符还会变位置呢!有时候出来的图片,人眼都识别不了,厉害啊…

    4,MS的hotmail申请时候的是BMP格式, 随机数字+随机大写英文字母+随机干扰像素+随机位置。

    5,Google的Gmail注册时候的是JPG格式,随机英文字母+随机颜色+随机位置+随机长度。

    6,其他各大论坛的是XBM格式,内容随机。

    二.验证码作用分析

    验证码起源:因为攻击者会使用有害程序注册大量的 Web 服务帐户(如 Passport)。攻击者可以使用这些帐户为其他的用户制造麻烦,如发送垃圾邮件或通过同时反复登录多个帐户来延缓服务的速度。在大多数情况下,自动注册程序不能识别此图片中的字符。简单的说呢,就是防止攻击者编写程序,自动注册,重复登录暴力破解密码。验证码技术应运而生。

    验证码实现流程:服务器端随机生成验证码字符串,保存在内存中,并写入图片,发送给浏览器端显示,浏览器端输入验证码图片上字符,然后提交服务器端,提交的字符和服务器端保存的该字符比较是否一致。一致就继续,否则返回提示。攻击者编写的robot程序,很难识别验证码字符,顺利的完成自动注册,登录。。。。。。。。。而用户可以识别填写,所以这就实现了阻挡攻击的作用。而图片的字符识别,就是看图片上的干扰强度了。就实际的效果来说,验证码只是增加攻击者的难度,而不可能完全的防止。

    1,论坛中的验证码的作用
        目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。
        因为你的WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是身份欺骗它通过在客户端脚本写入一些代码,然后利用其客户机在网站论坛反复登陆,或者攻击者创建一个HTML窗体,其窗体如果包含了你注册窗体或发帖窗体等相同的字段,然后利用"http-post"传输数据到服务器,服务器会执行相应的创建帐户,提交垃圾数据等操作,如果服务器本身不能有效验证并拒绝此非法操作,它会很严重耗费其系统资源,降低网站性能甚至使程序崩溃.
        而现在流行的判断访问WEB程序是合法用户还是恶意操作的方式,就是采用 一种叫 "字符校验"的技术.WEB网站像现在的动网论坛,他采用达到方法是为客户提供一个包含随即字符串的图片,用户必须读取这些字符串,然后随 登陆窗体或者发帖窗体等用户创建的窗体一起提交.因为人的话,可以很容易读出图片中的数字,但如果是一段客户端攻击代码,通过一般手段是很难识别验证码的.这样可以确保当前访问是来自一个人而非机器.
        编程实现原理:使用某种动态编程语言,比如PHP,ASP,随即生成一个随机数,大多为4位数字和字母,或者是数字和字母的组合,生成以后,用GD库的支持生成一张根据随机数来确定的图片,把随机数写入到session中,传递到要验证的页面,生成的图片显示给登陆着,并要求登陆者输入该随机数内容,提交到验证页面,验证session的内容和提交的内容是否一致,这就是大致的思路!那么怎么编写验证码程序呢,相信Google一下,就有很多现成的代码。

    2,申请QQ号时候验证码的作用

        如今你要申请一个QQ号,需要输入很复杂的验证码:验证码由若干个汉字组成,还加上了花哩唬哨的背景,使得有些汉字实在难以辨认。腾讯这么做,是为了防止有人利用软件批量获取QQ号码----每次提交都要输入随机生成的验证码,这是软件难以做到的。

    三.图片验证码技术之一:利用Xbm格式图片
        生成验证代码的技术有很多,这里只说与我们论坛有关系的这项技术。
        x-xbitmap格式的图片(以下简称为Xbm格式)特殊,就在于它并不跟gif,jpg等图片格式一样,是一个真正的纯2进制图片格式,而是ascii码文件--换句话说,它是一个纯文本文件,在Windows系统下,系统浏览器将它翻译成图片来进行显示。
        下面让我们先来制作一个Xbm图形格式图片:
      新建一个文本文件,将以下内容复制进去:
      #define counter_width 48
      #define counter_height 9
      static unsigned charcounter_bits[]={ff,3c,7c,3c,70,3c,fe,7c,fe,7c,78,7c,ee,ee,ee,ee,7c,ee,e0,ee,60,ee,74,ee,70,fe,30,
    fe,70,fe,38,ec,e0,ec,70,ec,1c,e0,ee,e0,70,e0,fe,7e,fe,7e,70,7e,fe,3c,7c,3c,70,3c}
      然后,将此文本文件保存为名字为 test.Xbm的文件。
      接下来,让我们看看如果在ie中打开它,会出现什么情形??(新开一个ie,然后将test.Xbm直接拖拽到它上面),哈,出现了如下图一样的情景,在浏览器中出来的,已经不是我们的文本,而是一个黑白的图片了!
      让我们看看上面那代码中,每一行的意义:
       #define counter_width 48 这里定义了图片的宽度,一般都设置为8的整数倍,因为我们想显示的是6个数字,所以就设置成了8*6=48的宽度
      #define counter_height 9 这里设置了图片的高度,可以任意设置,但是注意,这里的数字直接决定了下面的数组中,是用几组数来表示一个显示出的数字
      static unsigned char counter_bits[]={7c,3c,7c,3c,70,3c,fe,7c,fe,7c,78,7c,ee,ee,ee,ee,7c,ee,e0,ee,60,ee,74,ee,70,fe,30,
    fe,70,fe,38,ec,e0,ec,70,ec,1c,e0,ee,e0,70,e0,fe,7e,fe,7e,70,7e,fe,3c,7c,3c,70,3c}
      在这里,是图片用来显示内容的十六进制的代码,在这里,是9*6=54个数字来表示,值得一提的是,由于在图片显示中,是显示完了一行后,再显示第2行,直到最后一行,因此更为准确的描述是6*9显示,每6个数表示一行(因为我们显示了6个数字),一共9行(我们的定义中,是采用的高度为9的数组)
      正如static unsigned char英文意思为静态的,无符号的,烧焦的。它只能用来显示黑白两种颜色。二进制中的1将来用显示为黑色,0为白色。
      因此,上面的7c、3c这样的数字,就是一个256位的2进制,其中的1表示黑色,0表示白色,由此绘制出每个数字的图形。
      由于Xbm文件的性质决定,它只能显示黑/白两种颜色,而且以数组的方式来表现每个要显示的图形,注定了不能用它生成太复杂的图案。那么,这样的图片格式到底有什么用呢??当然有的,不少asp论坛/聊天室的登陆验证码,就是用这样的方法在asp中动态生成的。

    四.为什么要打补丁才能正常显示呢?
        在WindowsXP SP2更改后的安全策略中,因为基于安全因素的考虑,默认去掉了对 image/x-xbitmap 图片格式的支持(该图片的后缀名为Xbm)。,为什么微软在XP的SP2升级包中又要禁止掉它呢??这是因为Xbm的漏洞。
      Microsoft Internet EXPlorer和Outlook EXPress在处理WEB页,HTML邮件,EMAIL附件中畸形Xbm图象文件会导致崩溃,问题存在于对Xbm文件中的内容缺少检查,MSIE按照图象规定的长度和宽度分配内存,攻击者可以提高超大的长度和宽度数值导致系统消耗内存或者访问冲突。
      换句话说,如果构造一个长宽的尺寸特别大的Xbm文件,很容易导致Windows的内存耗尽,导致程序无响应或者死机。本身来说,这不算一个特别严重的漏洞,因为根据安全公告,无法造成溢出,不会存在太大的权限漏洞。但是由于XP的SP2强调安全性,因此将Xbm功能禁用了。从这点上可以看出,SP2对于安全的确比较重视,将有漏洞的功能基本上都补上或禁用了,作为网络管理员,我对微软的做法表示支持,因为操作系统默认设置的不安全,常常是造成非专业用户被攻击的首要因素。
      解禁方法:
      由此看出,以后我们访问某些采用生成Xbm作为验证代码的站点的时候,就相当不方便了,如果有必要,可以通过简单的操作注册表恢复我们需要的功能。
      打开注册表(开始---运行---regedit----回车),然后进到键值[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet EXPlorer\Security]
    将blockXbm的值改为00000000(dword,双字节),没有的话新建立一个就可以了。
      之后重新IE或者重新启动机器,则Xbm格式的图片就可以看到了。

    五,Xbm的趋势
      从SP2禁止Xbm的趋势看出,微软打算似乎已经开始打算放弃对Xbm格式的支持了。那么,作为程序编写者,有必要未雨绸缪,寻找其他生成验证码的途径。在php中,可以通过调用gd库等方式生成jpg/gif等图形格式的注册验证码,那么在asp中有其他的办法么?

      事实上图片验证密码的关键是--不能在客户端留下图片的真实url,或可对应反推源地址的信息,因此asp可以采用以下2种方式实现支持SP2的图形验证码。

      如果是购买的虚拟主机,那么可以采用将jpg/gif图片放到数据库,然后用session传值的方式,最后利用asp直接从数据库中输出图片,这方法的好处是不需要特别设置服务器端,坏处则是每次生成验证图片时都会需要与数据库连接,增加了开销。

      如果是有管理员控制权限的用户,可以考虑采用第三方组件来实现。天缘个人推荐 ASP图象组件shotgraph ,它的免费版本对生成的图形有一定限制,不过已经足够用来制作验证码了。

    文章来源:http://www.juntuan.net/jtyc/wenzhang/n/2005-07-30/6750.html

  • 自动化测试十大要点(转)

    2007-12-10 11:56:16

        当一款自动化测试工具引入到一个项目中,我们通常对它给予很高的期望;项目成员希望工具能够尽可能的缩小测试范围、节约成本并缩短项目进度,然而可悲的是,很多采用自动化测试的项目依然失败了。

        以下几个方面严重影响着自动化测试的效率,如果处理不当,将会造成事倍功半甚至前功尽弃的后果,自动化测试也成了一副空架子。

        一是测试的范围:想要百分百的实现自动化测试是不现实的,而且从时间投入上也是不可行的;有选择性的挑选应用程序的一些功能或区域模块,采用自动化测试。

        二是测试时间的准备工作:自动化测试脚本的开发时间必须考虑在内,一般来说,开发测试脚本的时间要比手工测试多出三分之二,因为现实里工具会在初始阶段增加测试的范围;因此,对自动化测试保持适度的期望值很重要:工具不能取代手工测试,更不能代替测试工程师。测试初始阶段,投入会比较大,当自动化完成后,将会大大缩短后续的版本的测试时间。
        三是投资的回报:自动化测试的准备工作如此漫长,据说自动化测试的效益只会出现在测试被执行三次以后的时间里。
        四是何时获得自动化测试的收益:定位合适的测试目标,并认真分析自动化测试的收益出现在何时、何处。如果测试程序频繁进行大幅度变更或修改,还是放弃自动化测试吧!-你将会耗费相当的时间去修改测试脚本,但收益是微乎其微的。(但是,如果应用程序频繁变更的模块彼此独立,或者修改较小,或者只是特定区域的变更,那么仍然可以成功采用自动化测试。)另外,谨记只有当应用程序将近发布时,才可以进行完整的自动化测试;如果应用程序缺陷太多,功能点运行失败,想要运行全面的测试套件程序是不太可能的。
        五是变更的程度:自动化测试最适合用于回归测试,将那些已经存在并相对完善的功能进行自动化测试;例如应用程序1.0版本的功能模块已经稳定,没有引入1.1版本的新功能,这种情况下,我们对其制订自动化测试计划并设计测试脚本,不至于因为简单的GUI变更(例如某个控件改名或移动)而使脚本无效。我们也需要将修改脚本的时间考虑在内,例如,如果应用程序的版本升级造成很大的功能改变,那么也许要全部重新书写测试脚本,这种情况是我们不愿意看到的。但是,如果只是某个相对独立的功能模块发生变更,或者变更较小,我们可以成功的实现在回归测试里的自动化。
        六是测试的完整性:我们如何度量一个测试是否通过或失败呢?单单凭借工具返回的“pass”不足以证明测试本身通过无误,例如,没有错误的提示信息出现并不意味着脚本的下一步动作能够成功进行。因此这一要点需要在规划测试脚本的通过与否标准上考虑在内。
    七是测试的独立性:测试的独立性应该被考虑在内,从而不至于某一个测试用例的运行失败引起全局影响,甚至阻止整个测试套件程序里其他脚本的运行;但是,在实践中对该问题的把握并不容易,需要一定的努力达到此目标。

        八是对测试脚本本身的调试和测试:必须花费一定的时间进行该工作,以检验测试本身的完整性。

        九是录制/回放:不要完全把工具的录制/回放功能作为创建测试脚本的唯一方法,这个观念是很重要的。测试者在后台运行测试工具,再手工执行测试,工具将测试者的动作记录下来,自动生成一个脚本,以便测试者可以重新运行测试动作,这虽然是个好想法,但对测试工作本身并无太大意义。

        十是对测试脚本的维护:最后一点,对自动化测试脚本的维护是一个高投入的工作,脚本必须持续的更新,否则一旦应用程序有太多的变更而要修改测试脚本时,你会因为一下子需要上百个小时而考虑是否值得这样做,从而最终放弃自动化测试。因此,测试脚本每次更新时,对其进行文档化管理是必要的。

    文章来源:http://www.rjzl.gov.cn/news.asp?id=699

  • 图片验证码性能测试解决方案(转)

    2007-12-10 11:17:43

    如何测试图片验证码功能,大家常用的有三种方法:

        1.设置一个万能验证码。

        2.取消验证码功能。

        3.编写个专用插件,动态获取真实的验证码

        1,2两种方法实现比较容易,缺点是不能真实的模拟实际应用环境3的方法技术难度较高欒其实我们还有第4种即简单又能够真实的模拟实际应用的方法cZ冬淈F螧以Jsp网站为例,先来看看验证码功能的实现方法。图片验证码由以下几个步骤实现。 

        1.生成随机数。 

        2.将随机数存入 Session (会话)。 

        3.将随机数制作成图片。 犳嬦蠫9&啓部分较重要的代码如下。

        <img src="CheckCode.jsp" border="0" alt="验证…… 这个是调用 CheckCode.jsp 文件,生成图片验证码。 几???0頋?lt;酭嶯L?z CheckCode.jsp文件代码如下

        String sRand="";

        for (int i=0;i<4;i++){

        String rand=String.valueOf(random.nextInt(10));   //生成随机数

        sRand+=rand;

        ……

        }

        session.setAttribute("rand",sRand);   

        将随机数据存入session中。

        到这里我们已经知道,只要制作一个jsp页面调出session中的rand 值,就可以得到验证码的正文数据。

        实现代码如下。

        t.jsp 

        <%

        out.print(session.getAttribute("rand")); 

        如果在LoadRunner中实现的方法如下: {

        请求 CheckCode.jsp 生成图片验证码。

        请求 t.jsp 获取验证码的正文数据。

        提交 数据。

     

    文章来源:http://www.iceshi.com/html/20/n-2120.html

  • 解决WEB性能测试中的验证码问题(转)

    2007-12-10 11:15:58

        作者:关河

        现在越来越多的网站为了安全性或是防止Spam的侵害,采用了验证码的校验技术。简单地说,验证码就是在进行登录或是内容提交的时候,页面上会随机出现一个人工可识别,但机器不可识别的验证字符串(一般是采用背景、扭曲等方式产生的图片),要求登录或是提交内容时同时输入这个验证码。

        验证码可以有效防止对口令的刺探和所谓的网络推广软件带来的大量的Spam内容,目前已经被许多Internet或是Intranet应用接受为标准的实现方式。但对性能测试来说,这种验证码又带来了很大的问题。

        最突出的问题是,性能测试工具本身是自动化工具,由于这种验证码采用的是“防止自动化工具尝试”的方法,因此,在录制了脚本之后会发现,很难对脚本进行调整,以使其适应验证码验证的需要。已经不止一次有人提到这个问题,并询问有没有较好的解决方案。

        对这个问题,我个人的看法是,基本上可以考虑从三个途径来解决该问题:

        1、第一种方法,也是最容易想到的,在被测系统中暂时屏蔽验证功能,也就是说,临时修改应用,无论用户输入的是什么验证码,都认为是正确的。这种方法最容易实现,对测试结果也不会有太大的影响(当然,这种方式去掉了“验证验证码”这个环节,不过这个环节本来就很难成为系统性能瓶颈)。但这种方法有一个致命的问题:如果被测系统是一个实际已上线的系统,屏蔽验证功能会对已经在运行的业务造成非常大的安全性的风险,因此,对于已上线的系统来说,用这种方式就不合适了;

        2、第二种方法,在第一种方法的基础上稍微进行一些改进。第一种方法带来了很大的安全性问题,那么我们可以考虑,不取消验证,但在其中留一个后门,我们设定一个所谓的“万能验证码”,只要用户输入这个“万能验证码”,我们就验证通过,否则,还是按照原先的验证方式进行验证。这种方式仍然存在安全性的问题,但由于我们可以通过管理手段将“万能验证码”控制在一个小的范围内,而且只在性能测试期间保留这个小小的后门,相对第一种方法来说,在安全性方面已经有较大的改进了;

        3、如果安全性对应用来说真的是至关重要的,不容许有一丝一毫的闪失,那我们还可以用更进一步的方法来处理这个问题。一般的性能测试工具(MI的LR、Seague的Silk performer等)都能够调用外部的DLL或是组件接口,因此,可以考虑获得“验证码验证”部分的实现,写一个验证码获取的DLL,在测试脚本中进行调用即可。

        除了这三种方法以外,可能还会有其他的方法存在,也希望各位能提供一些其他的思路。在我的实践中,第二种方法用得比较多,对未上线系统系统的内部性能测试,有时候也用第一种方法。但要提醒的是,如果针对的是已上线系统,无论用哪种方法,测试完成后,都必须立刻将应用恢复,并对系统进行一次安全审计,以免在测试期间被他人入侵。第三种方法用得比较少,而且具体上还依赖于验证组件是否能提供这样的接口。

    文章来源:http://www.51testing.com/html/57/950.html

  • 关于"The RPC server is unavailable"的探讨及解决方案(转)

    2007-12-05 22:30:01

    “The RPC server is unavailable”是TD使用中相当常见的问题,在这里做个总结,希望朋友们一起交流探讨一下。

    The RPC server is unavailable.翻译过来就是“RPC(远程过程调用)服务不可行。”--可以这么理解,它指的是“权限不够”的意思。

    导致此原因的可能性很多很多,以下是我总结的几点(其中包含其它网友提供的资料,这里向他们表示感谢),希望大家补充:

    1. RPC服务未启动。解决:控制面板-管理工具-服务-“Remote Procedure Call(RPC)”,启动一下(自动),服务状态“启动”;

    2.服务器端IIS没装。解决:安装IIS。以2000系统为例,控制面板-添加删除程序-添加删除windows组件-“Internet 信息服务(IIS)”打一下勾,下一步……

    3.你的系统没有打过补丁。如果你的系统是win2000,那么最好是打上sp3或者sp4补丁。根据个人猜测:如果你的TD的补丁是sp4,那么最好你的2000系统也打上sp4补丁(注意:别搞错了!一个是操作系统的补丁,一个是TD的补丁)。解决:安装系统补丁——去微软网站上down吧,伙计^_^

    4.TD服务未启动。此种情况比较复杂,需要尝试不同的解决方案,先到TD所在的那台机器上,点右键的testdirector checker,看看出错提示,对症下药。
    以下几种可以结合起来尝试(反正你都登不上了,不如死马当作活马医,您说对不):
    ①清空IE的cookies、History、缓存;删掉TD_76目录,重新下载一次插件;
    ②进入TD后,点add-ins page;进入后点TestDirector Connectivity ;然后点download add-in;手动下载插件安装;
    ③启动一下TD。到TD所在的那台电脑上,在系统栏右边有个小图标,鼠标移上去,点右键“Start TestDirector”;
    ④TD补丁没打,可以试安装TD sp4;
    ⑤密码被改了,请询问管理员;
    ⑥TD服务器装了多个版本的TD,兼容性问题;请卸载其中一个版本,重装TD;
    ⑦把 http://IP/tdbin/start_a.htm 改为 http://计算机名/tdbin/start_a.htm 试试;
    ⑧如果TD被移植过,到TD所在的那台机器上,点右键的CHANGE RUNAS,更改一下账号;
    ⑨TD数据库文件毁坏(文件都搁屁了,还混啥?),和管理员沟通一下吧;
    ⑩TD服务器的那台机器有问题。或许是中毒了,或许是操作系统问题(可能系统内存泄露导致服务器崩溃,可能是注册表问题,可能是其它问题……),或许是硬盘坏道问题--这几种情况的共性是有时有问题,有时又没问题,莫名其妙的。
    在尝试了上述几种方案恢复均告失败后,这个情况的可能性大之又大,千万别忽略了,还真有人就遇到过这种情况。
    重装TD的那台机子的系统或者干脆把TD转移到另一台机器上试试。

    文章来源:http://bbs.51testing.com/thread-5984-1-1.html
  • 搭建软件测试环境(转)

    2007-12-05 13:40:44

    配置测试环境是测试实施的一个重要阶段,测试环境适合与否会严重影响测试结果的真实性和正确性。测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备,以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。在实际测试中,软件环境又可分为主测试环境和辅测试环境。主测试环境是测试软件功能、安全可靠性、性能、易用性等大多数指标的主要环境。一般来说,配置主测试环境可遵循下列原则:

    1.符合软件运行的最低要求。测试环境首先要保证能支撑软件正常运行。

    2.选用比较普及的操作系统和软件平台。例如,一个软件若声称支持“Windows9X/ME/NT Workstation/2000 professional”和“MS Office 97/2000/XP”,一般我们会采用如“Windows 2000professional+MS Office 2000”的流行环境。

    3.营造相对简单、独立的测试环境。除了操作系统,测试机上只安装软件运行和测试必需的软件,以免不相关的软件影响测试实施。

    4.无毒的环境。利用有效的正版杀毒软件检测软件环境,保证测试环境中没有病毒。

    辅测试环境常常用来满足不同的测试需求或特殊测试项目:

    兼容性测试:在满足软件运行要求的范围内,可选择一些典型的操作系统和常用应用软件对其安装卸载和主要功能进行验证。

    模拟真实环境测试:有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。

    横向对比测试:利用辅测试环境“克隆”出完全一致的测试环境,从而保证各个被测软件平等对比。
  • cookie介绍(转)

    2007-12-04 23:32:14

    因特网的Cookie技术极其简单,却有着旺盛的生命力。Cookie开始引起众人的注意是从2000年二月份随着网络隐私权的提出开始的,有关的辩论至今仍在继续。从另一方面来说,Cookie使得浏览网页更容易了。几乎所有的主要的网站设计者都使用了Cookie,因为他们想为浏览网站的人提供一个更好的浏览环境,同时也能更加准确地收集访客的信息。

      有家颇有影响的报纸上曾刊登了一篇很有深度的关于网络隐私的文章,上面对于Cookie的定义是这样的:

      “Cookie是Web网站放在您的硬盘上的程序。它守在您的电脑里,搜集您的信息以及您在因特网上所做的任何事情,当Web站点需要的时候它能够下载所有这些搜集到的信息。”

      像这样的定义在报刊中相当普遍。问题是,它的定义犯了很大的错误。Cookie不是程序,而且它不能像程序一样地运行,所以它无法为自己搜集任何信息。它也不能从您的电脑上取得您的任何个人资料。

      Cookie的比较确切的定义应该是这个样子:

      “Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‘名/值’对(name-value pairs)的形式储存。”

      举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。

      如果您使用IE浏览器访问Web,您会看到所有保存在您的硬盘上的Cookie。它们最常存放的地方是:c:windowscookies(在Win 2000中则是Cocuments and Settings您的用户名Cookies——作者注)。在我的机器上共有165个文件。每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的Web站点的信息。

      在这个文件夹里的每个Cookie文件都是一个简单而又普通的文本文件。透过文件名,您可以看到是哪个Web站点在您的机器上放置了Cookie(当然站点信息在文件里也有保存)。您也能双击打开每一个Cookie文件。

    比如,我访问了goto.com,而且这个站点在我的电脑上放了个Cookie。goto.com的Cookie文件包含了这样的内容:

      UserID A9A3BECE0563982D
    www.goto.com/

      goto.com在我的电脑上存入了一个单一的“名/值”对。“名/值”对的“名”是UserID,“值”是A9A3BECE0563982D。在我第一次访问goto.com的时候,该网站为我分配了一个唯一的ID并存在我的电脑里。

      (注:除了上面举例的“名/值”对,可能会有其它的“名/值”对同时保存下来。那是浏览器的一些内部信息,一般用户不必多做了解。)


      Amazon.com在我的电脑上保存了稍稍多一些的信息。当我查看Amazon在我的电脑上建立的Cookie文件时,它包含以下内容:

      session-id-time 954242000 amazon.com/

      session-id 002-4135256-7625846 amazon.com/

      x-main eKQIfwnxuF7qtmX52x6VWAXh@Ih6Uo5H amazon.com/

      ubid-main 077-9263437-9645324 amazon.com/

      以上内容显示出Amazon存储了一个主用户ID ubid-main,一个标记每次任务的ID session-id及任务发生的时间session-id-time。还有一个x-main,不知道是什么。

      大多数的网站在您的电脑上只保存一条信息,即用户ID。但一个站点可以用Cookie存储的“名/值”对的最大数目没有任何限制。

      一个“名/值”对仅仅是一条命名的数据,它不是程序,也不能“做”任何事情。一个网站只能取得它放在您的电脑中的信息,它无法从其它的Cookie文件中取得信息,也无法得到您的电脑上的其它任何东西。

      Cookie数据仅仅是Web站点在浏览者硬盘上存储的“名/值”数据对。这就是Cookie的所有内容。Web站点保存了数据,随后又把它取回。一个Web站点只能取得它保存在你电脑上的内容,无法偷窥别的Cookie,更不要说电脑上其他的数据。
      
      Cookie数据的流动过程如下:
      
      ·如果在浏览器上键入了一个Web站点的URL,浏览器向Web站点请求读取网页。比如,您输入了:
    http://www.amazon.com
      
      浏览器将从Amazon的服务器读取它的主页。
      
      ·在做上面工作的同时,浏览器将从电脑上寻找Amazon网站设置的Cookie文件。如果找到了Amazon的Cookie文件,浏览器会把文件中的所有“名/值”对同先前的URL一同发给Amazon服务器。如果没有找到,就不发送Cookie数据。
      
      ·Amazon服务器接收Cookie数据和对网页的请求。如果存在“名/值”对,Amazon将使用它。
      
      ·如果没有收到“名/值”对,Amazon知道您在此之前没有访问过它的站点,服务器会为您创建一个新的ID放进Amazon的数据库中,然后把“名/值”对放在传回的网页的头信息里传给您。您的浏览器将在硬盘上保存“名/值”对。
      
      ·每当您再次访问网站时,网站服务器会改变“名/值”对或增加新的“名/值”对。
      
      另外,服务器会随着“名/值”对发送一些其他信息。其一是生存期(Expiration date);还有一个是路径(网站借此把不同的Cookie值与不同的网站部位关联起来)。
      
      您有权控制这个过程。您可以设置一个选项让浏览器在收到网站发来的“名/值”对时提醒您,由您决定是否接受。
  • “COM+ 无法与Microsoft分布式事务协调程序交谈”之解决方案(转)

    2007-12-04 00:07:27

    1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与Microsoft分布式事务协调程序交谈”,无法查看里面的对象。
    2、进入事件查看器,发现msdtc服务没有正常启动。
    3、删除注册表中的键值(注意,是该分类中的键值)
       \H-L-M\SYSTEM\CurrentControlSet\Services\MSDTC\
          \H-L-M\SOFTWARE\Microsoft\MSDTC\
          \H-C-R\CID\
    4、停止MSDTC服务:net stop msdtc
    5、卸载MSDTC服务:msdtc -uninstall
    6、重新安装MSDTC服务:msdtc -install
    7、到服务中将messager服务改为自启动,并启动
    8、查看组件服务是否正常,如果还没有,重新启动下电脑看看。

    MSDTC正常启动以后,最好再做如下配置:
    1、组件服务-我的电脑-右键属性

     

    2、打开MSDTC选项卡


    3、打开安全配置,如图配置


  • 打开TD提示:Error:Server is Not Available 的解决方法(转)

    2007-12-03 23:23:53

    装完TD,打开TD首页提示:Error:Server is Not Available
    按确定,再提示:OTA server is not connected
    再确定,结果页面提示如下
    Following client components were not downloaded successfully:
    1.tdclientui80.TdFrameX
    Close all connections to TD Server and try again

    用TD的TestDirector Checker检查了一下,看见里面有一些红字如下:
    The TestDirector installation process creates a virtual directorywhich it attempts to places in High (Isolated)Application Protection,If,after the installationprocess,the virtual directory is otherwise protected,TestDirector cannot word properly,To rectify thissituation,you must resynchronize the IWAM_XXXX accountpassword,or place the virtual directory in Low(IIS process)
    Application Protection,For instructions onsynchronizing IWAM_XXXX account passwords,refer toArticle#324 on the following
    Web site:www.IISFAQ.com

    根据上面的提示,到IIS里面的TDBIN目录里修改了属性“应用程序保护”,选择“高(独立)”结果提示如下:
    com+无法与Mircrosoft分布式事务协调程序交谈

    解决方法:

    步骤如下:提前说下修改完毕到IIS里面的TDBIN目录里修改了属性“应用程序保护”,选择“高(独立)”,再浏览主页就没事了。

    1、 重新设置IIS的IWAM账号密码。右键单击 我的电脑->管理,打开计算机
    管理界面打开 本地用户和组->用户 右键单击 启动IIS进程帐号 IWAM_****(注:****一般是计算机名)点击设置密码,设置为一个你想要的密码。

    2、 同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:\inetpub\adminscrīpts>adsutil set w3svc/wamuserpass "yourpassword"也可:选择"站点 属性"->目录
    安全性标签->编辑"匿名访问和验证控制"->在弹出的框中选中匿名访问,单击编辑按钮->用户名浏览,选择IWAM_MACHINE,密码框中输入同一的密码,选中"允许IIS控制密码"->确定。

    注意:
    在WIN2000中,查看到的密码为星号,若要不为星号,必须要先修改adsutil.vbs文件。
    a.到c盘 inetpub\adminscrīpts 找到adsutil.vbs  (根据装
    系统时设定的不同,有的路径可能不一样)
    b.右键单击,用记事本打开
    c.查找 IsSecureProperty = True  注意=前后各有一个空格
    d.将 IsSecureProperty = True 改为 IsSecureProperty = False

    获取 IWAM 帐户密码命令: cscrīpt.exe adsutil.vbs get w3svc/wamuserpass
    获取 IUSR 帐户密码命令: cscrīpt.exe adsutil.vbs get w3svc/anonymoususerpass
    输入以上命令,按回车可分别查看IWAM和IUSR的密码。
    修改密码命令:
    修改 IWAM 帐户密码 cscrīpt.exe adsutil.vbs set w3svc/wamuserpass "password" 
    修改 IUSR 帐户密码 cscrīpt.exe adsutil.vbs set w3svc/anonymoususerpass "password"
    password 设置为你想修改的密码,即与第一步中你设置的用户IWAM_****的相同,按回车即可修改完成。
    修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。
    3、 同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:\inetpub\adminscrīpts>cscrīpt synciwam.vbs –v。不成功。也可:
    (1)启动组件服务管理单元: “运行”->“mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。
    (2)找到“组件服务”->“计算机”->“我的电脑”->“com+应用程序”->“out-of-process pooled applications”,右击“out-of-process pooled applications”->“属性”。
    (3)切换到“out-of-process pooled applications”属性对话框的“标识”选项卡。选择“此用户”,浏览,选择用户名“IWAM_MACHINE”。这些都是缺省的。在下面的“密码”和“确认密码”文本框内输入正确的密码,确定退出。

    (4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。
    (5)如果在iis中将其它一些web的“应用程序保护”设置为“高(独立的)”,那么这个web所
    使用的com+应用程序的iwam账号密码也需要同步。
    但是在进行第三步操作时总是报8004e00f错误。进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错"COM+ 无法与 Microsoft 分布式事务协调程序交谈",无法查看里面的对象。在事件查看器中msdtc服务没有正常启动。解决
    方法:运行 msdtc -resetlog
    最后解决:"COM+ 无法与 Microsoft 分布式事务协调程序交谈"在安装了Windows组件
    中的消息队列后,就不会出现这个错误了,同时"消息队列"组件又对服务中的"Distributed Transaction Coordinator"(即msdtc服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,COM+应用程序菜单就可以打开了,表示其已正常工作!如果在这个时候再装IIS或者把IIS卸载重装,就正常了!实际上,手工同步密码太过麻烦!

261/212>

我的栏目

数据统计

  • 访问量: 15078
  • 日志数: 27
  • 建立时间: 2007-09-03
  • 更新时间: 2008-03-24

RSS订阅

Open Toolbar