» 您尚未 登录   注册 | 社区服务 | FTP中心 | 帮助 | 社区 | 无图版 | 测试百科  | 测试Blog 
软件测试基地论坛 -> 新手园地 -> 请教如何组织测试用例
 XML   RSS 2.0   WAP 

--> 本页主题: 请教如何组织测试用例 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
晓晴


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 45
基地声望: 4 点
基地币: 6288 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:7(小时)
注册时间:2007-02-11
最后登录:2007-04-25
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

请教如何组织测试用例

最近要给一个项目写测试用例,可是面对复杂的系统,却不知如何下手。请大家帮帮忙。
  这个项目的功能类似货物入库出库。各功能模块界面组成要素有些相似。我在想是按功能模块设计呢,还是提取各功能模块中相似的地方共同设计一个用例。如果按各模块分别设计用例,那有些功能类似的用例就会重复。(这样会不会冗余?)记得以前看过说用例设计得要具有通用性,这样有利于用例得复用,就像编码一样。可若为功能类似的共同设计一个用例,那对于不同模块的预期结果和实际结果该如何写呢?举个例子,比如模块1和模块2都有“添加”、“保存”、等操作。若模块1的“添加”操作实际结果符合预期结果,而模块2不符合,那在一个用例该如何写呢?是不是分模块写出?那这样是不是不好维护呢?还不如就按第一种方法设计。啊,头疼。
  还有我想把界面测试用例与功能用例分开,如果是按功能模块来组织用例的话,每个模块的用例大的方向分为两种,即界面用例和功能用例。请教一下大家这样可以么?
  希望我把自己的问题描述清楚了,我是新手,希望大家多多帮忙啊!先谢谢了!  

[楼 主] | Posted: 2007-02-27 13:34 顶端
土土松


该用户目前不在线
级别: 论坛版主
精华: 7
发帖: 1689
基地声望: 246 点
基地币: 2765 Bug
基地贡献: 6 点
好评度: 48 点
在线时间:1031(小时)
注册时间:2005-10-30
最后登录:2007-10-29
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



首先需要整理思路。不过从你的描述看来,思路不怎么清晰。

无论系统是什么类型的,是否有特定的针对性,我希望我的见解能给你一些启迪。

我们可以把情况弄得复杂一些,比如你的系统涉及数据库和多表。

首先,把前台的界面操作和后台的数据库剥离开来分析。

1,前台界面

自己画一张图,把模块细分成流。比如添加就是添加,删除就是删除,编辑就是编辑。然后指向某个后台的表的字段,如货物ID。

2,后台数据库

最好能问开发人员要来数据库字典或者E-R关系图,以及特殊字段的计算公式。自己制造数据完全摆脱前台界面的干扰,进行数据库验证。比如 1+2=3,就是1+2=3,不要从前台的输入和显示去辨别。

3,组合测试用例。

按照向上堆积的原则和由简到繁的原则,配合清晰的流程逻辑去编写。

所谓清晰的逻辑,在数据库操作的程序中,永远遵循 “查询”——“添加”——“修改/编辑”——“更新”——“删除”——“查询”的顺序去验证,以免编写出过多冗余的测试用例。

向上堆积的原则和由简到繁的原则,就是从模块到集成再到系统的过程。

比如你的问题:“若模块1的“添加”操作实际结果符合预期结果,而模块2不符合,那在一个用例该如何写呢?”

那么至少写3个测试用例:针对模块1,针对模块2。这两个是“向上堆积”的“下层建筑”,也就是“简”。

然后写组合测试用例,针对模块1影响模块2的测试用例。这个就是“上层建筑”。

一个例子: 前台一个模块1,显示操作员姓名,那么这个结合后台,就是测试“人员管理”子系统;

另一个模块2,显示当日操作交易明细,那么这个结合后台,就是测试“交易明细”子系统。

而这两个子系统至少要涉及到2张后台的表。那么表和表之间的主键及约束关系是什么呢?

显然,只有模块1和模块2的前后台功能都通过,才有意义去执行组合测试,测试后台2张表的关系,再反馈前台的显示信息比对。

简单的说:

        模块1组合模块2(操作员对应交易明细)
                |
                          /\
  模块1(操作员管理系统)模块2(交易明细系统)

至少拆为3个测试用例。

如此类推,记住前面我说的,E-R关系和自己画的前台流程图,便能把思路整理干净。


工作量很大,也很烦,希望你能有良好的心态。

前期工作完善了,后期也就轻松了。:)  


MSN:ss2maomao@hotmail.com
我的博客已经升级:
http://hi.baidu.com/lidanny
欢迎莅临~~!!~~

[1 楼] | Posted: 2007-02-27 16:52 顶端
土土松


