51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9599|回复: 24
打印 上一主题 下一主题

[讨论] 关于查询功能测试CASE的编写

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-7-6 19:45:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个简单的查询功能,查询条件有多个,条件之间为and关系,任何一个条件都可以不输入。
怎样写可以用最少的CASE覆盖最多的可能情况。
(不考虑界面等等的功能,也不考虑有日期等特殊控件,也不考虑与业务有关的边界、异常等的测试,只考虑查询条件有输入或者没有输入情况下的不同处理)

比如,有A/B/C三个查询条件

一、可以写成2个CASE:
A、B、C三个条件全空
A、B、C三个条件全都输入

二、可以写成如下:
A       B      C
有      有    有
无      有    有
有      无    有
有      有    无

三、还以写成所有 A有输入,A无输入;B有输入,B无输入,C有输入,C无输入 的各种排列组合。

需要写成第3种情况这么多的测试CASE吗?第一种是不是可以概括了全部的情况呢?

咨询项目组开发人员,他们也不确定,因为可能编程习惯不同,写法也会不同。另外,开发人员还提出:如果是从一个表中select,第一种应该可以,但若是多个表select,可能会有问题。
查询功能应该是很常用的,相信大家都遇到过,不知道大家都是怎么做的呢?一直觉得这部分的CASE很麻烦。很容易写的冗余。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-7-7 09:25:10 | 只看该作者
A       B      C
有      有    有
无      有    有
有      无    有
有      有    无
这种就够了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-7-7 10:54:41 | 只看该作者
原帖由 舞の月 于 2006-7-7 09:25 发表
A       B      C
有      有    有
无      有    有
有      无    有
有      有    无
这种就够了


谢谢 舞の月  的意见。

那 A/B/C 全有,A/B/C全无,不是更简洁吗?会有什么样的可能出现而这种测试不到的错误吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-7-7 12:54:15 | 只看该作者
问题很有代表性,呵呵,我是这样看的。
你的第三种情况,其实是策略描述,覆盖了所有可能出现的情况,还不是实际的测试用例。真正的测试用例要具体化、可执行的。

你的第一种方法:包括了最极端的两种情况。
第二种方法:应该有一些正交设计的思路在里面吧,覆盖率绝大多数的情况。
而你没有具体实现的第三种情况,真正写出以来的话就是从000到111的所有排列组合,覆盖了全部的情况。

对于这个需求,要验证的内容已经清楚了,各种方案也清楚了,代价和风险的区别应该可以得出。下面应该是由你来进行分析,把验证进行到哪一步可以满足系统上的要求,工作量可以接受,承担的风险也可以接受。然后,根据分析的结论,从3个用例中选择一个合适的,或者也可以3个全保留,不同情况下执行不同的用例。

这样才是一个用例设计的完整过程。

当然,是非常的麻烦,但是,不这样做的话,就像你说的,直接得到任意一个结论,都是会出问题的。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-7-7 13:03:10 | 只看该作者
slide说的有道理。“真正的测试用例要具体化、可执行的。”
代价、风险、工作量都是要考虑的因素。

但是我就是在想,有没有可能根据开发人员写这类程序的通用的做法,找到一个最简洁的测试CASE的写法。因为这种查询模块很多。

呵呵,是不是有点钻牛角尖了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-7-10 12:49:53 | 只看该作者
简洁的方法也有呀,就按照你自己分析的
1类是验证极端的边界值
2类是按照正交方法选择用例
3类是覆盖所有用例

写一篇文档把这3种方法说清楚。

然后在具体设计用例时候,只要说一下按照那种方法来设计,123中选一个,其他就不用写了。
如果是自动用例,可以做个工具根据类别自动生成用例。如果是手动用例,看着说明直接执行就可以了,再把每个组合都写出来意义其实不大。
想简化还是可以的,不过要事先定义清楚
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-7-13 11:25:28 | 只看该作者
原帖由 slide 于 2006-7-10 12:49 发表
简洁的方法也有呀,就按照你自己分析的
1类是验证极端的边界值
2类是按照正交方法选择用例
3类是覆盖所有用例

写一篇文档把这3种方法说清楚。

然后在具体设计用例时候,只要说一下按照那种方法来设计,1 ...



恩。有道理。多谢slide的回复。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-7-20 13:30:08 | 只看该作者

