故意学习,故意生活,故意活的像个人!

发布新日志

  • 因果图法实例三

    2007-01-30 14:34:04

    因果图实例讲解

     此例子是讲解利用因果图设计测试用例的一个小例子。以中国象棋中走马的测试用例设计为例学习因果图的使用方法。
     
    分析中国象棋中走马的实际情况(下面未注明的均指的是对马的说明)
     1、如果落点在棋盘外,则不移动棋子;2、如果落点与起点不构成日字型,则不移动棋子;3、如果落点处有自己方棋子,则不移动棋子;4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5、如果不属于1-4条,且落点处无棋子,则移动棋子;6、如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;7如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
    根据分析明确原因和结果
    原因:
    落点在棋盘上;
    落点与起点构成日字;
    落点处为自己方棋子;
    落点方向的邻近交叉点有棋子;
    落点处无棋子;
    落点处为对方棋子(非老将);
    落点处为对方老将。
     结果:
     21、不移动棋子;
     22、移动棋子;
     23、移动棋子,并除去对方棋子;
     24、移动棋子,并提示战胜对方,结束游戏。
     
     添加中间节点11,目的是作为导出结果的进一步原因,简化因果图导出的判定表
     

    考虑结果不能同时发生,所以对其施加唯一约束O。原因5、6、7不能同时发生,所以对其施加异约束E.
    根据因果图建立判定表:(分为两表)
     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
    原因 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
     2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 
     3 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
     4 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 
    结果 11 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
     21 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 
    用例                  

     1 2 3 4 5 6 7 8 9 `0 11 12 13 14 15 16 
    原因 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
     5 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 
     6 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 
     7 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 
    结果 22 0  0 1 0 0   0 0       
     23 0  0 0 0 1   0 0       
     24 0  0 0 0 0   0 1       
    用例                  
    注:1、以上判定表中由于表格大小限制没有列出最后所选的测试用例;2、第2表中部分列被合并表示不可能发生的现象;3、通过中间节点将用例的判定表简化为两个小表。减少工作量。

    四、根据判定表写测试用例表(略)

  • 因果图法--实例二

    2007-01-30 14:33:17

    邮件系统的组装测试
     本系统的组装测试是“自底向上”进行的,先测试辅助模块,再测试主控模块。测试方法为因果图法。
     1. 新用户注册页面和其他页面的消息传递
    原因和结果列表:
    原因 操作 结果 
    (1)USERNAME (14)确认 (16)个人资料显示所填内容 
    (2)密码 (15)取消 (17)登录用用户名和密码进入 
    (3)密码提示问题  (18)信箱各文件夹的用户名显示 
    (4)提示问题的回答  (19)密码更改中输入密码 
    (5)姓名  (20)忘记密码中输入用户名和提示问题的回答 
    (6)传真机号、传呼机号、手机号码   
    (7)性别   
    (8)出生年月   
    (9)最高学历、婚姻状况   
    (10)你的职业   
    (11)公司名、公司规模、公司主页   
    (12)希望加入的群组   
    (13)所在省份   
    由原因和结果列表得到的因果图:

     
    由因果图得到的判定表和测试用例:
               用例序号 1 2  3 4 5 
     
     
     

     
     
     
     

       1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13 1 1 1 1 1 
      1 1 1 1 1 
      1 1 1 1 1 
      1 1 1 1 1 
      1 1 1 1 1 
      1 1 1 0 1 
      1 1 0 0 1 
      1 1 1 1 1 
      1 1 0 0 1 
      1 1 1 1 0 
      1 1 1 0 0 
      1 0 1 0 1 
      1 0 1 0 1 

    作 14
    15 1 1 1 1 1 
      0 0 0 0 0 

     
     
    果 16
    17
    18
    19
    20 1 1 1 1 1 
      1 1 1 1 1 
      1 1 1 1 1 
      1 1 1 1 1 
      1  1  1  1  1  
    测试结果 N(3)(10)  N(3) N(3) N(3) N(3) 
     
    2.忘记密码页和登录页
     忘记密码页和其他部分的消息传递只有:新密码传给登录页面;新密码传给密码更改页。测试正确。
     登录页和其他部分的消息传递只有:用户名传给信箱的收件箱、发件箱、草稿箱、垃圾。测试正确。
    3.信箱首页
    原因和结果列表:
    原因 操作 结果 
    (1)输入文件夹名 (2)创建 (19)菜单中相应增加一个文件夹项 
     (3)删除 (5)产生一个浏览该文件夹信件的页面 
     (4)改名 (6)信箱首页增加一行,显示该文件夹内容 
      (7)过滤器的规则设置中转移到的选项相应增加一个 
      (8)收件箱、垃圾箱、草稿箱、发件箱中移动到的选项相应增加一个。 
      (9)菜单中相应减少一个文件夹项 
      (10)去掉浏览该文件夹信件的页面 
      (11)信箱首页减少显示该文件夹内容的一行, 
      (12)过滤器的规则设置中转移到的选项相应减少一个 
      (13)收件箱、垃圾箱、草稿箱、发件箱中移动到的选项相应减少一个。 
      (14)菜单中相应更改一个文件夹项 
      (15)更改浏览该文件夹信件的页面 
      (16)信箱首页更改一行,显示该文件夹内容 
      (17)过滤器的规则设置中转移到的选项相应更改一个 
      (18)收件箱、垃圾箱、草稿箱、发件箱中移动到的选项相应更改一个。 
      由原因和结果列表得到的因果图:

    由因果图得到的判定表和测试用例:
    注:表中-1表示创建已存在的文件夹
    用例序号 1 2 3 4 5 6 7 
    原因 (1) 1 1 1 1 0 0 0 

     
    作 (2)
    (3)
    (4) 1 0 0 -1 1 0 0 
      0 1 0 0 0 1 0 
      0 0 1 0 0 0 1 
     
     
     

     
     
     
     
     
     
    果 (19)
    (5)
    (6)
    (7)
    (8)
    (9)
    (10)
    (11)
    (12)
    (13)
    (14)
    (15)
    (16)
    (17)
    (18) 1 0 0 0 0 0 0 
      1 0 0 0 0 0 0 
      1 0 0 0 0 0 0 
      1 0 0 0 0 0 0 
      1 0 0 0 0 0 0 
      0 1 0 0 0 0 0 
      0 1 0 0 0 0 0 
      0 1 0 0 0 0 0 
      0 1 0 0 0 0 0 
      0 1 0 0 0 0 0 
      0 0 1 0 0 0 0 
      0 0 1 0 0 0 0 
      0 0 1 0 0 0 0 
      0 0 1 0 0 0 0 
      0 0 1 0 0 0 0 
    测试结果 N(7) N(12) N(17) Y Y Y Y 
     
    4.发件箱和其他页的消息传递:
    原因和结果列表:
    原因 操作 结果 
    (1)收件人 (10)地址薄 (16)收件人收到邮件 
    (2)主题 (11)寄出 (17)收件人按设定时间收到邮件 
    (3)抄送 (12)存原稿 (18)从地址薄中取得地址 
    (4)暗送 (13)附件 (19)存入发件箱 
    (5)附件 (14)取消 (20)存入草稿箱 
    (6)保存到发件箱 (15)定时发送 (21)收件箱新邮件数、邮件总数加1 
    (7)签名档使用项    (22)收件人收到暗送邮件 
    (8)信件正文    (23)收件人收到抄送邮件 
    (9)定时时间    (24)随信邮寄附件 
          (25)发件箱新邮件数、邮件总数加1 
          (26)草稿箱新邮件数、邮件总数加1 
          (28)信件阅读页面显示发件人,主题,内容 
          (29)信件阅览中显示签名信息 
      由原因结果列表得到的因果图:

    由因果图得到的判定表和测试用例:
    用例序号 1 2 3 4 5 6 7 8 9 
     

     
     
     
    因 (1)
    (2)
    (3)
    (4)
    (5)
    (6)
    (7)
    (8)
    (9) 1 1 1 1 1 1 1 1 1 
      1    1 1 1 1 1 1 1 
      0                   1    
      0                      1 
                        1       
               1                
                     1          
      1    1 1 1 1 1 1 1 
            1                   

     
     
    作 (10)
    (11)
    (12)
    (15)    1                      
      1    1 1    1 1 1 1 
                  1             
                                 
     
     
     

     
     
     
     
     
    果 (16)
    (17)
    (18)
    (19)
    (20)
    (21)
    (22)
    (23)
    (24)
    (25)
    (26)
    (27)
    (28)
    (29) 1    1 1    1 1 1 1 
            1                   
         1                      
               1                
                  1             
      1    1 1    1 1 1 1 
                           1    
                              1 
                        1       
               1                
                  1             
                                 
      1    1 1    1 1 1 1 
                     1          
    测试结果 N(21, N Y YY Y Y Y N(25 N(26 
     
    5.收件箱与其他部分的消息传递
    原因与结果列表:
    原因 操作 结果 
    (1)选定信件 (3)删除 (7)选定信件被删除 
    (2)转移到选项选择 (4)移动到 (8)选定信件移到目标文件夹 
       (5)返回 (9)信件总数减一 
       (6)POP邮件 (10)收取POP服务器上的邮件 
          (11)文件夹信件数加一 
      由原因与结果列表得出的因果图:

    由因果图得出的判定表
    用例序号 1 2 3 4 5 

    因 (1)
    (2) 1             
         1 1       

     
    作 (3)
    (4)
    (5) 1       1    
         1       1 
            1       

     
     
    果 (7)
    (8)
    (9)
    (10)
    (11) 1             
         1          
      1             
            1       
         1          
    测试结果 Y Y Y Y Y 
                    
     
    6.草稿箱和其他部分的消息传递
    原因与结果列表:
    原因 操作 结果 
    (1)选定信件 (3)删除 (7)选定信件被删除 
    (2)转移到选项选择 (4)移动到 (8)选定信件移到目标文件夹 
       (5)返回 (9)信件总数减一 
       (6)POP邮件 (11)文件夹信件数加一 
      由原因与结果列表得出的因果图:

    由因果图得出的判定表:
    用例序号 1 2 3 4 

    因 (1)
    (2) 1          
         1       

    作 (3)
    (4) 1    1    
         1    1 

     
     
    果 (7)
    (8)
    (9)
    (10) 1          
         1       
      1          
         1       
    测试结果 Y Y Y Y 
                  
     
    7.垃圾箱和其他部分的消息传递
    原因与结果列表:
    原因 操作 结果 
    (1)选定信件 (3)删除 (7)选定信件被删除 
    (2)转移到选项选择 (4)移动到 (8)选定信件移到目标文件夹 
       (5)返回 (9)信件总数减一 
       (6)POP邮件 (11)文件夹信件数加一 
      由原因与结果列表得出的因果图:

    由因果图得出的判定表:
    用例序号 1 2 3 4 

    因 (1)
    (2) 1          
         1       

    作 (3)
    (4) 1    1    
         1    1 

     
     
    果 (7)
    (8)
    (9)
    (10) 1          
         1       
      1          
         1       
    测试结果 Y Y Y Y 
                  
     
    8.发件箱和其他部分的消息传递
    原因与结果列表:
    原因 操作 结果 
    (1)选定信件 (3)删除 (7)选定信件被删除 
    (2)转移到选项选择 (4)移动到 (8)选定信件移到目标文件夹 
       (5)返回 (9)信件总数减一 
       (6)POP邮件 (11)文件夹信件数加一 
      由原因与结果列表得出的因果图:
     
    由因果图得出的判定表:
    用例序号 1 2 3 4 

    因 (1)
    (2) 1          
         1       

    作 (3)
    (4) 1    1    
         1    1 

     
     
    果 (7)
    (8)
    (9)
    (10) 1          
         1       
      1          
         1       
    测试结果 Y Y Y Y 
                  

  • 因果图法--实例一 

    2007-01-30 14:32:19

    实例[111]一:
    “第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。”

    首先根据这一规格说明画出因果图。在分析以上的要求以后,可以明确地把原因和结果分开。以下分别给出(左端数字是编号):
    原因:
      1——第一列字符是A;
     2——第一列字符是B;
     3——第二列字符是一数字。
    结果:
      21——修改文件;
      22——给出信息L;
      23——给出信息M。
    我们把原因和结果用上述的逻辑符号联结起来,画成因果图(如下)。图中左列表示原因,右列为结果,编号为11的中间结点是导出结果的进一步原因。
         因果图实例图
    考虑到原因1和原因2不可能同时为1(即第一列字符不可能是A和B),我们在因果图上可对其施加E约束,这样便得到了具有约束的因果图。
          具有E约束的因果图
    根据因果图建立如下的判定表:
     1 2 3 4 5 6 7 8 
    条件(原因) (1) 1 1 1 1 0 0 0 0 
     (2) 1 1 0 0 1 1 0 0 
     (3) 1 0 1 0 1 0 1 0 
     (11)  1 1 1 1 0 0 
    动作(结果) (22)  0 0 0 0 1 1 
     (21)  1 0 1 0 0 0 
     (23)  0 1 0 1 0 1 
    测试用例  A3
    A8 AM
    A? B5
    B4 BN
    B! C2
    X6 DY
    P; 

     

     

     

     

     

     

     

     

     

     

     

  • 等价类划分例二:电子邮件系统

    2007-01-30 14:30:53


     说明:本系统的单元测试主要以单个单元内部的消息传递和功能实现为主。测试方法为等价类划分法。
     1. 新用户注册页面
    数据项取值:
    USER NAME:长度为 3-19 ;以字母开头;非空。(没用)
    姓名:非空。
    密码:非空。
    确认密码:值和密码值相同。
    出生年份:年——四位数字;月——1-12;日——1-31。
    其余项:不要求。
    等价类的划分 :等价类表。
    数据项 有效等价类 无效等价类 
    USER NAME (1)长 3-19 ;(2)以字母开头; (1)长度<3;(2)非字母开头(3)长度>19 
    姓名 (3)非空 (4)为空 
    密码 (4)非空 (5)为空 
    确认密码 (5)值和密码值相同 (6)值和密码值不同 
    出生年份 (6)月—1-12;(7)日—1-31(没有列出年份) (7)月日中有字母(分别列出;月日中有非数字符号)(8)月数字为负(零)(9)月数字大于12(10)年数中有字母(有非数字符号,年数在合理范围)(11)日数字为负(零)(12)日数字大于31(判断大月小月) 
    其余项 (8)都填(9)都不填  

     

     


    测试用例及结果  结果陈述
       USER NAME 姓名 密码 确认密码 出生年份 其余项 所属等价类 结果 
    有效等价类 aaaaaa aaaaaa aaaaaa aaaaaa 1977.8.22 空 (1)—(7),(9) Y 
     Tttttt Tttttt tttttt Tttttt 1977.8.22 非空 (1)—(8) Y 
    无效等价类 t tttt tttt tttt 1972.8.22  (1) Y 
     qqqqqqqqqqdfasdfasdfasdfadfasdfad tttt tttt Tttt 1977.8.22  (3) N 
     111111 tttt tttt tttt 1977.8.22  (2) 提示不符 
     zzzz 空 zzzz zzzz 1977.8.23  (4) Y 
     zzzz zzzz 空 zzzz 1977.8.22  (5) Y 
     zzzz zzzz zzzz tttt 1977.8.22  (6) Y 
     ssss ssss ssss ssss 19a7.8.22  (10) Y 
     ssss ssss ssss ssss 1977.8a.22  (7) N 
     ssss ssss ssss ssss 1977.8.2a  (7) N 
     ssss ssss ssss ssss 1977.-1.22  (8) Y 
     ssss ssss ssss ssss 1977.81.22  (9) Y 
     ssss ssss ssss ssss 1977.8.-2 tt (11) Y 
     ssss ssss ssss ssss 1977.8.55  (12) Y 
     
    2.忘记密码部分
    数据项取值
    登录用户名:已存在的用户名
    用户的回答:和注册值相同
    密码:>=5
    确认密码:值和密码值相同
    等价类的划分
    数据项 有效等价类 无效等价类 
    登录用户名 (1)已存在 (1)不存在(是否正确) 
    用户的回答 (2)和注册值相同 (2)和注册值不同 
    密码 (3)>=5 (3)<5 
    密码确认 (4)值和密码值相同 (4)和密码值不同 

    测试用例及结果结果陈述
     登录用户名 用户的回答 密码 密码确认 所属等价类 结果 
    有效等价类 ttttt  aaaaa aaaaa (1)-(4) Y 
    无效等价类 Tttttta    (1) Y 
     ttttt ccc   (2) Y 
     ttttt  aa aa (3) Y 
     ttttt  aaaaa aaaaa (4) Y 
     
    3.登陆页面
    数据项取值
    用户名:已存在值
    密码:和注册值相同
    等价类的划分
    数据项 有效等价类 无效等价类 
    用户名 (1)已存在 (1)不存在 
    密码 (2)和注册值相同 (2)和注册值不同 

    测试用例及结果结果陈述
     用户名 密码 所属等价类 结果 
    有效等价类 ttttt aaaaa (1)-(2) Y 
    无效等价类 Tttttta aaaaa (1) Y 
     ttttt tttt (2) Y 
     
    4.信箱首页
    数据项取值
    待创建的文件夹名:不存在的文件夹名
    待删除的文件夹名:已存在的文件夹名
    等价类的划分
    数据项 有效等价类 无效等价类 
    待创建的文件夹名 (1) 不存在的文件夹名 (1)已存在(2)空值 
    待删除的文件夹名 (2)已存在的文件夹名 (3)不存在(4)空值(非文件夹) 

    测试用例及结果
     输入 操作 所属等价类 结果 
    有效等价类 Aa 创建 (1) Y 
     aa 删除 (2) Y 
    无效等价类 Aaa(已存在) 创建 (1) N 
      创建 (2) Y 
     ttttt 删除 (3) N 
      删除 (4) Y 
     
    5.发邮件
    数据项取值
    收件人:
    定时发送时间:年——四位数字;月——1-12;日——1-31;
    其余项:不要求
    操作:寄出,存原稿,存地址薄,加附件,取消
    等价类的划分
    数据项 有效等价类 无效等价类 
    收件人 (1) 非空寄出(3)非空存原稿(4)非空加入地址薄(5)非空加附件(6)取消 为空寄出(9)为空存原稿(10)为空加入地址薄(11)为空加附件
    (输入字符不合法) 
    定时发送时间 (2)年——四位数字;月——1-12;日——1-31 (3)月日中有字母(4)月数字为负(5)月数字大于12(6)年数中有字母(7)日数字为负(8)日数字大于31 
    其余项 (7)都填(8)都不填  
    (对于有效等价类,所有操作都要列出。)
    测试用例及结果结果陈述
     收件人 定时发送时间 其余项 操作 所属等价类 结果 
    有效等价类 aaaaa  都填 寄出 (1) Y 
     aaaaa   取消 (6)  
     aaaaa   存原稿 (3) Y 
     aaaaa   地址薄 (4) Y 
     aaaaa   加附件 (5) Y 
     aaaaa 2000/7/25 都不填 定时发送 (2) N 
    无效等价类    寄出 (1) Y 
        存原稿 (9) Y 
        地址薄 (10) Y 
        加附件 (11) Y 
     aaaaa A000/7/25  定时发送 (6) N 
     aaaaa 2000/-7/25  定时发送 (4) N 
     aaaaa 2000/7a/25  定时发送 (3) Y 
     aaaaa 2000/7/-9  定时发送 (7)  
     aaaaa 2000/7/88  定时发送 (8)  
    6.收件箱
    数据项取值
    “移动到”的位置:草稿箱,发件箱,垃圾箱
      操作:删除,移动到,返回,选邮件,选中所有邮件
    等价类的划分
    数据项或操作 有效等价类 无效等价类 
    删除 (1)选取邮件为非空 (1)选取邮件为空 
    移动到 (2)选取邮件为非空,移动到草稿箱(3)选取邮件为非空,移动到发件箱(4)选取邮件为非空,移动到垃圾箱 (2)选取邮件为空 
    返回 (5)直接执行  
    选中所有邮件 (6)直接执行  

    测试用例及结果结果陈述
     选邮件 移动到的位置 操作 所属等价类 结果 
    有效等价类 选两文件  删除 (1) Y 
     选两文件 草稿箱 移动到 (2) Y 
     选两文件 发件箱 移动到 (3) Y 
     选两文件 垃圾箱 移动到 (4) Y 
       返回 (5) Y 
       选中所有邮件 (6) Y 
    无效等价类   移动到 (2) Y 
       删除 (1) Y 
      7.草稿箱
    数据项取值
    “移动到”的位置:收件箱,发件箱,垃圾箱
      操作:删除,移动到,返回,选邮件,选中所有邮件
    等价类的划分
    数据项或操作 有效等价类 无效等价类 
    删除 (1)选取邮件为非空 (1)选取邮件为空 
    移动到 (2)选取邮件为非空,移动到收件箱(3)选取邮件为非空,移动到发件箱(4)选取邮件为非空,移动到垃圾箱 (2)选取邮件为空 
    返回 (5)直接执行  
    选中所有邮件 (6)直接执行  

    测试用例及结果结果陈述
     选邮件 移动到的位置 操作 所属等价类 结果 
    有效等价类 选两文件  删除 (1) Y 
     选两文件 收件箱 移动到 (2) Y 
     选两文件 发件箱 移动到 (3) Y 
     选两文件 垃圾箱 移动到 (4) Y 
       返回 (5) Y 
       选中所有邮件 (6) Y 
    无效等价类   移动到 (2) Y 
       删除 (1) Y 
      8.发件箱
    数据项取值
    “移动到”的位置:草稿箱,收件箱,垃圾箱
      操作:删除,移动到,返回,选邮件,选中所有邮件
    等价类的划分
    数据项或操作 有效等价类 无效等价类 
    删除 (1)选取邮件为非空 (1)选取邮件为空 
    移动到 (2)选取邮件为非空,移动到草稿箱(3)选取邮件为非空,移动到收件箱(4)选取邮件为非空,移动到垃圾箱 (2)选取邮件为空 
    返回 (5)直接执行  
    选中所有邮件 (6)直接执行  

    测试用例及结果结果陈述
     选邮件 移动到的位置 操作 所属等价类 结果 
    有效等价类 选两文件  删除 (1) Y 
     选两文件 草稿箱 移动到 (2) Y 
     选两文件 收件箱 移动到 (3) Y 
     选两文件 垃圾箱 移动到 (4) Y 
       返回 (5) Y 
       选中所有邮件 (6) Y 
    无效等价类   移动到 (2) Y 
       删除 (1) Y 
      9.垃圾箱
    数据项取值
    “移动到”的位置:草稿箱,收件箱,发件箱
      操作:删除,移动到,返回,选邮件,选中所有邮件
    等价类的划分
    数据项或操作 有效等价类 无效等价类 
    删除 (1)选取邮件为非空 (1)选取邮件为空 
    移动到 (2)选取邮件为非空,移动到草稿箱(3)选取邮件为非空,移动到发件箱(4)选取邮件为非空,移动到收件箱 (2)选取邮件为空 
    返回 (5)直接执行  
    选中所有邮件 (6)直接执行  

     测试用例及结果
     选邮件 移动到的位置 操作 所属等价类 结果 
    有效等价类 选两文件  删除 (1) Y 
     选两文件 草稿箱 移动到 (2) Y 
     选两文件 发件箱 移动到 (3) Y 
     选两文件 收件箱 移动到 (4) Y 
       返回 (5) Y 
       选种所有邮件 (6) Y 
    无效等价类   移动到 (2) Y 
       删除 (1) Y 
     10.地址本结果陈述
     11.配置
    本模块包括八部分:个人资料,签名,密码,参数设置,POP3邮件,过滤器,自动转信,定时发信。其中个人资料是用来修改注册信息的,其测试和新用户注册相同。该部分测试结果如下:
    “个人资料”测试用例及结果结果陈述(等价类划分同最前面)
       USER NAME 姓名 密码 确认密码 出生年份 其余项 所属等价类 结果 
    有效等价类 aaaaaa aaaaaa aaaaaa aaaaaa 1977.8.22 空 (1)-(7),(9) Y 
     Tttttt Tttttt tttttt Tttttt 1977.8.22 非空 (1)-(8) Y 
    无效等价类 t tttt tttt tttt 1972.8.22  (1) Y 
     qqqqqqqqqqdfasdfasdfasdfadfasdfad tttt tttt Tttt 1977.8.22  (3) N 
     111111 tttt tttt tttt 1977.8.22  (2) 提示不符 
     zzzz 空 zzzz zzzz 1977.8.23  (4) Y 
     zzzz zzzz 空 zzzz 1977.8.22  (5) Y 
     zzzz zzzz zzzz tttt 1977.8.22  (6) Y 
     ssss ssss ssss ssss 19a7.8.22  (10) Y 
     ssss ssss ssss ssss 1977.8a.22  (7) N 
     ssss ssss ssss ssss 1977.8.2a  (7) N 
     ssss ssss ssss ssss 1977.-1.22  (8) Y 
     ssss ssss ssss ssss 1977.81.22  (9) Y 
     ssss ssss ssss ssss 1977.8.-2 tt (11) Y 
     ssss ssss ssss ssss 1977.8.55  (12) Y 
     其余部分测试如下:
     1) 密码
    数据项取值
    现用密码:和用户名的密码相同
    新密码:>=5
    确认密码:值和密码值相同
    密码提示问题:非空
    用户的回答:非空
    等价类的划分
    数据项 有效等价类 无效等价类 
    现用密码 (1) 和用户名的密码相同 (1) 和用户名的密码不同 
    新密码 (2)>=5 (2)<5 
    密码确认 (3)值和密码值相同 (3)和密码值不同 
    密码提示问题 (4)非空 (4)为空 
    用户的回答 (5)非空 (5)为空 

    测试用例及结果结果陈述
     现用密码 新密码 密码确认 密码提示问题 用户的回答 所属等价类 结果 
    有效等价类 ttttt aaaaa aaaaa HELLO AAAAA (1)-(5) Y 
    无效等价类 Tttttt他 aaaaa aaaaa HELLO AAAAA (1) Y 
     ttttT aaa aaa HELLO AAAAA (2) Y 
     ttttt aaaaa aaaaY HELLO AAAAA (3) Y 
     Ttttt aaaaa aaaaa  AAAAA (4) N 
     ttttt aaaaa aaaaa HELLO  (5) N 
      2) 签名
    数据项取值
    签名提示:非空
    签名内容:非空
      等价类划分
    数据项 有效等价类 无效等价类 
    签名提示 (1)非空 (1)为空 
    签名内容 (2)非空 (2)为空 

      测试用例及结果结果陈述
     签名提示 签名类容 所属等价类 结果 
    有效等价类 tttt I love this game (1),(2) Y 
    无效等价类  I love this game (1) Y 
     tttt  (2) Y 
      3)参数设置
    数据项取值
    信头显示:全部显示,显示基本部分,全部不显示;
    每页最多显示邮件数: 10,20,50,无限
    回复时是否加入原件:加入,不加入;
    回复信头显示:>,Re:,回复:
    是否显示HZ中文过滤器:是,否
    每封邮件的最大字节数::2M,500K,100K,20K
    E—MAIL转传呼规则:每封邮件都显示,符合过滤规则的才显示
    删除邮件后的操作:跳转到文件夹,跳转到下一封信 
    操作:确定,取消
     等价类划分
    数据项或操作 有效等价类 无效等价类 
    信头显示 (1)全部显示,(2)显示基本部分,(3)全部不显示 无 
    每页最多显示邮件数 (4)10,(5)20,(6)50,(7)无限  
    回复时是否加入原件 (8)加入,(9)不加入  
    回复信头显示 (10)>,(11)Re:,(12)回复:  
    是否显示HZ中文过滤器 (13)是,(14)否  
    每封邮件的最大字节数 (15)2M,(16)500K,(17)100K,(18)20K  
    E—MAIL转传呼规则 (19)每封邮件都显示,(20)符合过滤规则的才显示  
    删除邮件后的操作 (21)跳转到文件夹,(22)跳转到下一封信  
    取消 (23)直接执行  
     
     测试用例及结果结果陈述
       信头显示 每页最多显示邮件数 回复时是否加入原件 回复信头显示 是否显示HZ中文过滤器 每封邮件的最大字节数 EMAIL转传呼规则 删除邮件后的操作 操作 所属等价类 结果 
    有效等价类 (1)Y (4)N (8)Y (10)Y (13) (15) (19) (21) 确定 每行各值之集合 记录再等价类后面 
     (2) (5) (9) (11) (14) (16) (20) (22) 确定   
     (3) (6) (8) (12) (14) (17) (20) (22) 确定   
     (3) (7) (9) (11) (14) (18) (20) (22) 确定   
                             取消   
    注:可开两个页面进行测试
      4)POP3邮件
    数据项取值
    用户邮箱:有@的字符串
    用户密码:非空
    响应超时时间:0-999
    端口号:0-9999
    在POP服务器上保留文件:是,否
      操作:确定,取消
     等价类划分
    数据项或操作 有效等价类 无效等价类 
    用户邮箱 (1)有@的字符串 (1)无 @的字符串(2)为空 
    用户密码 (2)非空 (3)为空 
    响应超时时间 (3)0-999 (4)为负(5)有字母(6)大于999 
    端口号 (4)0-9999 (7)为负(8)有字母(9)大于9999 
    在POP服务器上保留文件 (5)是,(6)否  
    取消 (7)直接执行  

    测试用例及结果结果陈述
     用户邮箱 用户密码 响应超时时间 端口号 在POP服务器上保留文件 操作 所属等价类 结果 
    有效等价类 upupup@21cn.com tttttt 90 110 是(选中) 确定 (1)-(5),  
     upupup@21cn.com tttttt 90 110 否(不选中) 确定 (1)-(4),(6)  
          取消   
    无效等价类 upupup21cn.com tttttt 90 110 是(选中) 确定 (1) y 
      tttttt 90 110 是(选中) 确定 (2) y 
     upupup@21cn.com  90 110 是(选中) 确定 (3) y 
     upupup@21cn.com tttttt -90 110 是(选中) 确定 (4) N 
     upupup@21cn.com tttttt a90 110 是(选中) 确定 (5) N 
     upupup@21cn.com tttttt 9000 110 是(选中) 确定 (6) Y 
     upupup@21cn.com tttttt 90 -110 是(选中) 确定 (7) N 
     upupup@21cn.com tttttt 90 A110 是(选中) 确定 (8) N 
     upupup@21cn.com tttttt 90 11000 是(选中) 确定 (9) Y 

      5)过滤器结果陈述
      6)自动转信结果陈述
      7)定时发信结果陈述
      12.查找结果陈述
      13.帮助结果陈述
      14.退出结果陈述
    该部分只有“确定退出”和“重新登陆”两个超级连接。
      15.信件阅览窗口结果陈述
    本部分只有四个有效等价类操作:回复,删除,返回。
    操作
    下一封:不是最后一封信
    上一封:不是第一封信
       等价类划分
    操作 有效等价类 无效等价类 
    下一封 (1)不是最后一封信 (1)是最后一封信(无信件) 
    上一封 (2)不是第一封信 (2)是第一封信 

    测试用例及结果结果陈述
     操作 条件 所属等价类 结果 
    有效等价类 下一封 不是最后一封信 (1) Y 
     上一封 不是第一封信 (2) Y 
    无效等价类 下一封 是最后一封信 (1) Y 
     上一封 是第一封信 (2) Y 
      16.填加附件结果陈述

  • 等价类划分例一

    2007-01-30 14:29:58

    实例一:
    原题:某程序规定:“输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形及等边三角形时,分别做计算…”。试用等价类划分方法为该程序的构成三角形部分进行测试用例设计。

    分析:
    本题的输入条件要求的关键之处有:
    整数;
    三个数;
    非零数;
    正数。
    输出条件的关键之处有:
    (5)应满足两边之和大于第三边边长;
    等腰;
    等边。
    其中,(3)(4)(5)并没有在题目上明显给出,但这些条件是必要的。
    以下分两步进行:
    列出等价类表(见表1)
    列出覆盖上述等价类的测试用例。


    制表:
    等价类表。
    覆盖有效等价类的测试用例。
    覆盖无效等价类的测试用例。

     

     

    表1:例1的等价表

      有效等价类 号码 无效等价类 号码 
     
     


    整数 



    一边为非整数 a为非整数
    b为非整数
    c为非整数 12
    13
    14 
        
    两边为非整数 a,b为非整数
    b,c为非整数
    a,c为非整数 15
    16
    17 
        三边a,b,c均为非整数 18 
      


    三个数 



    只给一边 只给a
    只给b
    只给c 19
    20
    21 
        
    只给两边 只给a,b
    只给b,c
    只给a,c 22
    23
    24 
        给出三个以上 25 
      


    非零数 



    一边为零 A为0
    b为0
    c为0 26
    27
    28 
        
    二边为零 a,b为0
    b,c为0
    a,c为0 29
    30
    31 
        三边a,b,c均为0 32 
      


    正数 


    4 一边<0 a<0
    b<0
    c<0 33
    34
    35 
        两边<0 a<0且b<0
    a<0且c<0
    b<0且c<0 36
    37
    38 
        三边均<0:a<0且b<0且c<0 39 
     
    构成一般三角形 a+b>c 5 a+b<c
    a+b=c 40
    41 
      b+c>a 6 b+c<a
    b+c=a 42
    43 
      a+c>b 7 a+c<b
    a+c=b 44
    45 
     
    构成等腰三角形 a=b 两边之
    b=c 和大于
    a=c 第三边 8
    9
    10   
     构成等边三角形 a=b=c 11   


     
     
     
     表2:覆盖有效等价类的测试用例
     
    a b c 覆盖等价类号码 
    3 4 5 1——7 
    4 4 5 1——7,8 
    4 5 5 1——7,9 
    5 4 5 1——7,10 
    4 4 4 1——7,11 

     


    表3:覆盖无效等价类的测试用例

    a b c  覆盖等价类号码 a b c 覆盖等价类号码 
    2.5
    3
    3 4
    4.5
    4 5
    5
    5.5  12
    13
    14 0
    3
    0
    0 0
    0
    4
    0 5
    0
    0
    0 29
    30
    31
    32 
    3.5
    3
    3.5
    3.5 4.5
    4.5
    4
    4.5 5
    5.5
    5.5
    5.5  15
    16
    17
    18     
         -3
    3
    3 4
    -4
    4 5
    5
    -5 33
    34
    35 

    5  19
    20
    21 -3
    -3
    3
    -3 -4
    4
    -4
    -4 5
    -5
    -5
    -5 36
    37
    38
    39 
    3

    3
    3 4
    4


    5
    5


    6 22
    23
    24
    25     
         3
    3
    3
    3
    1
    3 1
    2
    1
    2
    4
    4 5
    5
    1
    1
    2
    1 40
    41
    42
    43
    44
    45 
    0
    3
    3 4
    0
    4 5
    5
    0  26
    27
    28     
             
             

  • 边界值法举例

    2007-01-30 14:28:31


    找零钱最佳组合
    假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 )
    一、 分 析 输 入 的 情 形 。
    R > 100
    0 < R < = 100
    R <= 0
    P > 100
    R<= P <= 100
    P < R
    二、 分 析 输 出 情 形 。
    N50 = 1
    N50 = 0
    4 > N10 >= 1
    N10 = 0
    N5 = 1
    N5 = 0
    4 > N1 >= 1
    N1 = 0
    三、 分 析 规 格 中 每 一 决 策 点 之 情 形 , 以 RR1, RR2, RR3 表 示 计 算 要 找 50, 10, 5 元 货 币 数 时 之 剩 余 金 额 。 R > 100R <= 0P > 100P < RRR1 >= 50RR2 >= 10RR3 >= 5
    四、 由 上 述 之 输 入 / 输 出 条 件 组 合 出 可 能 的 情 形 。
    R > 100
    R <= 0
    0 < R <= 100, P > 1000 < R <= 100, P < R0 < R <= 100, R <= P <= 100, RR = 500 < R <= 100, R <= P <= 100, RR = 490 < R <= 100, R <= P <= 100, RR = 100 < R <= 100, R <= P <= 100, RR = 90 < R <= 100, R <= P <= 100, RR = 50 < R <= 100, R <= P <= 100, RR = 40 < R <= 100, R <= P <= 100, RR = 10 < R <= 100, R <= P <= 100, RR = 0
    五、 为 满 足 以 上 之 各 种 情 形 , 测 试 资 料 设 计 如 下 :
    1. 货品价格 = 101
    2. 货品价格 = 0
    3.货品价格 = -1
    4. 货品价格 = 100, 付款金额 = 101
    5. 货品价格 = 100, 付款金额 = 99
    6. 货品价格 = 50, 付款金额 = 100
    7. 货品价格 = 51, 付款金额 = 100
    8. 货品价格 = 90, 付款金额 = 100
    9. 货品价格 = 91, 付款金额 = 100
    10. 货品价格 = 95, 付款金额 = 100
    11. 货品价格 = 96, 付款金额 = 100
    12. 货品价格 = 99, 付款金额 = 100
    13. 货品价格 = 100, 付款金额 = 100
  • 边界值分析法实例

    2007-01-30 14:27:26

    实例:
    “某一为学生考试试卷评分和成绩统计的程序,其规格说明指出了对程序的要求:
    程序的输入文件由80个字符的一些记录组成,这些记录分为三组:
    (1)标题:这一组只有一个记录,其内容为输出报告的名字。
    (2)试卷各题标准答案记录:每个记录均在第80个字符处标以数字“2”。该组的第一个记录的第1至第3个字符为题目编号(取值1—999)。第10至59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3,等等记录相应为第51至第100,第101至第150,等等题的答案。
    (3)每个学生的答卷描述:该组中每个记录的第80个字符均为数字“3”。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则其第2,第3,等等记录分别给出他的第51至第100,第101至150,等等题的解答。然后是学生乙的答案记录。
    若学生最多为200人,输入数据的形式如下图所示:
    该程序应给出4个输出报告,即:
    按学生学号排序,每个学生的成绩(答对的百分比)和等级报告。
    按学生得分排序,每个学生的成绩。
    平均分数,最高与最低分之差。
    按题号排序,每题学生答对的百分比。
    以下两个表分别针对输入条件和输出条件,根据其边界值设置了测试用例。(共43个测试用例)
    输入条件 测试用例 
    输入文件 空输入文件 

    标题 无标题记录
    只有1个字符的标题
    具有80个字符的标题 

     

    出题个数 出了1个题
    出了50个题
    出了51个题
    出了100个题
    出了999个题
    没有出题
    题目数是非数值量 

    答案记录 标题记录后没有标准答案记录
    标准答案记录多1个
    标准答案记录少1个 


    学生人数 学生人数为0
    学生人数为1
    学生人数为200
    学生人数为201 

    生答题 某学生只有1个答卷记录,但有2个标准答案记录
    该学生是文件中的第1个学生
    该学生是文件中的最后1个学生 

    学生答题 某学生有2个答卷记录,但仅有1个标准答案记录
    该学生是文件中的第1个学生
    该学生是文件中最后1个学生 

    输出条件 测试用例 

    学生得分 所有学生得分相同
    所有学生得分都不同
    一些学生(不是全部)得分相同(用以检查等级计算)
    1个学生得分0分
    1个学生得分是100分 
    输出报告
    (1)(2) 1个学生编号最小(检查排序)
    1个学生编号最大
    学生数恰好使报告印满1页(检查打印)
    学生人数使报告1页打印不够,尚多1人 
    输出报告
    (3) 平均值最大值(所有学生均得满分)
    平均值为0(所有学生都得0分)
    标准偏差取最大值(1学生得0分,1学生得100分)
    标准偏差为0(所有学生得分相同) 
    输出报告
    (4) 所有学生都答对第1题
    所有学生都答错第1题
    所有学生都答对最后1题
    所有学生都答错最后1题
    报告打印完1页后,恰剩1题未打
    题数恰好使得报告打印在1页上 

  • 测试笔试题

    2007-01-25 17:13:37

    北京普郎笔试题
    判断
    软件测试的目的是尽可能多的找出软件缺陷。             ( )
    只要我们做了充分测试,就能保证软件没有BUG。        ( )
    项目立项前测试人员不需要提交任何工作。               ( )
    负载测试是验证要检验的系统的能力最高能达到什么程度。 ( )
    集成测试计划在需求分析阶段未提交。                   ( )
    填空
    测试的分类,按测试方法:______测试和______测试,所谓的黑盒测试和白盒测试属于______测试。
    测试工具有结构化测试工具______,黑盒测试工具______,代码测试工具______。
    基础理论题
    已建立两张学生基本信息表,表的结构如下:
    Test1
    No Name Sex Age Department Place 
    2002001 张三 男 20 计算机系 北京 
    2002002 李四 女 20 数学系 山东 
    2002003 王五 男 21 计算机系 北京 
    2002004 小红 女 21 数学系 河北 
    2002005 小李 男 20 数学系 辽宁 
    2002006 小王 男 22 计算机系 浙江 
    Test2
    No Grade Courses 
    2002001 67  英语 
    2002002 81  数学  
    2002003 75  操作系统 
    2002004 91  网络 
    2002005 70  数据库 
    2002006 85  C语言 
    用SQL语句找出是“计算机系”,并籍贯是“北京”的学生的所有记录。
    用SQL语句把计算机系的学生德“Department”改为“信息学院”。
    用SQL语句连接查询找出成绩大于等于75分的学生的No,Name,Grade,Courses字段的记录。
    简述软件生命周期有哪些阶段。
    测试技能题
    黑盒测试中设计测试用例一般有哪几种方法。
    BUG管理和版本控制一般用到哪些工具。
    简述性能测试的一般步骤和目的。

     

     

    答案
    判断

    1、(错)
     测试不是为了尽可能找出缺陷,是要在可能的程度上最大限度保证软件的质量。尽早的找出缺陷,并确保修复该缺陷。
    2、(错)
     无法保证软件没有BUG。
    3、(错)

    4、(错)

    5、(错)
    二、填空
    1、功能 性能 功能
    2、主流软件测试工具介绍
      测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具,这些产品主要是MercuryInteractive(MI)、Segue、IBM Rational、 Compuware和Empirix等公司的产品,而MI公司的产品占了主流。
    白盒测试工具
      白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。
      静态测试工具:直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具的代表有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。
      动态测试工具:动态测试工具与静态测试工具不同,动态测试工具的一般采用"插桩"的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。动态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。
    黑盒测试工具
      黑盒测试工具适用于黑盒测试的场合,黑盒测试工具包括功能测试工具和性能测试工具。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。黑盒测试工具的代表有:Rational公司的TeamTest、Robot;Compuware公司的QACenter。
    性能测试工具
      专用于性能测试的工具包括有:Radview公司的WebLoad;Microsoft公司的  WebStress等工具;针对数据库测试的TestBytes;对应用性能进行优化的EcoScope等工具。   MercuryInteractive的LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。
    测试管理工具
      测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。测试管理工具的代表有:Rational公司的Test Manager;Compureware公司的TrackRecord;Mercury Interactive公司的TestDirector等软件。

    软件生命周期主要分为:需求分析、系统设计、编码、测试、验收、运行、维护升级。

    测试技能题

    黑盒测试的测试用例设计方法有5种: 等价类划分 边界值分析 错误推测法 因果图 功能图

    wincvs和mantis

     

     

     

    软通动力笔试题 
    基本概念
    什么是白箱和黑箱测试?什么是回归测试?
    单元测试、集成测试和系统测试侧重点有什么不同?
    设计测试用例的依据和方法?
    测试工程师应具备那些素质和技能?
    集成测试通常又哪些策略?
    你使用过哪种测试工具(功能、性能)?
    缺陷报告包含哪些主要部分?
    一个基于Web信息管理系统进行性能测试主要哪些因素?
    软件本地化测试相比功能测试要注意什么?

    测试过程
    10、软件测试应该在项目哪个阶段开始?为什么?
    11、需求测试过程中注意哪些?
    12、简单描述一个缺陷的生命周期。

    分析能力
     13、需要注意哪些事项?
     
     14、有一个实例化的List类,用来表示一个包含多个对象的列表,List有一个成员函数Next(),函数的输入范围(前置条件)并设计测试用例。
     15、SQL查询工资大于3000员工所在部门名称
     Salary
    ID NAME DeptID Salary 
        
        
     Department
    DeptID Department 
      
      
     
     
     软件测试是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。
     软件测试分类:按开发阶段分类:单元测试、集成测试、确认测试、系统测试和验证测试。
                   按测试技术分类:白盒测试、黑盒测试和灰盒测试。
                   按测试方法分类:静态测试和动态测试。
     测试工程师应具备那些素质和技能?
     答:表达能力、交流能力、协调能力、管理能力、质量意识、过程方法、软件工程、测试规划能力、测试执行能力、测试分析能力、报告和改进能力。
        技能:测试基本概念及方法、测试工具及环境、专业测试标准、工作成绩评估。
     黑盒测试的测试用例有哪些设计方法?
     答:等价类划分、边界值分析、因果图法、判定表法、正交试验法、功能图法。

  • 安装测试用例

    2007-01-18 12:16:09

    • 操作系统
      测试类型
      测试内容
      Windows 95
      Pass   Fail   
      Windows 98
      Pass   Fail  
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      启动安装程序(Launch setup
      如果安装了CD-ROM, 插入安装盘后自动启动安装程序
      在CD盘中突出显示setup.exe文件,双击文件启动安装程序
       
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      闪屏(Splash screen
      “载入安装程序”对话框出现后,检查:
      1.   内容是否正确;
      2.   拼写是否正确;
      3.   在安装过程中,随着载入安装程序界面的出现,闪屏也随即出现。
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      弹出框(Pop up box
      弹出框出现时,检查:
      1.   内容是否正确;
      2.   拼写是否正确。
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      中途退出(XExit or Cancel
      1.   点击右上角的X按钮关闭时是否出现询问退出的对话框,如“您确定要退出吗?”;
      2.   选择取消按钮是否出现询问退出的对话框,如“您确定要退出吗?”    
      ·  “是”后出现提示应用系统没有被正确地安装,用户必须重新安装的信息;
      “是”后出现提示应用系统没有被正确地安装,用户必须重新安装的信息;
      ·  “是”后出现提示应用系统没有被正确地安装,用户必须重新安装的信息;
      ·         单击“否”后关闭对话框且返回到先前的界面;
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      安装导航(Navigation
      1.   安装导航引导用户到正确的屏幕,例如下一步(Next),返回(Back),取消(Cancel)按钮
      2.   焦点停留的按钮能够引导到下一个合理的操作,例如stand alone安装类型将引导到stand alone安装中的下一个屏幕;
      3.   使用键盘导航。
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      目的地文件(File destination
      1.   程序可以选择“C:”以外的目录
      2.   通过单击“…”按钮可以选择其他的安装路径。
      3.   可以通过以下方法选择路径:
              · 焦点在“确定”按钮上,按“Enter”键
              · 焦点在“确定”按钮上,点击“确定”按钮
              · 从浏览文件夹中双击选择路径
              · 直接输入路径
      4.   当文本框中输入的路径不存在时,系统可以创建。
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      安装过程(Start Installation
      1.          无异常出现
      2.          所有的文字可以正常显示(无截断)
      3.          界面上的版本信息,公司信息(图标,时间,地址等)正确
      4          许可证协议信息完整、正确
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      安装完毕(Installation complete
      1.   有弹出窗口显示安装完毕
      2.   所有的文件都安装在选择的目录下
      3.   要求的.dll全部安装;
      4.   帮助文件安装在指定的文件夹下;
      5.   检查.exe和.dll文件的版本号是否正确;
      6.   检查Ini文件是否记载了正确的路径和IP地址信息;
      7.   检查需注册信息在注册表中是否存在且在正确的地方;
      8.   快捷方式创建在选择的文件夹/启动菜单中,例如:C:\WINNT\Profiles\xs564gb\Start Menu\Programs\Executive Workbench
      9. 日志文件(Log)中的信息完整、正确
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      启动应用程序(Launch application
      可以通过以下方式启动应用程序:
      1.   双击目录中的应用程序图标
      2.   从开始菜单中选择
      3.   焦点放在exe文件上,敲“Enter”键
      4.   双击exe文件
      5.   运行命令下启动
      6.   双击桌面上的快捷方式
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      重启后启动应用程序(Restart to use application
      如果有对话框提示需重启计算机才能完成安装,重启机器再启动应用程序是否可以正常工作。
      Windows 95
      Pass   Fail         
      Windows 98
      Pass   Fail
      Windows NT
      Pass   Fail       
      Windows 2000 
      Pass   Fail
      卸载(Uninstall)
      通过Uninstall程序或控制面板卸载应用程序
      卸载后,检查安装的文件/文件夹/注册表信息是否被删除
  • 如何写测试用例

    2007-01-18 11:58:14

    功能性测试用例

    1. 测试的来源,即测试的需求

      测试用例的主要来源有:
    1) 需求说明”及相关文档
    2)相关的设计说明(概要设计,详细设计等)
    3)与开发组交流对需求理解的 记录(可以是开发人员的一个解释)
     4)已经基本成型的UI(可以有针对性地补充一些用例)
           简而言之,所有你能得到的项目文档,都尽量拿到。 从所得到的资料中,分解出若干小的“功能点”,理解“功能点”,编写相应的测试用例。

    2. 用例的组织方式

    不同的公司有不同的做法,原则上,只要方便管理和跟踪,怎么组织都可以的。
    用例可以按大的功能块组织,如查询功能模块的用例,可以组织在一起,打印模块的测试用例,可以另外组织在一起。
         在没有专门的测试用例管理工具的情况下,用例执行后会产生2种状态:“通过”、“失败”——这样加上“未 执行”的用例的状态,共3种状态。
        即从“未执行”用例中执行一个用例后,该用例状态应为“失败”或“通 过”。将同一状态的用例组织在一起。
      至于用例文件格式,可以是.DOC或.XLS(如果有专门的测试用例管理工具另当别论)。

    3. 用例与其他材料的关联方式,即如何解决用例跟踪的问题

    测试用例面临的比较大的风险有:需求的变更、设计的修改、需求的错误和遗漏等等。
    由于用例的主要来源是需求和设计的说明,所以对用例的跟踪其实就是对需求和设计的跟踪,需求和设计的 变更势必引起测试用例的变更。
      如前所说,将分解的功能点编号,与相应的用例联系起来。例如,你可以列一个表格,列出各个(编号的)功 能点和测试用例间的关联关系。
     这样,当需求和设计发生变化时,你只需要跟踪“功能点”是否变化,是否增加了新的功能点。
      4. 一个好的用例的表述要点,即用例中应当包含的信息

    一个优秀的测试用例,应该包含以下信息:
    1) 软件或项目的名称
    2) 软件或项目的版本(内部版本号)
     3) 功能模块名
     4) 测试用例的简单描述,即该用例执行的目的或方法
     5) 测试用例的参考信息(便于跟踪和参考)
     6) 本测试用例与其他测试用例间的依赖关系
     7) 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限
    8) 用例的编号(ID),如可以是 软件名称简写-功能块简写-NO.。
    9) 步骤号、操作步骤描述、测试数据描述
    10)预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)
    11)开发人员(必须有)和测试人员(可有可无)
    12)测试执行日期

    5. 给出一个测试用例的例子该范例已经包含一个测试用例的模板。

     备注:本用例未考虑“企业代码”的输入情况;测试用例并未涵盖所有的非法输入,如非法输入中可能会有 “user=*,pw=*”的组合,对回车的默认操作,空格输入,对输入上溢的处理的处理(可能会跳过身份验证) 等等。
     如果你有兴趣,至少可以再补充5-10条左右的输入组合(当然,如果步骤超过15步,用例的易操作 性就降低,你可以再创建一个测试用例如TC-TEP_Login_2)


  • C/S和B/S的比较和区别

    2007-01-18 11:31:30

    一、C/S结构与B/S结构的特点分析

        随着计算机技术的不断发展与应用,计算模式从集中式转向了分布式,尤为典型的是C/S结构(Client/Server的简称,客户机/服务器模式)。两层结构C/S模式,在上个世纪八十年代及九十年代初得到了大量应用,最直接的原因是可视化开发工具的推广。之后,它开始向三层结构发展。近年来,随着网络技术不断发展,尤其是基于Web的信息发布和检索技术、Java计算技术以及网络分布式对象技术的飞速发展,导致了很多应用系统的体系结构从C/S结构向更加灵活的多级分布结构演变,使得软件系统的网络体系结构跨入一个新阶段,即B/S体系结构(Browser/Server的简称,浏览器/服务器模式)。基于Web的B/S方式其实也是一种客户机/服务器方式,只不过它的客户端是浏览器。为了区别于传统的C/S模式,才特意将其称为B/S模式。认识到这些结构的特征,对于系统的选型而言是很关键的。

    1、系统的性能

        在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。

        不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。

    2、系统的开发

        C/S结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。

        但是,与B/S结构相比,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的。

    3、系统的升级维护

        C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明显——所有的升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。

        在系统安全维护上,B/S则略显不足,B/S结构尤其得考虑数据的安全性和服务器的安全性,毕竟现在的网络安全系数并不高。以OA软件为例,B/S结构要实现办公协作过程中复杂的工作流控制与安全性控制,还有很多技术上的难点。因此,当前虽然出现了B/S结构的OA系统产品,但尚未大范围推广。
  • LR8.1(中文版)破解方法大公布!(破解成功)

    2007-01-17 10:30:54



    LR8.1版本已经将7.8和8.0中通用的license封了,因此目前无法使用LR8.1版本,包括该版本的中文补丁。

    破解思路:由于软件的加密程序和运行的主程序是分开的,因此可以使用7.8的加密程序覆盖8.1中的加密程序,这样老的7.8和8.0中通用的license就可以使用了。

    操作步骤:
    1、用官方版的LR8.1安装,也可以安装中文补丁。安装包可以到51testing的ftp上下载
    地址是:
    ftp://edu.51testing.net
    用户名:gongju
    密码:51testing

    2、
    将LR7.8或者LR8.0(安装包或者安装后目录中的都可以)中的
    lm70.dll
    mlr5lprg.dll
    这两个文件复制并粘贴到LR8.1安装目录下的bin文件夹下,一般是C:\E:\Program Files\Mercury\LoadRunner\bin;

    lm70.dll 文件的描述是 with conbined license support,是一个license的支持文件;
    mlr5lprg.dll应该是一个保存license的文件。
    大家可以试一试,其实不要替换mlr5lprg.dll也是可以的,只替换lm70.dll文件,老的license一样能注册通过,但是软件的试用的license还在。

    3、运行LR8.1,打开license管理器,点击添加new license,将老license复制进去,OK,验证通过!
    7.8、8.0通用的license有:
    golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI
    web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB

    此方法适用于英文原版8.1和中文版8.1。

    为了方便大家使用,我把
    lm70.dll
    mlr5lprg.dll
    这两个文件放到附件中,大家下吧。

    [ 本帖最后由 大漠飞鹰 于 2006-11-1 16:56 编辑 ]


    附件: [lm70.dll] lm70.rar (2006-11-1 11:34, 80.43 K)
    该附件被下载次数 920


    附件: [mlr5lprg.dll] mlr5lprg.rar (2006-11-1 13:57, 87.29 K)
    该附件被下载次数 684
  • Bugs 的有效交流和管理

    2006-12-28 11:41:13Digest 1

    • 转载自51
    • [原创]Bugs 的有效交流和管理[翻译]

      Communicating and Managing Bugs Efficiently
      By Jitu Borah
      (jborah@adobe.com)
      3rd September 2003

      Bugs 的有效交流和管理

      原著:Jitu Borah  翻译:smartbaby
      版权归Jitu Borah  所有

      有效的bug报告(enough is good)
      1.好的标题
      2.简短而明确的总结
      3.再现的步骤是否足够
      4.观察结果
      5.预期结果
      6.其他信息
      7.注释/历史
      8.适当的附件
      9.集中体现里程碑
      10.bug严重性和优先级的分析

      质量分析报告(just do)               
      1.简明的bug描述
      2.bug的隔离
      3.挑选bug与覆盖bug
      4.bug的比较分析
      5.区别重要的bug

      认真的思考(how much and why)
      1.重复的bug
      2.没有得到修复的bug
      3.不是bug而是设计问题
      4.自动修复的bug
      5.bug往返
      6.个人和情感状态
      7.提出立即的警告
      8.整理所有可测试的bug
      9.bug搜索
      10.学习以前的bug报告

      不必要的工作流(why)                 
      1.后期的发现
      2.低bug数
      3.发现已经修复停止的bug
      4.你漏掉而用户发现了的bug


      标题
      标题的名称顾名思义,很简单,我就不多说了。要注意的是下面两个方面:
      1.从标题上知道它所要说的内容。理想状态下,bug标题不应超过50-60个字符
      2.关于bug另外一个重要的方面是,它不应有任何主观色彩的缺陷描述。

      总结
      总结在于简明扼要的说清楚问题即可。太过冗长的句子,会让人看不懂而心生厌倦。

      再现的步骤
      提供如何再现bug的确切的信息,确切的信息的含义是指, 使用恰当的技术术语和命名约定,清楚的提供信息和有条理的标记相关的步骤。
      在提交bug之前,扪心自问,这个bug是否能被其他看了这个bug描述的人再现出来。

      观察结果
      所有与软件运作的结果有关的未实现的功能必须被提及,不能有任何遗漏。比如当你在做一些 明确目标时遇到一个错误的对话框的情形,你的任务不是描述错误本身而是提供错误对话的内容。

      预期结果
      无论规格说明书如何有用,它的变更是非常频繁的,在bug描述中写期望结果是非常困难的事情。测试人员必须从有相关知识和经验的开发人员处得到你所要测试的项目指导性的内容。也可以从前面已经发布了的版本中或者可以使用的商业标准应用中获取有用的信息。

      其他信息
      其他信息就是非常重要的,因为它可能会帮助开发人员建立与真实问题的某些联系。

      注释/历史
      当你需要了解一个已经离开组织的测试人员的工作时,你不得不完全依赖讨论历史,但它是否真的能让你明白如何进行下一阶段的工作吗?
      当一个已修复问题从开发人员转到你这里,你需要进行验证和关闭,不要忘了在关闭这个问题时写上注释。

      附件
      测试文件应该尽可能的付在bug描述后面。这种方法证明对于问题存在的证据是非常有效的,它同样也节省了开发人员不得不浪费在再现错误上花费的大量宝贵时间。

      里程碑
      应该关注是在哪一个阶段发现的bug。

      严重性和优先性
      严重性和优先权的客观分配在理论上是可行,而在实际中,大多数情况下,取决于个人主观理解。所以想要避免主观性似乎是行不通的。
      成熟的公司对于他们组织明确的活动相应的严重性进行定义。这些公司对于如何分配严重性有他们自己的指导方针,这些方针是提供给测试人员的,同时这些规则、方针在项目需求中是可裁减的。每天结束时,项目组的所有测试人员把所有的缺陷以严重性分类。
      级别有:
      .尽快修复
      .高
      .普通
      .低
      严重性和优先级的定义通常取决于所在组织的测试活动的本质。

      质量分析报告               
      简明的bug描述
      不要夸大所发现的任何很小的问题。
      一个非常详尽的和象说故事一样长的描述都是不适合于bug描述的。
      不必要的或不相关的信息都是不应该存在的。

      bug隔离
      测试人员应该能放大潜在的问题或原因,并提供给已经发现的缺陷逻辑理解。
      有时,bug隔离是非常难实现和理解的,因为设计到无数因素,这些因素以一种不确定的方式产生程序的问题。bug隔离需要深入考虑和理解你所要测试的应用。

      挑选bug与覆盖bug
      要善于将单个的BUG和同一类的BUG区分开来。
      每次一个bug描述应该只关注一个明确的问题。那些容易造成混淆的相同问题应该汇总在一起,而这些问题也造成重复提交问题的时间浪费。同样,如果在一个应用中有大量的问题,但是所有的解决仅仅是修改一个代码结构的细节就可以解决的,那么采取的方法是将这个bug覆盖而不是记录大量的bug。

      比较分析
      好的比较总是使你的用例更有说服力、更有效、更令人信服。有时,对于测试人员来说,用提供确切的行为来类推支持他的主张是非常必要的。当你有当前正在测试项目的较早版本就会更容易,或竞争者提供的类似产品,这种产品已经占有一定的市场份额或者已经形成一定的标准。

      区别重要的bug
      重要的bug是就算验证基本测试用例或者用例丢失时也可以找到的bug。

      认真的思考
      重复的bug
      产生许多重复的bug导致了在应用条理性方面的低效率和不成熟的思考,这种情况不可能完全避免。注意力应该放在识别重复bug上。
      将重复的bug减少到最少的一个方法是仅仅使用关键字查询数据和查找是否已经有记录在案的类似bug。

      有得到修复的bug
      依靠用户特殊的需要产生的市场,应用程序中严重性高的bug可能被延期,而小的那些bug却得到修复。要记住的是修复一个bug是一种商业决定,测试人员应该尽可能站在组织的角度来理解用户工作流。

      不是bug而是设计问题
      当你提交一个bug但开发人员把它退回,并付上“不是bug”或给出它是正确的注释。
      测试人员所要做的就是尽可能找到规格说明书提到的功能或者其他的开发文档来支持,甚至是设计的人员的支持。

      自动修复的bug
      过去存在的bug,没有进行修复就自动的正确修改,开发人员并没有对这些bug验证进行标记,但是这些bug却已经被修改了。
      其实如果知道开发人员不可避免的重写他的代码,开发人员修改代码路经,修改相关性等等,结果就产生了这些不可思议的事情。因而已经存在的bug 消失而新的bug又出现了。 测试人员需要认识到并理解这些变化的原因,同时为这些消失的bug做好准备。

      bug往返
      由于缺乏足够的信息,有时候在测试人员和开发人员之间一个bug的提交过程需要重复多次。测试人员提交bug描述,开发人员添加一些信息然后返回该bug,测试人员再添加一些信息然后再返回给开发人员,如此循环多次。这样可能会引起bug描述过程的混乱。
      如果bug在测试人员和开发人员之间多次往返,会浪费大量的时间和资源。为了避免这样的情形,测试人员应该认真地在提交bug的时候同时提交所有与bug相关的对修复bug有用的信息。测试人员需要保留关于问题的所有版本,并且随时随地的准备提供完整的信息给需要的人。

      个人和情感状态
      测试人员要避免唤起激烈的情绪,特别是生气和好斗性的情绪。另外,测试人员永远都不要轻视代码或者发表相关的批评。
      测试人员和开发人员之间有时会存在一些概念上的误会。最好的解决方法是通过口头交流进行解决而不是把这些问题反映到报告中。

      提出警告
      在一个复杂的应用程序中,由于数据库中存在大量的bug,虽然bug的优先级和严重级在bug描述中不是比较高的。测试范围的易测性和测试范围变的非常困难,需要测试立即与开发人员进行沟通。

      整理所有可测试的bug
      测试人员的职责不仅仅是在遇到缺陷的时候提交报告,也需要对每一个bug的修复进行跟踪,并随着有秩序测试活动延续,根据bug的优先级顺序进行验证。给出测试的应用程序修复质量和相应走向的一个清晰的曲线图。报告中需要紧密监控发现的bug和关闭的bug的比率。

      bug搜索
      组织多人参加的bug搜索组能够帮助找到那些隐藏的bug。

      学习以前的bug报告
      如果你的手边有可以用的有经验的测试人员以前写的bug报告,把它们拿来查看和学习是非常好的习惯。

      不必要的工作流                 
      后期的发现
      后期发现的bug永远也不应该忽略,同时如果它的bug描述是可取的,将立即引起管理层的关注。

      低bug数
      测试人员需要关注检定缺陷的质量多于简简单单的找到细小的或困难的bug。如果保证了质量,就是低bug数也是可以接受的。

      发现已经修复停止的bug
      许多软件项目中,对于所有关闭的bug来说完整回归,仅仅是确保关闭的bug不在出现。由于时间限制尽管完全回归不能实现的很好,一般地,在项目里程碑发布之前,都必须要特别注意。跟踪关闭所有的bug,如果对早期的bug有疑惑,尽早再次检查它。

      漏掉而用户发现了的bug
      注意力应该放在尽可能以有效的方式来管理你的bug上。不同的方法导致不同的想法和对不同测试环境的挑战。测试人员的目标是正确处理这些问题。
  • TD简介

    2006-12-26 12:30:32

    中文名称:TestDirector
    英文名称:TestDirector
    别名:TD
    版本:7.6&8.0
    发行时间:2003年
    地区:美国
    语言:英语
    简介
    [通过安全测试]
    杀毒软件:Symantec AntiVirus v10.0.0.2000
    版本: v10.0.0.2000
    病毒库:2006-03-17
    共享条件:电信ADSL 1M带宽,上载理论64K。
    共享时间:9:00-24:00在线,除非线路故障或者机器故障。
    共享服务器:一般在DonkeyServerNo1
    [通过安装测试]WindowsXP SP2

    软件版权归原作者及原软件公司所有,如果你喜欢,请购买正版软件



    TestDirector是MI(Mercury Interactive)公司一个测试管理工具,是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。
    电子商务正影响着许多公司制定计划和建立自己的IT系统。很快,一个Web应用软件就能被创建,开发并立即展现在您的客户、供应商或合作伙伴的面前。然而,由于紧凑的开发计划和复杂的系统基构,Web应用软件的测试经常是被忽视的。为了与新经济同步, 您必须开发经过系统测试的高品质的网络应用软件。
    您需要设立一个中央点来管理测试过程。一套基于Web的测试管理系统提供了一个协同合作的环境和一个中央数据仓库。由于测试人员分布在各地,您需要一个集中的测试管理系统能让测试人员不管在何时何地都能参与整个测试过程。IT部门增长地会非常快,人员也会不断流动。您必须以最快的速度培训新的测试人员,教会他们所有与测试有关的知识技术。
    重点在于管理复杂的开发和测试过程,改善部门间的沟通, 加速您测试的成功。
    TestDirector能消除组织机构间、地域间的障碍。它能让测试人员、开发人员或其它的IT人员通过一个中央数据仓库,在不同地方就能交互测试信息。TestDirector将测试过程流水化——从测试需求管理,到测试计划,测试日程安排,测试执行到出错后的错误跟踪——仅在一个基于浏览器的应用中便可完成,而不需要每个客户端都安装一套客户端程序。


    需求管理
    程序的需求驱动整个测试过程。TestDirector 的Web 界面简化了这些需求管理过程,以此您可以验证应用软件的每一个特性或功能是否正常。通过提供一个比较直观的机制将需求和测试用例、测试结果和报告的错误联系起来,从而确保能达到最高的测试覆盖率。
    一般有2 种方式可将需求和测试联系起来。其一,TestDirector 捕获并跟踪所有首次发生的的应用需求。您可以在这些需求基础上生成一份测试计划,并将测试计划对应与您的需求。例如,您或许有25个测试计划可对应同一个应用需求。您一定能方便地管理需求和测试计划之间可能存在的一种多对多的关系,确保每一个需求都经过测试。其二,由于Web 应用是不断更新和变化的,需求管理允许测试人员加减或修改需求,并确定目前的应用需求已拥有了一定的测试覆盖率。它们帮助决定一个应用软件的哪些部分需要测试,哪些测试需要开发,是否完成的应用软件满足了用户的要求。对于任何动态地改变Web 应用,必须审阅您的测试计划是否准确,确保其符合最当前的应用要求。

    计划测试
    测试计划的制定是测试过程中至关重要的环节。它为整个测试提供了一个结构框架。estDirector的Test Plan Manager 在测试计划期间,为测试小组提供一个关键要点和Web 界面来协调团队间的沟通。
    Test Plan Manager 指导测试人员如何将应用需求转化为具体的测试计划。这种直观的结构能帮助您定义如何测试您的应用软件,从而您能组织起明确的任务和责任。Test Plan Manager提供了多种方式来建立完整的测试计划。您可以从草图上建立一份计划,或根据您用Requirements Manager所定义下的应用需求,通过Test Plan Wizard 快捷地生成一份测试计划。如果您已经将计划信息以文字处理文件形式,如Microsoft Word 方式储存,您可以再利用这些信息,并将它导入到Test Plan Manager。它把各种类型的测试汇总在一个可折迭式目录树内,您可以在一个目录下查询到所有的测试计划。例如,你可以将人工和自动测试,如功能性的,还原和负载测试方案结合在同一位置。
    Test Plan Manager 还能进一步的帮助您完善测试设计和以文件形式描述每一个测试步骤,包括对每一项测试,用户反应的顺序,检查点和预期的结果TestDirector 还能为每一项测试连加附属文件,如Word ,Excel ,HTML ,用于更详尽的记录每次测试计划。
    Web 网络应用日新月异,您的应用需求也随之不断改变。您需要相应地更新您的测试计划,优化测试内容。即使频繁的更新,TestDirector 仍能简单地将应用需求与相关的测试对应起来。TestDirector 还可支持不同的测试方式来适应您公司特殊的测试流程。
    多数的测试项目需要一个有人工与自动测试的结合,包括健全,还原和系统测试。但即使符合自动测试要求的工具,在大部分情况下也需要人工的操作。启用一个演变性的而非革新性的自动化切换机制,能让测试人员决定哪些重复的人工测试可转变为自动脚本以提高测TestDirector 还能简化将人工测试切换到自动测试脚本的转化,并可立即启动测试设计
    过程。

    安排和执行测试
    一旦测试计划建立后,TestDirector 的测试实验室管理为测试日程制订提供一个基于Web 的框架。它的Smart Scheduler根据测试计划中创立的指标对运行着的测试执行监控。
    当网络上任何一台主机空闲,测试可以彻夜执行于其上。Smart Scheduler 能自动分辨是系统还是应用错误,然后将测试重新安排到网络上的其他机器。
    对于不断改变的Web 应用,经常性的执行测试对于追查出错发生的环节和评估应用质量都是至关重要的。然而,这些测试的运行都要消耗测试资源和时间。使用Graphic Designer图表设计,您可以很快地将测试分类以满足不同的测试目的,如功能性测试,负载测试,完整性测试等。它的拖动功能可简化设计和排列在多个机器上运行的测试,最终根据设定好的时间、路径或其它测试的成功与否,为序列测试制订执行日程。Smart Scheduler 能让您在更短的时间内,在更少的机器上完成更多的测试。
    用WinRunner , Astra QuickTest ,Astra LoadTest 或LoadRunner 来自动运行功能性或负载测试,无论成功与否,测试信息都会被自动汇集传送到TestDirector 的数据储存中心。同样,人工测试也以此方式运行。

    缺陷管理
    当测试完成后,项目经理必须解读这些测试数据并将这些信息用于工作中。当有出错发现时,他们还要指定相关人员及时纠正。
    TestDirector 的出错管理直接贯穿作用于测试的全过程,以提供管理系统终端-终端的出错跟踪—从最初的问题发现到修改错误再到检验修改结果。由于同一项目组中的成员经常分布于不同的地方,TestDirector 基于浏览器的特征,使出错管理能让多个用户何时何地都可通过Web 查询出错跟踪情况。利用出错管理,测试人员只需进入一个URL ,就可汇报和更新错误,过滤整理错误列表并作趋势分析。在进入一个出错案例前,测试人员还可自动执行一次错误数据库的搜寻,确定是否已有类似的案例记录。这一查寻功能可避免重复劳动。

    图形化和报表输出
    测试过程的最后一步是分析测试结果,确定应用软件是否已布属成功或需要再次的测试。
    TestDirector 常规化的图表和报告和在测试的任一环节帮助您对数据信息进行分析。
    TestDirector 还以标准的HTML 或Word 形式提供一种生成和发送正式测试报告的一种简单方式。测试分析数据还可简便地输入到一种工业标准化的报告工具,如Excel ,ReportSmith ,CrystalReports ,和其它类型的第三方工具。


  • TD安装

    2006-12-26 12:20:55

    下载篇:
    心力的FTP中有下,不过前提是成为学员,进入学员专用FTP,目前普通FTP中还没有,呵呵

    51testing的FTP也有,下载地址
    ftp://www.51testing.com

                            用户名 51testing.net

                            密码:51testing.net

          如果密码有改动请到
    www.51testing.com的论坛上查询


    还有一个别人的网络空间,他自己共享的:

    TestDirect8.0版 下载地址

    http://www.soeasy.net.cn/
    Name:2005_12_30_4
    Password:newnew

    附:如果压缩文件包含密码,密码一律为:newnew


    安装篇:

    XP和2000都可以安装,2003似乎有兼容性问题,没试过,装过的朋友可以说一下。TestDirector的安装环境要求 IIS。如果你没有,请在控制面板添加/删除程序中安装IIS。(这里需要注意的一点是,你系统的administrator用户不能使用空密码,也就是说你必须为管理员用户指定一个密码,不然安装完成后无法正常运行TestDirector,会报那个著名的RPC错误)。安装之前请关闭一些IE的辅助工具,并关闭其功能,在初次运行时,会要求更新部分IE空间,很有可能被IE的辅助工具所拦截。所以为了能让我们顺利的完成它,把杀毒软件也关掉吧。


    运行安装程序。


    NEXT




    输入你的License 继续Next

    License可以用TD7.6的:B343P--44B44--43444--6444S




    根据环境选择需要的数据库,这里使用的是Access,继续Next





    注意User 里面默认的是 你的机器名\管理员

    Password:输入管理员密码(要想正确安装你的Administrator必须有密码,不能为空)

    继续Next




    如果你有邮件服务器,则选择SMTP Server 输入你的邮件服务器

    继续Next




    Virtual Directory Name 输入你虚拟目录名,即你在IIS中访问要用的地址,默认即可

    继续Next




    继续Next




    配置完成后,可以在上面的栏目中查看你前面的详细配置,如果可以点击Install开始安装过程

    安装完成后,需要重起一下机器,在登陆系统的时候会发现多了一个关于员用户,这里是无法登陆,是TD自动创建的一个系统用户,不用去管它。

    接着继续安装SP1补丁,中途会要求输入一次系统管理密码,然后再要求重起一次


    重复上面步骤安装SP2补丁。即安装完成


    以后在学习TestDirector中的一些心得我也会写下来,与大家交流


    [ 此贴被雷斯林在2006-04-07 22:49重新编辑 ]

  • Loadrunner下载地址

    2006-12-26 12:13:17

  • cvs相关工具下载地址总结

    2006-12-26 12:08:37

     

    作者[朱丽菜叶] 发表于[2006-5-30 15:54:00]
    cvs相关工具下载地址总结,还有什么我没有写到的欢迎补充
    CVS服务器端:
    CVS 下载地址:http://www.cvshome.org/ (最新版本:hp:1.12.11,Linux and win32:1.11.17)
    cvsnt 下载地址:http://www.cvsnt.com/cvspro/ (最新版本:2.0.58d)

    CVS客户端:
    TortoiseCVS 下载地址:http://www.tortoisecvs.org/ (最新版本:1.8.11)
    wincvs 下载地址:http://cvsgui.sourceforge.net/download.html (最新版本:1.3.20.3)
    Python 下载地址:http://www.python.org/download/ (最新版本:2.4)
    TCL 下载地址:http://www.activestate.com/Products/ActiveTCL/ (最新版本:8.4.9.0)
    SmartCVS 下载地址:http://www.regnis.de/download.html (最新版本:3.0.6)

    CVSWEB 下载地址:http://www.freebsd.org/projects/cvsweb.html (最新版本:3.0.5)
    viewcvs 下载地址:http://viewcvs.sourceforge.net/(最新版本:0.9.2)
    CvsGraph 下载地址:http://www.akhphd.au.dk/~bertho/cvsgraph/(最新版本:1.5.1)

    缺陷跟踪:
    CVSTrac 下载地址:http://www.cnpack.org/ (http://www.cvstrac.org/)(最新版本:1.1.5)


    基于CVS的代码统计工具:按代码量,按开发者的统计表等:
    StatCVS 下载地址:http://sourceforge.net/projects/statcvs (最新版本:0.2.2)


    CVS权限管理(CVSACL is a patch for CVS):
    cvsacl 下载地址:http://cvsacl.sourceforge.net/(最新版本:1.2.2)

    subversion服务器端:
    subversion 下载地址:http://subversion.tigris.org/project_packages.html#binary-packages (最新版本:1.1.3)

    subversion客户端:
    tortoisesvn 下载地址:http://tortoisesvn.tigris.org/ (最新版本:1.1.3)
    rapidsvn 下载地址:http://rapidsvn.tigris.org/ (最新版本:0.7.0)
  • TD下载地址

    2006-12-26 12:07:14

    下载:http://www.cntesting.com/bbs/read.php?tid=3961
    汉化:http://www.ml570.com/article.asp?id=52

    选择这里
    没错)——
    http://bbs.cntesting.com/read.php?tid=3961&fpage=1

    或http://emule.cdp2p.com/Article/sfotware/a2/Article_29497.html

    你最好相信十一级的.我下载过了..

    http://www.cntesting.com/bbs/simple/index.php?t3001.html
    试试我的 准行

    http://www.baidu.com/s?cl=3&wd=testdirector 8


    下载:http://www.cntesting.com/bbs/read.php?tid=3961
    汉化:http://www.ml570.com/article.asp?id=52


    选择这里
    没错http://bbs.cntesting.com/read.php?tid=3961&fpage=1

    或http://emule.cdp2p.com/Article/sfotware/a2/Article_29497.html

    http://bbs.cntesting.com/read.php?tid=3961&fpage=1

    参考资料:http://bbs.cntesting.com/read.php?tid=3961&fpage=1

    ftp://www.51testing.com
    用户名 51testing.net

    密码:51testing.net

    如果密码有改动请到www.51testing.com的论坛上查询


    还有一个别人的网络空间,他自己共享的:

    TestDirect8.0版 下载地址

    http://www.soeasy.net.cn/
    Name:2005_12_30_4
    Password:newnew

    附:如果压缩文件包含密码,密码一律为:newnew


    安装篇:

    XP和2000都可以安装,2003似乎有兼容性问题,没试过,装过的朋友可以说一下。TestDirector的安装环境要求 IIS。如果你没有,请在控制面板添加/删除程序中安装IIS。(这里需要注意的一点是,你系统的administrator用户不能使用空密码,也就是说你必须为管理员用户指定一个密码,不然安装完成后无法正常运行TestDirector,会报那个著名的RPC错误)。安装之前请关闭一些IE的辅助工具,并关闭其功能,在初次运行时,会要求更新部分IE空间,很有可能被IE的辅助工具所拦截。所以为了能让我们顺利的完成它,把杀毒软件也关掉吧。


    运行安装程序。

    输入你的License 继续Next

    License可以用TD7.6的:B343P--44B44--43444--6444S

    根据环境选择需要的数据库,这里使用的是Access,继续Next

    注意User 里面默认的是 你的机器名\管理员

    Password:输入管理员密码(要想正确安装你的Administrator必须有密码,不能为空)

    继续Next

    如果你有邮件服务器,则选择SMTP Server 输入你的邮件服务器

    继续Next

    Virtual Directory Name 输入你虚拟目录名,即你在IIS中访问要用的地址,默认即可

    继续Next




    继续Next




    配置完成后,可以在上面的栏目中查看你前面的详细配置,如果可以点击Install开始安装过程

    安装完成后,需要重起一下机器,在登陆系统的时候会发现多了一个关于员用户,这里是无法登陆,是TD自动创建的一个系统用户,不用去管它。

    接着继续安装SP1补丁,中途会要求输入一次系统管理密码,然后再要求重起一次


    重复上面步骤安装SP2补丁。即安装完成
  • 新手必看《自动化测试工具介绍LR篇》

    2006-12-13 11:19:47



    Mercury LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
    目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
    LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
    轻松创建虚拟用户
    使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。另外,LoadRunner 的TurboLoad 专利技术能。
    提供很高的适应性。TurboLoad 使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。
    用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。
    LoadRunner 通过它的Data Wizard 来自动实现其测试数据的参数化。Data Wizard 直接连于数据库服务器,从中您可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要,Data Wizard 为您节省了大量的时间。
    为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner 控制某些行为特性。例如,只需要点击一下鼠标,您就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。
    创建真实的负载
    Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner 的Controller,您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。
    而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。
    LoadRunner 通过它的AutoLoad 技术,为您提供更多的测试灵活性。使用AutoLoad ,您可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,您的目标可以是确定您的应用系统承受的每秒点击数或每秒的交易量。
    定位性能问题
    LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。
    再者,利用LoadRunner 的ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。
    分析结果以精确定位问题所在
    一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner 的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能
    够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner 的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。
    重复测试保证系统发布的高性能
    负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。
    Enterprise Java Beans的测试
    LoadRunner 完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。
    利用LoadRunner, 您可以很方便地了解系统的性能。 它的Controller 允许您重复执行与出错修改前相同的测试方案。它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。
    最大化投资回报
    所有Mercury Interactive 的产品和服务都是集成设计的, 能完全相容地一起运作。由于它们具有相同的核心技术,来自于LoadRunner和ActiveTest TM 的测试脚本,在Mercury Interactive 的负载测试服务项目中,可以被重复用于性能监测。借助Mercury Interactive的监测功能--Topaz TM 和ActiveWatch TM ,测试脚本可重复使用从而平衡投资收益。更重要的是,您能为测试的前期布署和生产系统的监测提供一个完整的应用性能管理解决方案。
    支持无线应用协议
    随着无线设备数量和种类的增多,您的测试计划需要同时满足传统的基于浏览器的用户和无线互联网设备,如手机和PDA。LoadRunner 支持2 项最广泛使用的协议:WAP和I-mode。此外,通过负载测试系统整体架构,LoadRunner 能让您只需要通过记录一次脚本,就可完全检测上述这些无线互联网系统。
    支持Media Stream应用
    LoadRunner 还能支持Media Stream应用。为了保证终端用户得到良好的操作体验和高质量Media Stream,您需要检测您的Media Stream应用程序。使用LoadRunner ,您可以记录和重放任何流行的多媒体数据流格式来诊断系统的性能问题,查找原由,分析数据的质量。
    完整的企业应用环境的支持。
    LoadRunner 支持广泛的协议,可以测试各种IT 基础架构。
  • 让LoadRunner走下神坛

    2006-12-13 10:56:08

    Loadrunner无疑是一个强大有力的压力测试工具。它的脚本可以录制生成,自动关联;测试场景可以面向指标,多方监控;测试结果图表显示,拆分组合。相信有人这样想象过:拿着一张性能指标标准列表和测试数据相比较,如同PH试纸一样,遇碱则蓝,遇酸则红,一目了然,之后就可以大声地喊道:我找到了软件系统的性能瓶颈!
    然而,我们无论在loadrunner前面加多少个“强大”、“智能”的形容词,别忘了其最终修饰的只是一个名词-“工具”。《大话西游》中也有相当精辟的论断:官兵?最多也只是个长了痔疮的官兵!把loadrunner比喻成长了痔疮的官兵有点粗俗,但loadrunner它是个工具,那么是否能够找到性能瓶颈就取决于使用工具的人,而不是工具本身。要做一个成功的性能测试,仅读懂和精通了loadrunner的使用手册是不够的,还需要对被测软件系统的方方面面都要有了解,比如软件体系构架,网络拓扑等知识。这就如同一个技艺高超的木匠,并不是因为他背熟了凿子,锤子的说明书,而是他能结合木材的质地和尺寸,用凿子和锤子这些工具做出一把精巧的椅子来。那么在性能测试中,人的智慧活动体现在哪里呢?


    一.首先性能测试也是测试的一种,这就意味着做性能测试也要写测试案例。你所作的性能测试能不能足以支持找出性能测试瓶颈,和你在初期设计的测试案例关系甚为重要。我曾写过对一个软件系统的不下十个性能测试场景案例,等后来运行时却发现我必须增补几个案例才能找到瓶颈,而原来十多个案例其实重复甚多。如果你要写出好的不重复的性能测试案例来,你就得对被测软件系统有一定的了解。
    在这里,我顺便插一句,在目前测试界总在争论测试人员需不需要懂编程,需不需要有开发经验这种问题,这完全是本末倒置,忘记了测试人员的目标是什么,测试目标就是写出好的测试案例,好的测试案例就是发现了一个原来未曾发现的软件bug。那么一个测试人员知识体系是否够用的标准就是能不能写出一个好的测试案例。而针对不同类型的测试,所需的知识深度是不一样的,有的是不需编程知识,比如界面测试;有的是必须有开发经验的,比如接口测试,不能一概而论。
    对于性能测试来讲,我个人认为,测试人员倒不一定非要有开发经验,但是应该有一个对软件体系结构了解全面的知识。为什么呢?做性能测试时,如果从客户端施压一次就符合性能指标,碰到这种情况您就偷着乐吧,因为在你的指标场景下,软件系统中就不存在性能瓶颈,您也就不用费心去找了。但是大多数情况下,我们在做性能测试时,都不能顺利达到性能指标,可能server响应超时了,也可能是用户死掉了,在日志里抛出了一堆error,这种情形是非常常见,所以在我们在一开始设计性能测试方案时,就应该考虑为寻找性能瓶颈而设计测试案例。这时我们就需要知道在整个软件系统中,有哪些节点,在哪些地方可能存在瓶颈,比如一个B/S系统就有IE client→物理网络→web server→app server→DB这样的一个压力流串。每个节点的每个模块都有可能成为瓶颈。瓶颈的产生可能由于模块配置引起,也可能由于模块本身引起。这都需要我们设计测试案例来发现的。一般地,我自己常用的感觉也比较方便的方法是,设计一组性能测试案例来验证一个节点是否存在瓶颈,这组case中尽量保持其他节点不变,来改变这个节点的配置,并监控此节点的各种指标。这里说起来就有很多话了,不是一言两语能说得清的。以后有时间可以找个专题来慢慢跟大家讨论。


    二.使用loadrunner的VU生成脚本。脚本的生成方式就两种,一种是自写或嵌入源代码,一种是录制生成。常常听见有人说,这两种方式中首选录制生成脚本,因为它简单且智能化。但我个人总觉得手写脚本要好一些,因为:
    1.可读性好,流程清晰,检查点截取含义明确。业务级的代码读起来总比协议级的代码更易让人理解,也更容易维护,必要时可建立一个脚本库。而录制生成的代码大多没有维护的价值,现炒现卖。
    2.手写的程序相比录制的脚本更能真实地模拟应用运行。因为录制的脚本是截获了网络包,生成了协议级的代码,而略掉了client端的处理逻辑。举个例子,用VU录制一个运行scrīpt和applet的IE行为,它只会生成http协议的API,在IE中运行的applet和scrīpt不会被模拟到,这就不是一个完整的系统。
    3.手写程序相比录制脚本更能增加测试人员的技术含量。开发和测试能力双重提高,何乐而不为呢?loadrunner提供了java user,vb user,c user等语言类型的脚本,就是给我们开发脚本用的,而不是录制用的。
    脚本不管录制也好,还是手写也好,选择的时候应该以脚本模拟程序真实有效为准,结合项目进度,开发难易程度等因素考虑。
    在这里我想要说的是,开发一个好的脚本是成功性能测试的必要条件。一个好的脚本应该能够最大程度再现client程序行为。如上面那个例子,脚本只模拟了client端的部分行为,有一些没有模拟到,那么client的瓶颈就有可能被忽略了。我曾吃过一个亏,自己写了一个java socket脚本去联server,但是忽略了client端的界面下的业务逻辑,用我的脚本做性能测试通过,全部OK,但是真实用户一上线,client终端界面接受了大量的server信息,导致client进程死掉了。痛哉,痛哉。


    三.组建并执行性能测试场景。
    从VU运行成功到controller运行成功,一般需要以下几个步骤(我也是从英文论坛上看到的,觉得不错,拿出来共享):
    1. 确认在VU里SUSI(单用户单循环次数single user & single iteration)
    2. 确认在VU里SUMI(单用户多循环次数single user & multi iteration)
    3. 确认在controller中MUSI(多用户单循环次数multi user & single iteration)
    4. 确认在controller中MUMI(多用户多循环次数 multi user & multi iteration)


    做这样一个步骤划分是有道理的,第一步骤是验证脚本编写的正确,第二步骤可以验证数据池是否正常运作。第三步骤验证并发功能,第四步骤是最终目的,验证软件系统的性能。在论坛上看到一些朋友提的问题,有一些就是于此的,在controller中运行场景时出现问题,首先得保证VU中运行成功,这是一个显然的逻辑。软件工程中把软件开发的种种行为都要制定一个proccess,即过程,性能测试也是如此,按照过程来调试脚本和场景,能及早发现问题和定位问题。除非是高手,烂熟于心中,才能超越proccess而不出问题。
    场景是把虚拟用户和交易数按一定规则组织起来去模拟真实世界的业务行为。这其实是把单个用户的行为复制,连接。场景的组织通常和真实世界的业务规则有很大关系。
    做个如下可能并不恰当的比喻:
    脚本像演员,场景就像表演的舞台,而测试工程师是导演,多少个演员,怎么在舞台上演出,都由导演说了算,而剧情又不能离谱,脱离现实,否则就要砸锅了。注意,导演的职责不光是确保演出能顺利结束,而且还要同时观察和收集观众的反馈信息,以确认这次演出是否成功。
    同样的也是,性能测试人员不光是看场景是否得到顺利的执行,同时还要收集各个server的反馈信息,以确认软件系统的性能表现是否正常。
    在真实世界中的用户业务规则要转换到可操作的性能指标是需要分析和计算的。当然这通常是市场需求分析人员干的活,但我觉得测试人员应该在做性能测试时,对这些指标进行理解,知道为什么要这样做。有时有的性能指标并不清楚和准确,还需要测试人员来分析。比如一个性能指标:要求软件系统支持每分钟700用户的登陆行为。这对于测试人员来说,其实是一个不确切的性能需求。这指的是瞬时并发用户700,在一分钟的响应时间要求下登陆系统?还是在一分钟内陆续有700个用户登入软件系统即可?这两种场景其实对软件系统的压力是不同的,第一种显然大,第二种要小一些。甚至有的性能需求就是支持50000注册用户,这种需求就更需要分析了,还要引入一些业务发生概率算法模型来做。这已经不是性能测试人员的职责了,但由于目前有不少软件公司流程不规范,或者有流程没执行,这些工作都要测试人员来做了,不过也好,正好是锻炼的机会。


    四.分析结果数据,找到软件系统性能瓶颈
    上面说了,做了那么多,就是为了本步骤-寻找软件系统性能瓶颈。
    个人认为寻找性能瓶颈是一个非常有挑战性的工作,毛主席曾经说过:一个优秀的指战员就是能够根据已有的客观形势,制定作战计划,然后在作战过程中,发现计划与执行不符的地方,分析,然后调整作战计划,缩小计划和战势的误差。简明一句:就是一个理论和实践结合的过程,一个人的主观思想和客观现实的结合过程(注明:本人是毛主席老人家的忠实fans)。
    在性能测试中,测试方案就是我们的作战计划,执行性能测试就是我们的作战战场。在性能测试中,可能会发现种种意想不到的问题。当然一个经验足够丰富的性能测试专家可能会在测试之前就能考虑全面,使测试方案吻合测试执行实际情况,并一举找出性能瓶颈。我sunshinelius不是专家水平,当然就要匆忙应对和分析性能测试中出现的问题,并有可能会修改测试方案,增加必要的test case,删除没用的test case。总之,性能测试是一个不断修改测试方案,反复执行test case的过程,直至越来越逼近性能瓶颈。在此过程中,需要了解很多的知识,知识了解得越多,就越接近软件系统运行的真相,也就能找出性能瓶颈了。
    比如:loadrunner要是调用程序员的程序,服务器资源占用情况可能是追查瓶颈的一个线索,但如果是标准中间件,那就没那么简单了,比如oracle数据库的某项参数设得不对,照样会造成数据库瓶颈,应用程序调用数据库的API写法不对,比如未使用软解析变量,也有可能导致数据库瓶颈。这些瓶颈都不会反映在cpu,内存使用量上等指标上的。
    对于这种情况,一方面需要对中间件有一定的了解,知道哪些参数有什么作用,怎么可调的,另外还可能使用中间件的专有监测工具,来分析。lr的性能计数器是不够用的。
    个人体会,查找瓶颈的难易程度,由易到难
    服务器硬件瓶颈-〉网络瓶颈-〉应用瓶颈-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)
    记忆比较深刻的一次,用lr做了两天性能测试,指标上不去,后来使用oracle数据库的图形化性能检测工具才发现某个表的查询处理时间超长,原来索引创建得不合理,把表的索引改了之后,性能稍有提高,但还是上不去。再次排查,发现应用中有一个sql语句写得有问题,长而且耗时,改了之后,测试指标还是上不去
    经过至少四轮的排查,才大功告成,最后一个除掉的瓶颈是操作系统问题(开始没有想到它,后来看系统消息,才发现已经有错误报出)
    五.我再说两句
    每个系统的性能测试都是一个全新的挑战!
    sunshinelius恭祝loadrunner版的老朋友新朋友(你们的名字我都记得)2004年元旦快乐!2005年收获更多!

884/5<12345>
Open Toolbar