该用户目前不在线
级别: 论坛版主
精华: 7
发帖: 1689
基地声望: 246 点
基地币: 2765 Bug
基地贡献: 6 点
好评度: 48 点
在线时间:1031(小时)
注册时间:2005-10-30
最后登录:2007-10-29
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



补充,同样的道理:“系统管理”——“入库”——“仓库管理”——“出库”——“仓库管理”——“明细”等等,子系统的逻辑,自己也能整理一下,以免出现你说的冗余,对不?

MSN:ss2maomao@hotmail.com
我的博客已经升级:
http://hi.baidu.com/lidanny
欢迎莅临~~!!~~

[2 楼] | Posted: 2007-02-27 16:54 顶端
晓晴


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 45
基地声望: 4 点
基地币: 6288 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:7(小时)
注册时间:2007-02-11
最后登录:2007-04-25
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

感谢土土松的讲解!

今天一上班就看到了土土松给我的讲解,小女子在此真是万分感谢啊! 不过到现在才能抽出时间来表示感谢,呵呵。
  你说得很对,我就是思路太不清晰了,不知道该怎么整理。虽然你说得很详细,可真是不好意思,我还不是很清晰。 不过对于第3点,还是给我了一些启迪,让我有了一些思路。对于第1、第2点,我是完全不太懂。
  首先,你说把前台和后台数据库剥离开来,把模块细分成流。然后指向某个后台的表的字段,如货物ID。不太懂这句话的意思,这样做的目的是什么呢?为什么要“指向某个后台的表的字段”?这里你说的是测试前对系统的一种分析方法么?
  其次,你说的第2点中“自己制造数据完全摆脱前台界面的干扰,进行数据库验证。不要从前台的输入和显示去辨别,”如何不管前台而进行数据库验证呢?是不是看各个相关联的表是否关联正确?那为什么不管前台呢?这样做的目的是什么?若从前台辨别会有什么不好的影响?还有对于第2点我理解是一种测试方法,或许在实际测试中我会用,但若要写成测试用例,该怎么写呢?我又晕了。
  其实这个项目是对以前版本的更新,只是更新比较大。界面完全变样,部分功能也有所改动。目前只是完成了需求分析和数据库设计,新版本的界面和功能还没开始实现。一般是不是在这样一个阶段就开始设计测试用例呢?
  似乎我的问题有些太多了,实在是好多东西都不懂啊。我感觉特不好意思,你给我这么认真详细的讲解,我还是不太懂。 不过还是要十分感谢你啊,我会再把你说的好好琢磨琢磨。
 

[3 楼] | Posted: 2007-02-28 13:38 顶端
土土松


该用户目前不在线
级别: 论坛版主
精华: 7
发帖: 1689
基地声望: 246 点
基地币: 2765 Bug
基地贡献: 6 点
好评度: 48 点
在线时间:1031(小时)
注册时间:2005-10-30
最后登录:2007-10-29
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



咳嗽一下,咳咳。。

我想想我怎么说清楚哈,可能老了,表达力不好。。。


MSN:ss2maomao@hotmail.com
我的博客已经升级:
http://hi.baidu.com/lidanny
欢迎莅临~~!!~~

[4 楼] | Posted: 2007-02-28 13:42 顶端
晓晴


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 45
基地声望: 4 点
基地币: 6288 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:7(小时)
注册时间:2007-02-11
最后登录:2007-04-25
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



呵呵,你回复的好快啊!慢慢想,没关系。 给你个西瓜润润喉,呵呵。
[5 楼] | Posted: 2007-02-28 13:48 顶端
土土松


该用户目前不在线
级别: 论坛版主
精华: 7
发帖: 1689
基地声望: 246 点
基地币: 2765 Bug
基地贡献: 6 点
好评度: 48 点
在线时间:1031(小时)
注册时间:2005-10-30
最后登录:2007-10-29
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



我之前说的第一第二点,是为了第三点的测试用例组合作准备的。

我先来举例说明一下:

比如一个前台界面上有一个按钮“添加”,有一个输入框来输入内容,还有一个表格来显示所添加好的内容。
这3个控件构成了一个表面看似简单的界面。当用户输入内容并按下“添加”后,表格内要显示出添加好的内容。
实际上,在这个程序中,很可能,“添加”按钮执行时,其代码规定,先把输入框的内容加入后台数据库表中,表格控件随着“添加”按钮底层的代码去刷新读取数据库表中的内容并显示。如果这样的话,其实一个按钮执行了从前台到后台再到前台的复杂过程,所以一定要把它剥离开来讨论。