采用正交表方法

采用正交表方法,使case的分布很均匀。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-7-28 09:25:37 | 只看该作者
具体问题具体解决
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-8-16 14:59:48 | 只看该作者
8楼说的是对的,应该用正交表,使分布比较均匀,这个这样测比较好,按正交表
A        B        C
0        0        0
1        0        1
0        1        1
1        1        0
把0代表有,1代表无替换得到4个测试用例,舞の月说的虽然也是4个,但是显得分布不均匀,也就是说覆盖的面不如用正交表得到的4个测试用例,显得就主观了些,lz可以再看看多因子多状态的正交表测试方法的例子(比如4状态3因子怎么得到最好的测试用例)
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-20 15:17
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2007-1-31 11:02:46 | 只看该作者
    用正交表法得到初步的测试用例后,如果根据等价类划分,某个因子有多个取值,是否在每一行该因子所在的列为0时,各个取值都要测试一遍,望指教,谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-2-1 14:10:29 | 只看该作者
    如果每个查询条件取值个数不一样的话正交法不适用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-2-3 16:04:11 | 只看该作者

    opinion

    原帖由 lily_liuyun 于 2006-7-7 10:54 发表


    谢谢 舞の月  的意见。

    那 A/B/C 全有,A/B/C全无,不是更简洁吗?会有什么样的可能出现而这种测试不到的错误吗?



    这样会知道查询功能是否完成,
    如果功能实现了,
    没问题,
    如果功能未实现,
    无法定位,
    问题出在哪一个查询条件。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-2-5 14:34:34 | 只看该作者
    原帖由 白菜叶子 于 2007-2-1 14:10 发表
    如果每个查询条件取值个数不一样的话正交法不适用


    正交法也适用于不同取值的,即允许某个因素中有多个水平数。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-2-5 14:40:33 | 只看该作者
    1、这三个条件之间的关系
    A and (B or C) 和 A and B and C 结果安装不同
    2、没有条件,不一定就代表 B为空,可能程序会会处理为 "B=True"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-2-14 09:13:08 | 只看该作者
    以下是我所了解的关于正交法的一点知识,还不足以助我理解它,大家有什么资料吗?能提供给我吗?


    正交试验法的理论基础是正交拉丁方理论与群论。在工作中可用的多因素寻优工作方法,一类是从优选区某一点开始试验,一步一步到达较优点,这类实验方法叫序贯试验法,如因素轮换法、爬山法等;另一类是,在优选区内一次布置一批试验点,通过对这批试验结果的分析,逐步缩小优选范围从而达到较优点,如正交试验法等。科研中普遍采用正交试验法,因其具有如下优点:

    ①实用上按表格安排试验,使用方便;
    ②布点均衡、试验次数较少;
    ③在正交试验法中的最好点,虽然不一定是全面试验的最好点,但也往往是相当好的点。特别在只有一两个因素起主要作用时,正交试验法能保证主要因素的各种可能都不会漏掉。这点在探索性工作中很重要,其他试验方法难于作到;
    ④正交试验法提供一种分析结果(包括交互作用)的方法,结果直观易分析。且每个试验水平都重复相同次数,可以消除部分试验误差的干扰;
    ⑤因其具有正交性,易于分析出各因素的主效应。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-3-9 14:55:20 | 只看该作者
    如果把第二个写为
    A       B      C
    有      有    有
    无      有    有
    有      无    有
    有      有    无
    无     无     无
    是不是会更好些呢???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-3-13 09:51:02 | 只看该作者
    原帖由 lily_liuyun 于 2006-7-7 10:54 发表


    谢谢 舞の月  的意见。

    那 A/B/C 全有,A/B/C全无,不是更简洁吗?会有什么样的可能出现而这种测试不到的错误吗?


    比如B是包括BandC的,即A/B=A/B/C但是你上面的用例是测不出来
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-9-10 17:06:01 | 只看该作者

    呵呵

    大家讨论的很好啊,我正为这个问题头疼呢。
    我基本选择了第二中方法。
    添加了
    无 无 无
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-9-10 17:08:35 | 只看该作者

    呵呵

    win821022说的不错,我就采取的这个方法。

    A       B      C
    有      有    有
    无      有    有
    有      无    有
    有      有    无
    无     无     无
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 09:46 , Processed in 0.075773 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表