发布新日志

  • 如何设计编写和设计软件测试用例(转)

    2009-09-06 12:28:46

    一、测试用例软件测试的核心

      软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。

      影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。

      因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳定的根本保障。

      二、什么叫测试用例

      测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。

      不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的 每个特定功能或运行操作路径的测试构成了一个个测试用例。

      三、编写测试用例

      着重介绍一些编写测试用例的具体做法。

      1、测试用例文档

      编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。

      软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。

      测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的 基本元素:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。

      2、测试用例的设置

      我们早期的测试用例是按功能设置用例。后来引进了路径分析法,按路径设置用例。目前演变为按功能、路径混合模式设置用例。

      3、按功能测试是最简捷的,按用例规约遍历测试每一功能。

      对于复杂操作的程序模块,其各功能的实施是相互影响、紧密相关、环环相扣的,可以演变出数量繁多的变化。没有严密的逻辑分析,产生遗漏是在所难免。路径分析是一个很好的方法,其最大的优点是在于可以避免漏测试。

      为提高测试效率,软件测试已大力发展自动测试。自动测试的中心任务是编写测试脚本。如果说软件工程中软件编程必须有设计规格说明书,那么测试脚本的设计规格说明书就是测试用例。

      4、评估测试结果的度量基准

      完成测试实施后需要对测试结果进行评估,并且编制测试报告。判断软件测试是否完成、衡量测试质量需要一些量化的结果。例:测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少,等等。以前统计基准是软件模块或功能点,显得过于粗糙。采用测试用例作度量基准更加准确、有效。

      5、分析缺陷的标准

      通过收集缺陷,对比测试用例和缺陷数据库,分析确证是漏测还是缺陷复现。漏测反映了测试用例的不完善,应立即补充相应测试用例,最终达到逐步完善软件质量。而已有相应测试用例,则反映实施测试或变更处理存在问题。

      四、相关问题

      1、测试用例的评审

      测试用例是软件测试的准则,但它并不是一经编制完成就成为准则。测试用例在设计编制过程中要组织同级互查。完成编制后应组织专家评审,需获得通过才可以使用。评审委员会可由项目负责人、测试、编程、分析设计等有关人员组成,也可邀请客户代表参加。

      2、测试用例的修改更新

      测试用例在形成文档后也还需要不断完善。主要来自三方面的缘故:第一、在测试过程中发现设计测试用例时考虑不周,需要完善;第二、在软件交付使用后反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成;第三、软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新。

      一般小的修改完善可在原测试用例文档上修改,但文档要有更改记录。软件的版本升级更新,测试用例一般也应随之编制升级更新版本。

      3、测试用例的管理软件

      运用测试用例还需配备测试用例管理软件。它的主要功能有三个:第一、能将测试用例文档的关键内容,如编号、名称等等自动导入管理数据库,形成与测试用例文档完全对应的记录;第二、可供测试实施时及时输入测试情况;第三、最终实现自动生成测试结果文档,包含各测试度量值,测试覆盖表和测试通过或不通过的测试 用例清单列表。

      有了管理软件,测试人员无论是编写每日的测试工作日志、还是出软件测试报告,都会变得轻而易举。
  • 正交表(转自论坛)

    2009-07-31 11:35:07

    1。行数为mn型的正交表中,试验次数(行数)=∑(每列水平数-1)+1
       比如一个Lx(s1^k1s2^k2..)的正交表
       它的行数计算 x=k1*(s1-1)+k2*(s2-1)+...+1

    可以结合pdf上面的例子验证:

    L18(3^66^1)=> 6*(3-1)+1*(6-1)+1=18

    L49(7^8) => 8*(7-1)+1=49


    2。pdf P33:

    “水平数(变量的取值)相同但在正交表中找不到相同的因素数(变量),取因素数最接近但略大的实际值

    的表。”

    这个例子就是P38

    实际情况是5因素2水平;作者选取了L8(2^7)的正交表;因为这就是因素数最接近但略大的实际值的正交表

    图中蓝色全处的部分;是作者舍去的;我们只要5个因素即满足;剩下的两个不需要


    3。pdf P43


    我也实在不知道L49(7^8)是怎么设计出来的!我觉得5因素6水平最接近的表也不是这个

    另外 pdf p46  

    蓝色是圈走可以删掉的 因为L18(3^66^1)中 实际只要4因素3水平的那部分 用了6因素3水平的表

    红色是指可以取任意状态;因为是多出来的;你可以自己按需设计


    4。我想给大伙一个网址;里面有个正交表库;超过200多条数据;我觉得很好的


    A Library of Orthogonal Arrays

    http://www.research.att.com/~njas/oadir/index.html#4_2


    简要说明一下格式


    标准正交表: OA.N.K.S.name

    N:行数(runs)
    K:因素(factors)
    S:水平(levels)
    t: ??(strength) 不好意思;我没搞懂strength是什么东西?  你们有知道的麻烦告诉我:)

    简记:OA(N,S^k,2) 这里strength=2


    混合正交表: MA.N.s1.k1.s2.k2...

    简记:OA(N,s1^k1,s2^k2...)
  • 正交实验法设计测试用例(转)

    2009-07-28 23:28:10

    正交实验法设计测试用例是考虑用最少的用例来覆盖两两组合的情况,是套用正交表来随机的产生用例,没有主次之分,是一种提高测试覆盖率的简单易用的方法。

       正交实验法的重点是首先确定因子、状态,生成因子状态表;然后用加权筛选的方法去除不重要的因子、状态得到简化的因子状态表(因素分析表);再利用正交表构造测试数据集。

       如何选择正交表呢?有几条原则:

       1 每个因子状态数目相同的情况,因子数为M,状态数为N,则最佳选择一个M因子N状态的正交表,如果不存在这样的正交表,则选择K因子N状态的正交表(K>M)。

       2 如果不同因子状态数目不相同,选择出现次数最多的状态数(相同的话选择大的)。

       3 如果所选的正交表的状态数小于因子最大的状态数,比如

        a1  a2 

        b1  b2  b3

        c1  c2 

    则把b1 b2放在一起,写用例的时候再分开写。

     a1

     b1b2  c1
     a2  b1b2  c2
     a1  b3  c2
     a2  b3  c1

    用例:

    a1 b1 c1

    a1 b2 c1

    a2 b1 c2 

    a2 b2 c2

    a1 b3 c2

    a2 b3 c1 

    正交表的下载网址http://www.york.ac.uk/depts/maths/tables/orthogonal.htm 

     正交实验法设计测试用例的例子:

    假设一个WEB站点,该站点有大量的服务器和操作系统,并且有许多具有各种插件的浏览器浏览:

    WEB浏览器:Netscape6.2IE6.0Opera4.0

    插件:       无、RealPlayerMediaPlayer

    应用服务器:IISApcheNetscape Enterprise

    操作系统:Windows2000Windows NTLinux

     

    WEB浏览器

    插件

    应用服务器

    操作系统

    1

    Netscape6.2

    IIS

    Windows2000

    2

    Netscape6.2

    RealPlayer

    Apche

    Windows NT

    3

    Netscape6.2

    MediaPlayer

    Netscape

    Linux

    4

    IE6.0

    Apche

    Linux

    5

    IE6.0

    RealPlayer

    Netscape

    Windows2000

    6

    IE6.0

    MediaPlayer

    IIS

    Windows NT

    7

    Opera4.0

    Netscape

    Windows NT

    8

    Opera4.0

    RealPlayer

    IIS

    Linux

    9

    Opera4.0

    MediaPlayer

    Apche

    Windows2000

     

     

    正交表:

     

     

    1

    2

    3

    4

    1

    1

    1

    1

    1

    2

    1

    2

    2

    2

    3

    1

    3

    3

    3

    4

    2

    1

    2

    3

    5

    2

    2

    3

    1

    6

    2

    3

    1

    2

    7

    3

    1

    3

    2

    8

    3

    2

    1

    3

    9

    3

    3

    2

    1

    一、            提取系统功能说明中的因子:

    1、WEB浏览器

    2、插件

    3、应用服务器

    4、操作系统 

    二、            分析各因子的状态

       1、WEB浏览器:1Netscape6.22=IE6.03=Opera4.0

    2、插件: 1=None2=RealPlayer3=MediaPlayer

    3、应用服务器: 1=IIS2=Apche3=Netscape Enterprise

    4、操作系统: 1=Windows20002=Windows NT3=Linux

     

    三、            将因子、状态映射到上面正交表中:

     

    测试用例

    浏览器

    插件

    服务器

    操作系统

    1

    Netscape6.2

    None

    IIS

    Windows2000

    2

    Netscape6.2

    RealPlayer

    Apche

    Windows NT

    3

    Netscape6.2

    MediaPlayer

    Netscape Enterprise

    Linux

    4

    IE6.0

    None

    Apche

    Linux

    5

    IE6.0

    RealPlayer

    Netscape Enterprise

    Windows2000

    6

    IE6.0

    MediaPlayer

    IIS

    Windows NT

    7

    Opera4.0

    None

    Netscape Enterprise

    Windows NT

    8

    Opera4.0

    RealPlayer

    IIS

    Linux

    9

    Opera4.0

    MediaPlayer

Open Toolbar