假设,我们输入 A + B 在这个输入框中,按添加之后要分别显示出这两个公式的计算结果。如果用户输入 2+2 那么应该在前台表格中显示一个 4。 但是程序设计时,后台数据库中的代码不是 A+B, 而错写成了A*B,但是结果也恰巧是4。 如果不剥离前台和后台,我们很可能认为测试是通过或者是不通过的。其实,仔细思考之后,我们可以发现,其前台功能是通过的。错的,是后台。因为前台既能执行“添加”的代码,又能从后台数据库中把数据读取出来,错的只是后台的程序。

实际上,数据库的计算比这种情况复杂的多。

那么设计测试用例时,前台的界面,我们只要写 按“添加”按钮,预期结果“能在表格控件中读取**表的**字段中的内容”。

至于后台的,我们就要思考,**表中的**字段,是怎么计算出来的。我们可以使用数据库工具,或者设计其他测试数据,比如2+5 和2*5,一看就能知道是后台出现问题。

这样,我们把问题分离,就不会一棍子打死,解决问题也有针对性。

再看看:
1,前台界面

自己画一张图,把模块细分成流。比如添加就是添加,删除就是删除,编辑就是编辑。然后指向某个后台的表的字段,如货物ID。

2,后台数据库

最好能问开发人员要来数据库字典或者E-R关系图,以及特殊字段的计算公式。自己制造数据完全摆脱前台界面的干扰,进行数据库验证。比如 1+2=3,就是1+2=3,不要从前台的输入和显示去辨别。

能知道我的意思不??

至于后台的测试用例,可以写成:

INPUT 2和5, 预期OUTPUT 为 7 ,(不是10。。)

当然,实际上的情况,要你自己去设计了,我只是告诉你怎么去剥离他们。


当前台和后台都通过了这样简单模块的测试之后,我们需要组合测试用例。因为加上业务逻辑,很多模块都有相关性,这个我想你知道。

问题又回到了上面,测试要从简单的出发,堆积成复杂的集成测试。

于是这个例子中,集成测试的测试用例可以组合成类似:

在输入框中输入《数据》,按“添加”, 显示《结果》

预期结果:每次都能从后台**表中的**字段中刷新读取《结果》(结果=A+B),并正确显示在表控件中。

注意:我的例子极不规范,只是例子和思路!!嘿嘿   不要模仿哦。

祝你顺利。


MSN:ss2maomao@hotmail.com
我的博客已经升级:
http://hi.baidu.com/lidanny
欢迎莅临~~!!~~

[6 楼] | Posted: 2007-02-28 14:07 顶端
土土松


该用户目前不在线
级别: 论坛版主
精华: 7
发帖: 1689
基地声望: 246 点
基地币: 2765 Bug
基地贡献: 6 点
好评度: 48 点
在线时间:1031(小时)
注册时间:2005-10-30
最后登录:2007-10-29
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



不晓得这次你能明白多少,我感觉自己衰了。。。呵呵。。。嘴巴越来越笨了。。

MSN:ss2maomao@hotmail.com
我的博客已经升级:
http://hi.baidu.com/lidanny
欢迎莅临~~!!~~

[7 楼] | Posted: 2007-02-28 14:08 顶端
晓晴


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 45
基地声望: 4 点
基地币: 6288 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:7(小时)
注册时间:2007-02-11
最后登录:2007-04-25
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



谢谢土土松,这次我明白多了!看完了你的解释,我有种恍然大悟的感觉, 以前都没怎么考虑过后台的问题,只是在界面上乱点一通(光这都快把我点晕了), 呵呵,谢谢你的指教啊。看来我不光思路不清晰,思维也不缜密啊!还需多动脑,多练习!
    最后我想说不是你衰,嘴巴笨啊,实在是我问题多多啊,你看我的头像就知道了,呵呵。要你费脑筋组织语言,辛苦拉!

[8 楼] | Posted: 2007-03-01 10:09 顶端
土土松


该用户目前不在线
级别: 论坛版主
精华: 7
发帖: 1689
基地声望: 246 点
基地币: 2765 Bug
基地贡献: 6 点
好评度: 48 点
在线时间:1031(小时)
注册时间:2005-10-30
最后登录:2007-10-29
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



_ 味道不错,哈哈。

一起努力吧,偶也是一只小菜鸟。。


MSN:ss2maomao@hotmail.com
我的博客已经升级:
http://hi.baidu.com/lidanny
欢迎莅临~~!!~~

[9 楼] | Posted: 2007-03-01 11:10 顶端

软件测试基地论坛 -> 新手园地




软件测试基地上海测仕信息技术有限公司旗下网站
Copyright © 2005-2007 Cntesting.com, All Rights Reserved
沪ICP备06057721号

Powered by PHPWind Code © 2003-06 PHPWind
Total 0.254933(s) query 5, Time now is:12-02 08:07, Gzip disabled
You can contact us


每日一句:Loading...