51Testing软件测试论坛 's Archiver

默默巫 发表于 2009-2-9 13:58

生命周期半年的项目需求是否有必要写用例?(2009-2-9 )获奖名单已公布

[size=3][i]背景描述:[/i][color=red]对于稳定客户的项目类测试,经常会遇到需求三天一变,两天一变,由于时间周期不是太长,客户需求经常变动,导致BA/PM等都未能及时更新需求,从而给测试组的需求经常是非最新版本,且测试阶段的需求也经常有小变动,导致用例效果不大甚至失效.(可能是针对需求说明书失效,更多情况是针对实际需求-即系统实现方式失效).[/color][/size]
[size=3][color=#ff0000][/color][/size]
[size=2]感谢[/size][url=http://bbs.51testing.com/viewthread.php?tid=131215&page=2#pid1145913][size=2][color=royalblue]会员joycena[/color][/size][/url][size=2][color=black]提供此精彩话题![/color]如果你也有矛盾的问题想提出来和大家一起讨论,[/size][url=http://bbs.51testing.com/thread-131215-1-1.html][size=2][color=red]请点击此处>>[/color][/size][/url]
[size=3][size=2][color=black]说不定下期PK的话题就是由你提出的哦,请快快参与吧![/color]
[/size]

[/size]

[size=4][i][table=400][tr][td][b]奖项[/b][/td][td][b]获奖名单[/b][/td][td][b]奖励[/b][/td][td][b]答案连接[/b][/td][/tr][tr][td]最佳话题PK手[/td][td]Jackc[/td][td][align=center]当当购物卡50元+最佳PK手勋章[/align][/td][td][url=http://bbs.51testing.com/viewthread.php?tid=139464&page=2#pid1165168]39#[/url][/td][/tr][/table][/i][/size]

aman_cao 发表于 2009-2-9 15:40

需求总是在变动的,但变是相对于不变的需求而言的,软件在各阶段,需求总是变化的。有变化,就要记录变更,就要记录对应的用例。这样做可以使需求,用例,结果的可跟踪。

zynuage 发表于 2009-2-9 16:52

不管软件的生命周期是多长时间,写测试用例是必须的。测试的宗旨是使软件的bug降低到最小,对客户的影响最小,如果没有测试用例,测试工程师会想出很多冗余的测试用例,浪费了很多时间,最后有可能漏掉致命的缺陷。

ahu201 发表于 2009-2-10 10:21

必要的前提是代价

1. 正如对方aman_cao所说: "需求总是在变动的", 但显然他曲解了使用了后半句"但变是相对于不变的需求而言的", 我们使用论点的背景是"经常会遇到需求三天一变,两天一变,由于时间周期不是太长,客户需求经常变动".
    如果需求变动很小或者相对很小,我关注的是重新写还是跟踪它的变化?那一点更有价值更有必要? 我们都知道需求决定用例,如果需求变了测试用例必然需要更新, 但是当测试用例"效果不大甚至失效"时,有必要去写么?
2. 而zynuage所说:"不管软件的生命周期是多长时间,写测试用例是必须的",请问写测试用例在软件生命中的哪个周期?请问合理的流程和开发模式又是什么?而将测试的重点放在测试用例上,显然又和辩友的"测试宗旨是使软件的bug降低到最小"是矛盾的,当需求不断变化的时候,如何保证测试用例的可依据性?

下面我提出我方观点:
1. 对于需求变动比较频繁,或者软件生命周期比较短的, 我们测试的依据可以适当进行调整,譬如:i, 最新的需求个功能列表. ii, 公司软件规范要求列表. iii, 软件需求变化跟踪列表.
2. 对于需求变动比较频繁,或者软件生命周期比较短的, 我们测试重点不是测试用例编写, 而是如何快速准确的定位客户的最新需求, 在软件生命周期中可开发协调工作,保证最优的实现, 将项目代价降低到最低,避免重复冗余的劳动.

以上观点, 从软件工程角度来说可能是不合理的,但是在我们大部分国内软件公司中确实就是这么去做的,"存在即为合理", 因为这样的论题背景在软件工程也是要尽量避免的.

-----抛砖引玉,不吝赐教..

pupu840323 发表于 2009-2-10 15:17

测试用例的意义以及适用性

开门见山的说,我认为不需要写测试用例,但我们需要简化版的功能覆盖点。

一、测试用例意义:
    测试用例主要是督促测试人员熟悉理解业务情况,辅助全面回归测试,梳理测试思路,测试用例的好坏,在交叉测试中尤为凸显。
    测试用例的引入,致使测试人员在测试之前就需要对业务很了解,知道如何着手测试,在这个过程中寻找模块间关联点,不断补充进测试用例。就好比油画,通过不断的渲染和填充,才能使我们发表一幅优秀的作品。他的作用就在于让我们深入透彻的了解系统架构和业务知识,以及数据关联性等。
    在回归测试以及交叉测试中,用例让我们可以很快速的想起测试思路和过程,帮助其他测试人员熟悉测试模块,检测其他人员的测试用例是否全面等。有很多时候,我们往往会突然冒出一些有亮点测试思路,但人又偏偏是记性差的生物,到后面也就忘记的干净,测试用例的记录,帮助我们将所有的测试思路和过程记录,辅助我们进行记忆。举个例子,一个人拿着模板来写字,您说能不容易吗。交叉测试中,别人对你的测试模块一无所知,再讲一遍,不仅自己感觉繁琐,也影响进度时间,而好的用例不需要讲解,就可以很好的引导测试人员进行测试工作。举个例子,盲人走路很困难,但有了导盲犬后,他们就可以非常方便的出行。
    通过上面这些,可以看出测试用例的重要性,可以说,测试用例是不可缺少的。

二、测试用例适用性
    测试用例如果想实用,那麽他所带来的工作量就会非常大,我们需要很多的时间来完善和补充,所以如果项目变动很小,那麽测试用例将是长久性的保持效用。但如果项目变动大,则测试用例的维护成本将使测试质量明显下降。
    通过这些我们可以看出,测试用例在这种情况下又是不能引入的。

三、解决方法
    为了解决测试用例的意义所带来的效益,测试用例适用性所带来的缺陷,我认为应该引入功能覆盖点来平衡这两方面因素。
    功能覆盖点是对所测试项目功能点的一个简要概括,编写功能覆盖点可以让我们去熟悉业务系统,平且将功能点,关联点等简单罗列,让我们纵观测试的广度和深度。在需求变动情况大的情况下,维护功能覆盖点的成本要远远小于测试用例,他所带来的效用是实效而灵活的。

    综上所述,测试用例在需求变动大的项目中,是不需要引入的,而应该引入更为实效的功能覆盖点,辅助测试工作的开展和考察。

62369432 发表于 2009-2-11 11:33

用例是必需的.软件在用例在.如果时间赶,那只能在后面补咯

candy_83 发表于 2009-2-11 13:48

追踪需求进行测试

编写维护测试用例是需要很多人力和时间成本的,如果维护用例的速度都赶不上需求变化的速度,在这种情况下不如根据需求来测,而不是测试用例,日常追踪需求的变化,根据需求的变化进行对应的测试。当然测试工程师必须要有责任心,在没有用例的情况下也能尽可能地进行各种各样的有效测试,只要保证需求100%被覆盖就可以了。

yetties2005 发表于 2009-2-11 17:50

觉得还是有必要去设计测试用例的。自由测试避免不了会漏测
随着需求的变更在跟着更改测试用例。前提测试人手要充足

不要长大的小孩 发表于 2009-2-11 17:59

有必要的,侧重点偏移下。

我认为还是有必要的,不能因为周期短而忽略这部分,对于管理来说,会有漏洞的。
至于怎么写,整个项目组需要达成一直,尽量简化,模板化,节约成本。
而至此引发了一个问题,版本的管理问题,因为需求变更的频繁,版本的管理要跟上,不然写起用例来,会跟不上进度。
拙见,:D

b45993e 发表于 2009-2-11 18:00

:D 扔有必要写用例,不能因为时间短就忽略.

ipkh840122 发表于 2009-2-12 10:52

按照CMMI的要求,需求进行变更后,是需要做记录的,所以应该要写用例。

wadextzy 发表于 2009-2-12 15:03

必要

非常必要
测试用例是需要写的!!

hblinna 发表于 2009-2-12 15:05

有必要写用例,但可以写简化用列

虽然需求在经常变动, 但一个相对小的时间里需求总是稳定的,所以用列还是需要写,不仅是在写用列的过程中可以发现一些细节性的问题,而且还可以让测试人员更好的理解需求。由于需求经常变动,我们的用列也可以稍微简化,可以只写到没有用列应当关注的点,测试步骤就可以不写。呵呵个人观点。:lol

hai105 发表于 2009-2-12 15:21

我认为仍有必须写测试用例,因为通过测试用例除了可以发现BUG,同时还要依据用例对BUG进行重现,如果不修改测试用例,仅仅通过个人的想象来测试,很难做到BUG的重现,而且有了测试用例,其它人员也能容易的接收对软件的测试工作。同时随着需求的改变,修改测试用例,也更加深了测试人员对需求的理解。

maclehappy13 发表于 2009-2-12 15:21

对于需求变更非常频繁的项目可不用花过多时间在测试用例上面,如果非得写用例,就会因用例搞人仰马翻。测试活动是靠测试计划指导的。所以只要在需求变更时候,根据需要调整测试计划即可。但需求变更后是必须记录的。测试覆盖还可以通过需求的覆盖来保证。我在现在中就是这样做的。非常赞同pupu840323说的前两点。

wsr123321 发表于 2009-2-12 15:57

必要:但可以分情况编写或补充

个人认为:在项目时间和人员允许的的情况下可编写测试用例;条件不具备的情况下可以在项目完成后补充。对照需求变更,用例起一个项目跟踪的作用,可在项目中有效重复利用。

namisang 发表于 2009-2-12 16:08

没有必要写
费神浪费时间.

sweetxmy 发表于 2009-2-12 16:10

写需求(或测试用例)是为了更好的确认测试目标和提高团队工作能力

[b]写需求(或测试用例)是为了更好的确认测试目标和提高团队工作能力[/b]
[u][/u]

1、[b]很多开发团队认为写不断变化的需求(或测试用例)是浪费时间,何不用这个时间做开发和测试[/b]。
但事实是,随着时间的推移,同时因为没有需求文档(或测试用例),每个人记住的资料又非常有限(谁都不能否认自己的记忆力随着年龄的增长不断老化,二者人总有个头痛脑热的时候,有时如果不是开会或小组讨论也许会遗忘通知某些人),最差的后果一有分岐导致大家找PM或客户做确认。

2、[b]由谁来写需求(或测试用例),一个小团队并没有划分真正写需求文档(或测试用例)的人[/b]。
做为测试人员,当公司的开发未完成这项任务时,只有测试人员自己整理需求(或测试用例),在测试过程中不断完善需求(或测试用例)。

3、[b]无论谁写文档(或测试用例),从长远来看。对个人或公司都是一笔很大的财富[/b]。
一个经常写需求(或测试用例)的人,势必非常了解所写项目的功能,当二次出现同类的需求(或测试用例)时,可以在第一时间做出有利的判断(因为之前有失败的经验做后盾)。
对于一个新人,是锻炼和提升自我的最佳机会。
对于公司是一大笔无形资产。

4、[b]如果一个项目做好了形成公司的产品,原有的需求文档(或测试用例)优势就更大了[/b]。
当团队进行2次开发或升级时就有参照的依据,可以屏弃不适合的模式,寻求高效益的功能。
如果是外资企业,国内做好了需求(或测试用例),想想2期开发只能由国内开发(测试)团队来完成,可以说增加大家的工作机会。(现在可是经济危机)

个人观点仅供参考,希望和大家一起讨论。

[[i] 本帖最后由 sweetxmy 于 2009-2-12 16:13 编辑 [/i]]

milklybaby 发表于 2009-2-12 16:22

来尝试一下

这种情况在做客户现场项目时候实在是太常见了。

首先批评一下公司方的客户联络人员,对客户没有一点影响力,就这么容忍他随便改需求吗?带来的工作量和不断的返工次数,如果对方不付钱,你们老板不会吹胡子瞪眼吗?

其次既然现象已经发生,为了避免开发人员和测试人员都跟着重复劳动疲于追命,那就做一个好的需求跟踪矩阵吧,做不到?偶说第三点

再次测试人员不能够只拘泥于需求规格说明书啊,当然测试用例的第一版还是要依据这个的,后面就得多靠自己把握啦,灵活多变是必须得能力哈。

最后,该写的还是写吧,免得最后会发现统计工作量时没有必要的支撑数据。

光明 发表于 2009-2-12 16:32

支持

谁都不能否认自己的记忆力随着年龄的增长不断老化,二者人总有个头痛脑热的时候,有时如果不是开会或小组讨论也许会遗忘通知某些人

郁闷的我 发表于 2009-2-13 13:26

仍有必要写用例吧.

博一笑 发表于 2009-2-13 14:30

我个人认为要写用例,但是我有个疑问啊,有没有必要实时得去改用例,就是需求一变,用例就要修改,这样得人力投入是不是比较不值得

atomtiger 发表于 2009-2-17 16:10

我觉得还是要写测试用例的

如果变动的很频繁,甚至1,2天,半天一变的。
但变的也大概只会是细节。总的目标不会变。

哪怕是简单的写写,写上测试目的,内容,测试过程,即使很简单很大略的写写。也是要写的。

测试的工作是相对比较繁琐,比较要求细致完善的。
写下来,其实也是为了有个头绪。有个工作的路线。

jenvee 发表于 2009-2-17 16:20

更新修改原有用例

如果客户经常性变更需求(增加),那么必须重新添加用例;如果只是在原有基础上更改需求的话,可以不用添加新的用例,只需在原来用例基础上作以修改,这样就产生新的用例了,而且投入的精力,物力,财力也很少。

lansnor 发表于 2009-2-17 16:48

就我公司的做法,用户验收项目的时候,是要测试用例的,因此不论需求怎么变化,测试用例还是要编写,当然我公司的做法是,项目后期再写用例,这样改动较小。

tinayuan1981 发表于 2009-2-17 18:29

当然要写,测试用例是写给自己看的,不写自己不就乱了?

Okayde 发表于 2009-2-17 21:36

有必要写用例,用例是用来保障测试的质量

用例是根据需求来设计的,如果需求改变的话,也可以根据改变的需求,跟踪到具体的用例来修改。我觉得用例没必要写太复杂,不过一定要写,而且要与需求相匹配,这样可以防漏测,也防止变更。

月野幻儿 发表于 2009-2-18 10:40

没有必要写,耗力.
需求三天两头变,自己随机应变.

b45993e 发表于 2009-2-18 10:44

需要编写

wuyu702 发表于 2009-2-18 13:57

写还是有必要的,关键是怎么写,什么时候写:
首先,我们要搞清楚为什么写用例,依据是什么。我觉得写用例有三个目的:
一个是为了更好的理解需求,只有在写用例的过程中我们测试人员才能深入的理解某些需求。二是为了测试过程中能够更好的方便快捷的进行测试。
三是能够为下个版本的测试提供一些帮助。

如果需求变动很频繁,可以说我们如果一开始就去写用例的话,变一次需求就改一次用例,其实达不到方便快捷的目的。深入理解需求也谈不上,因为需求不停的变,你理解了又变了。。。所以呢,我一般遇到这种项目,都是先会把大概的用例写出来,测试的过程中,不停的添加用例。最后测试完了,用例也出来了。。下次测试忘记了。。还是可以依据这次的用例去给出些指导。

jessies 发表于 2009-2-18 14:29

用例是必须的,否则无法保证整个测试过程是否符合需求

必须要写,不写用例,你何以保证你的测试是满足需求的?何必保证你的执行过程是正确的?
对于需求经常变的项目,为什么不让需求进入到稍微稳定的阶段再进入用例的编写?需求变更是不可避免的,但是有时候,需求变更的频率是我们可以控制的。
用例天天修改可能会浪费一些时间,但是对于整个项目来说还是有必要的,可以用一种简单的方式来写用例,保证前后可追溯。

兆隆8032 发表于 2009-2-18 14:44

测试用例可以是证据

没有测试用例,在一些偶然出现缺陷即不可重现的缺陷,是很难被记录下来的。
在向开发人员说明曾出现这个错误的时候,没有证据,没有证据谁相信啊!自己做了事情反而没有得到效果,这样干工作太笨了。

猫猫的拖鞋 发表于 2009-2-18 16:31

有人力就写,没人力何必写。

hushiping2222 发表于 2009-2-18 16:59

有必要写

namisang 发表于 2009-2-18 17:10

[quote]原帖由 [i]wuyu702[/i] 于 2009-2-18 13:57 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=1164156&ptid=139464][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
写还是有必要的,关键是怎么写,什么时候写:
首先,我们要搞清楚为什么写用例,依据是什么。我觉得写用例有三个目的:
一个是为了更好的理解需求,只有在写用例的过程中我们测试人员才能深入的理解某些需求。二是 ... [/quote]
不错不错.

namisang 发表于 2009-2-18 17:10

[quote]原帖由 [i]wuyu702[/i] 于 2009-2-18 13:57 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=1164156&ptid=139464][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
写还是有必要的,关键是怎么写,什么时候写:
首先,我们要搞清楚为什么写用例,依据是什么。我觉得写用例有三个目的:
一个是为了更好的理解需求,只有在写用例的过程中我们测试人员才能深入的理解某些需求。二是 ... [/quote]
不错不错

wxm2004734 发表于 2009-2-19 08:57

唉,写简单一点。没有规矩,不成方圆。要是你能控制过来,你NX

默默巫 发表于 2009-2-19 11:59

希望大家都讨论起来.

beryl_lin 发表于 2009-2-19 13:15

有必要写测试用例

测试的目的就是尽可能的减少系统的bug,确保软件的质量,好的测试用例是保证测试质量的前提。
如果没有测试用例,对于相对比较复杂的功能,尤其是多人同时参与测试的情况下,很可能忽略某些很重要的细节,从而放过了很多bug。严格的讲,不仅需要测试用例,而且测试用例必须经过多人评审,确保其质量才行。需求变动,测试人员拿不到最新的需求,但这不是不写测试用例的借口,相反,应该尽可能的督促相关人员以拿到最新的需求,根据变动及时更新测试用例。:)

Jackc 发表于 2009-2-19 13:49

敏捷性测试团队才是王道

1、LZ的题目中缺少两个关键属性:项目的规模(包括需求变更规模)和测试资源

2、浅析项目规模和测试资源的影响
    其实LZ这个题目最大的争议点就是在这里,如果这两个属性可以确定,相信大家的思路会清晰很多。下面偶只分两类进行简单的分析:
    A、项目规模大(需求变更规模大),测试资源少:按照CMMI 5中测试用例的编写标准来说,限定6个月的时间。测试团队需要完成测试策略/计划的拟定和评审、测试用例的设计/评审/修改、变更需求的评审/修改、新需求测试用例的设计/评审/修改...
      显而易见,剩余还有多少时间完成测试执行的跟踪和改进?即使前期能勉强跟进,偶相信在后期也只能疲于奔命,敷衍了事,什么“测试驱动开发”也只是梦中花而已。
       国内很多企业都是这样的情况,相信N多测试同仁对此是深有体会。
    B、项目规模小(需求变更规模小),测试资源多:人多好办事,只要Test Manger不是个草包,将测试工作进行有条理的细分,责任到人,在测试准备阶段选择有利于修改的测试流程(包括简易需求和测试资源变更流程以及便于变更的测试用例模板等等),在测试执行阶段,注意需求收集已经各部门以及客户之间的信息交流,还是很容易搞定的。

3、浅析正方观点的风险:
    A、如正方wuyu702 所说:“先会把大概的用例写出来,测试的过程中,不停的添加用例。最后测试完了,用例也出来了。。”。
       什么叫大概的用例?
      用例最基本的要求就是任何测试人员都可以操作,敢问你如果写出这样缺斤少两的用例,当你临时有其他更重要的任务,然后把这块测试工作交付给其他人来做,能够保证别人肯定能看明白?
    B、又如正方Okayde、wuyu702、jessies、兆隆8032等提出的:用例是用来保障测试的质量,以及对测试执行的指引。
       测试用例是唯一的保障产品/测试质量的手段?没有测试用例就无法指导和跟踪测试执行了?
       当然不是,这里偶引用一个只有部分公司在用的一个概念“测试规程(test procedure)”。它是个提供详细的测试用例执行指令的文档。测试规程更注重测试的流程、方法等比较泛的内容,以方便对测试用列的编写有一个整体的概念和把握。不同的公司规范、要求和详尽程度可能不同。
       测试规程与测试用例的区别:理想化的测试用例确实需要很多测试数据集合,但是现实中对某一软件进行测试时,由于涉及的面太广,无法一一列举出所有数据,所以要根据公司的规范来做相应的调整。所以,测试规程的文档编辑量较轻,但是只适合熟练的测试人员执行,而测试用例的执行者可以使任何人。
       楼上很多同仁谈到的根据实际情况写简化用列的做法实际就是将设计测试用例变为设计测试规程,然后以测试规程来指导测试执行,提供测试质量(比如测试覆盖率)的评估。但是楼上的同仁没有对简化测试用例提出标准?如果一个测试团队里有3、4个简化标准,大家的测试用例简化的“度”都不一致,岂不乱套?
    C、2A中描述的项目情况,仍采用设计常规的测试用例的方法,那么只能有两种结果:a、披着“测试用例”的外套,却是到处缺胳膊少腿,敷衍了事,难以达到测试用例的覆盖标准;b、忙于测试用例的编写,无法在测试执行中完成测试的跟踪与改进,每天都疲于奔命,最终完成N个项目后,测试团队的水平仍然停滞不前,经常受到项目组的“鄙视”。

4、偶的观点:敏捷性测试团队才是王道,项目不同测试流程不同。针对LZ的项目,选择测试规程代替测试用例是明智之举。下面偶只针对与设计测试规程有关的部分提出一个简单的方案。
    A、前提:测试团队组成基本由熟练测试人员组成(就软件黑盒测试来说,加入团队半年以上的就可以叫做熟练了)。统一规范的测试流程(相信这个只要是稍微正规点的公司都有)PS:此流程只适用于2B的情况,并且可以进行裁减。有些公司是将标准流程做成checklist形式,方便项目组选择。
    B、策划:测试负责人根据项目实际情况在测试准备阶段裁减出适用于该项目的测试流程,并进行评审。其中有两点必须说明:测试执行依据采用测试用例还是测试规程或者两者皆用;测试用例(测试规程)设计的标准。
    C、变更:满足以上两个条件,如若遇到实际需求被迫变更,则修改相应测试规程,并评审即可。修改测试规程和修改测试用例在工作量上存在很大的区别,偶举一个例子:
       为了简单,用例和规程的格式就忽略了,只写具体输入步骤一部分,书写格式也比较随意。
       原需求:编辑框A中允许输入最多20个中文
       规程的输入步骤:
       只输入0~20个中文,点击确定,检查结果。备注:其中0、20必须测试
       输入21个中文,检查结果
       输入非中文字符,检查结果。备注:包括英文/特殊符号...
      混合输入中文与非中文字符,检查结果。备注:中文字符在第一位的情况必须测试
       ...
      测试用例的输入步骤:
       不输入任何字符,点击确定,检查结果
       输入10个中文字符,点击确定,检查结果
       输入20个中文字符 ,点击确定,检查结果
       输入21个中文字符,点击确定,检查结果。
       ....(不写了,N多)
       假如修改需求:编辑框A中允许输入最多20个中文或数字
       规程的输入步骤:
       输入0~21个中文或数字,点击确定,检查结果。备注:数字/中文混合输入、0/20/21位字符输入必须测试。
       ....
      假如换成测试用例,那就只有....慢慢写了~
   D、跟踪/评估:其实从4C中的例子可以看出,测试规程是可以对测试质量进行跟踪和评估的。当然还有其他很多测试质量评估方法,比如缺陷分析技术,详细信息请看[url]http://bbs.51testing.com/thread-117496-1-2.html[/url]

小结:综上,LZ所说的问题可以使用测试规程代替测试用例来解决。
建立敏捷性测试团队,不“墨守成规”的进行测试活动,才是测试的王道

[[i] 本帖最后由 Jackc 于 2009-2-19 14:02 编辑 [/i]]

页: [1] 2 3

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.