黑盒测试如何保证需求的覆盖度?(08-02-22)
通过最近工作我体会测试覆盖度是取决客户对软件的要求,客户专注是什么方面,有些小错误是客户就这样想还是我们自己想象出来得结果,现在大多数软件都不是完全按照软件流程在走,很多时候需求分析是在不同时期,软件需求是不同,所以对于软件质量要求不同。好像谈走题咯,好,现在回答主题。
我觉得为了保证黑盒测试覆盖率,首先得分析下软件,可以我们要分那几个模块来编写test case,或测试点,分析好测试点后,我们开始写个List, 看下我们还有什么遗漏的,这个可以是设计test case得阶段,看这个点是等级来分析这个地方test case数量,内部覆盖方法可以参考等价划分,边界值等方法,我觉得我们还是要多想些异常的操作方法,异常得方法就可以找到很多遗漏,在不断多模块了解,我们对很多不同操作都可以做些尝试,这里面就隐藏问题。
黑盒测试如何保证需求的覆盖度?(08-02-22)
看到楼上诸位朋友各抒己见,自己也按耐不住啦!说一下自己在工作中对本期问题的一点愚见。首先,要对需求理解全面、准确,以便找出测试点,包括明确的和隐含的,功能方面的、非功能方面的,还有业务流程方面的;非功能方面又分安全、界面、性能等;
其次,与最终用户、需求分析人员、设计人员及开发人员的交流沟通,便于解决测试需求分析中遇到的疑问,形成全面的测试需求分析,明确我们的工作内容;
第三,采用一些教材或资料文档中提到的黑盒测试常用的测试方法,如边界值法、等价类、因果图等,设计出正常及非正常两类测试用例,重点是非正常的测试用例,同时考虑非功能性方面的验证用例;
第四,再次结合需求文档对用例的集中评审,确保个别工程师工作的疏漏及误解。
差不多就这么多吧,具体项目具体分析,在实践中不断更新、积累才是硬道理。
黑盒测试如何保证需求的覆盖度?(08-02-22)
也来谈谈我的愚见。黑盒测试最重要的就是功能测试了。被测试的产品能不能满足客户要求得业务功能是最要关注的。所以,业务知识的学习就显得特别重要。吃透业务,了解用户需求,是我们达到高测试覆盖度的基础。
1).一拿到测试任务,就要全面的去了解此产品/功能相关的业务背景,学习业务知识,知道用户为什么要提出这样的需求?是为了解决什么问题。可以找有相对业务背景、对业务比较熟悉的人进行讲解培训。
2).分析开发人员编写的需求规格说明书,了解系统是如何实现业务的。并用我们已经掌握的业务知识,批判的看说明书,与开发设计人员对说明书一起进行讨论。
3).初步了解需求后,大概得看一下产品/功能(不测试,只是大概的了解一下系统界面、业务如何流转。因为需求规格说明书往往和系统实现是有一点差距的。)。然后结合需求说明书开始设计测试用例。
4).功能测试用例设计完后,与开发工程师、需求分析师进行三方评审。这很重要,通过评审,你能让别人了解你的测试思路,别人也能提出你用例中疏漏的业务情况或一些业务逻辑。因为每个人对业务的了解程度不一样,看问题的角度也不一样。测试工程师根据评审结果,再去修改测试用例,然后发送参与评审的所有人再次审核,都认可后。测试用例编写暂告一段落。
5).除功能测试用例外,还要设计业务测试用例,即该产品所服务的行业、具体的业务情况。功能测试用例是针对系统的,业务测试用例是针对业务的。系统是为业务服务的,只要满足了基本的业务需要,才是一个可用的系统。所以需要模拟正式的业务情况,对整个产品进行测试。可以找需求分析人员,或专门的业内人士协助。
6).在测试过程中,有时候会发现需求规格说明书与系统实现不一致的情况,需要向开发工程师、需求分析师确认,如有必要,可以要求他们向用户确认。根据反馈结果来及时修改我们的测试用例或系统实现方式。
全覆盖是不大可能的,只能通过我们的努力去提高测试覆盖率。欢迎大家各抒己见,共同借鉴。 个人认为要保证需求的覆盖度必须要深入理解需求 看了上面高手的分析,真是受益匪浅啊~!~
我也同意首先要透彻理解需求文档,把不明白的地方与开发人员、设计人员沟通。
理解完需求后,我们就得开始写测试需求了,在测试需求了,我们将对软件或项目进行庖丁解牛的手法,将其功能模块细分出来,然后将模块中的功能点分解出来,我们得保证最后的功能点为最小分子,不能再进行下一步分解拉。(当然我们可以借助一些测试需求编写工具拉)测试需求细分出来后,剩下的就是编写测试用例了。每个最小分子需求对应写一个测试用例,用例中要将能想到的方法步骤全部写出来,大家开会讨论,不漏掉。执行“不抛弃任何一个方法、不放弃任何一个idea”。至于相关联的功能模块之间,我们也得考虑设计测试用例。(这些只针对黑盒测试的功能测试)
个人见解,大家一起讨论学习!!:victory: 紧跟需求分析! 仅代表个人观点:
在一个平面中,把用户的需求看成一个个零散的点。而需求覆盖度,就是包围了部分点的一个个的圈。需求覆盖度不可能100%,即没有一个圈能包围所有的点。
当需求分析人员把这个圈画好之后,我们一直在完善圈内的点,而忽视了圈外的点。用户一开始跟我们说要一个杯子,下次又说要一个带耳朵的杯子,再下次呢?要加盖的。
因此保证测试中需求的覆盖度,可以先从一个很小的圈开始,然后不断地扩大这个圈。除了要清楚通过的和未通过的功能,还要留意将会实现的和不可能实现的功能。 需求的测试,其实大部分都是业务的测试。常规的业务流程都是固定单一的。这个问题其实就转化成了业务流程的不规范情况的测试。
这种测试时不可能穷举的。 目前测试对需求的覆盖程度已经作为判断测试质量的一个标准,但不同的测试类型和需求类型如何判断测试的
覆盖程度?
1、一般来说,非功能性测试的覆盖程度比较好判断,如性能和压力测试,可根据需求中明确的性能指标进行测试
分析和设计,另外也可通过分析系统在生产中实际使用情况,来分析一些隐含的需求,如系统是否需要连续运
行、系统故障后恢复的级别、并发访问的程度等。
2、功能性测试的覆盖程度是比较难判断的,用例数不能完全说明对需求的覆盖,因为用例数和测试点的力度
划分相关,测试点划分的越细,用例数量越大,但不能说明覆盖程度高。
我们的做法一般是先根据用户需求确定测试优先级,重点需求测试点划分的比较详细,测试用例要覆盖所有的情况,如正常值、边界值、特殊值等;一般性需求测试用例覆盖所有的正常等价类;
测试用例设计上划分为单功能测试用例和测试场景设计,单功能测试覆盖的需求中的功能点,测试场景覆盖需求中的业务逻辑;
另外测试设计全面与否,很大程度取决于需求的质量,取决用户是否真正明白自己想让系统做什么。 我觉得。不论怎么样,都要以规格需求说明书为准,可以用其他的测试方法,我觉得只要符合规格需求说明书的要求就可以了。:lol :lol 1.需求覆盖可以根据软件质量模型的六大特性及其26个子特性来进行
2.具体子特性的覆盖可以结合一些软件测试用例分析方法,例如等价类啊,边界值啊。。等等
黑盒测试如何保证需求的覆盖度?(08-02-22)
黑盒测试的覆盖率是不可能达到100%的,只能做到逐步完善。根据软件需求分析和软件测试计划里的要求,采用边界值,等价类,因果法,大纲法等去设计用例,尽可能的做到覆盖,可以让测试用例有适当的冗余。 黑盒测试首先应该深入透彻地了解客户的需求,因为不可能穷举所有功能点的测试用例,这样既耗费工作量也不能体现客户所关注的重点。所以个人觉得,在情况允许的条件下尽可能多地覆盖客户所更关注的需求:
1、应该结合需求文档,认真分析需求重点,进行用例的设计。
2、对于基本的或通用的功能测试,可以设计公共的测试用例,保证用例设计的质量和效率。
3、对于业务复杂的测试对象,应先绘制流程,保证流程分支的全面覆盖。
另外,还可以通过对用例的评审,检查是否有需要关注而没有设计到用例中的功能点,以补充用例。
[ 本帖最后由 liangch 于 2008-2-25 10:08 编辑 ] 1、首先,要有需要测试的“需求”数据,也就是说,黑盒测试的对象。比如,在QC中的测试需求树
2、其次,要有黑盒测试与这些“需求”的关系,也就是黑盒测试用例与“需求”的对应关系。比如,QC中的测试计划对测试需求的覆盖
理论上就这么简单,但实际操作中,“需求”如何划分粒度是一个难点,以“功能”为单位,可能太粗,也可能就够了,以“功能点”为单位,可能又太细。 个人认为:在测试模块功能时,要先满足功能点的测试。这个过程一般在单元测试实现。而实际上在中小型的公司中不存在单元测试这个阶段,直接开始就是集成测试。
因此,我当时多做了一个过程,必须针对划分为最细小的功能进行测试。这里有个简单的地方,因为最细小的功能就是:添加、删除、修改、查询等。
添加/修改/查询,页面元素会比较多,使用正交法是个不错的选择
删除也简单,一般实现记录删除:单条删除、多条删除、全部删除等。
实现了最细小的功能一轮后,进行集成测试,相对就简单多了~~ 同意楼上不少人的看法,首先熟透需求,再进行用例设计。对于黑盒,要做到尽可能大的覆盖率,也只能在对需求的熟悉之下,凭借多和开发沟通和个人的经验累积了。所以,对不同的测试对象,对症下药,才能提高覆盖率。 看了楼上各位所谈的,都很有道理,在此本人给出几个测试开发过程度量的公式,无论对白盒和黑盒都有用:
1.缺陷检测有效性百分比(DDE):
DDE=(TDFT/(TDFC+TDFT)×100%
其中:TDFT=测试过程中发现的全部缺陷(即由测试组发现的)
TDFC=客户发现的全部缺陷(在版本交付后一个标准点开始测量,如,半年以后)
2.缺陷排除有效性百分比(DRE)
DRE=(TDCT/TDFT)×100%
其中:TDCT=测试中改正的全部缺陷
TDFT=测试过程中发现的全部缺陷
3.测试用例设计效率百分比(TDE)
TDE=(TDFT/NTC)×100%
其中:TDFT=测试过程中发现的全部缺陷
NTC=运行的测试用例数 首先应该充分了解需求,整理好需求文档。
然后以此为基础,分析需求,整理出各个功能点,编写各个功能点的测试用例,尽量能写全各个功能点的测试用例。
最后再根据测试用例进行测试。但在实际工作中可能来不及写测试用例,或者只写了某些主要功能点的测试用例,这就需要在测试时也结合需求文档,从黑盒测试方法中选择相应的方法,根据对业务功能分析选择测试数据来进行测试,保证需求文档中涉及的功能都能够在程序中执行一遍。 缺陷密度可以得出系统各功能或各需求的缺陷分布情况,开发人员可以在此分析基础上得出哪部分功能/需求缺陷最多,从而在今后开发注意避免并注意实施时予与关注,测试经验表明,测试缺陷越多的部分,其隐藏的缺陷也越多。
我们曾经在一个项目中算过缺陷密度,个人认为是测试用例质量和通过测试发现的bug数来决定的。缺陷密度 = 缺陷总数/功能点总数,式中的缺陷总数就是在测试系统过程中发现的bug数,功能点总数就是测试用例中各个功能点的总数。
总结:黑盒测试如何保证需求的覆盖度?个人认为关键在于测试用例质量,怎么写出高质量的测试用例,就像前面几位仁兄说的以及平时的积累。
[ 本帖最后由 zhangtao 于 2008-2-25 14:42 编辑 ] 从软件开发的V型模型讲,黑盒测试,对应的应该是Functional Specification,所以黑盒测试应该起于Func Spec,终于Func Spec。以该文档作为衡量测试覆盖率的标准。这是我先前的看法。不过楼上的xdjm们提到各系统之间的联系,虽然Func Spec中不一定涉及到,但我觉得也应该纳入测试范围。但这样就不要定量的分析测试覆盖率了。