黑盒测试中如何保证需求的覆盖度

发表于:2010-11-23 12:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  软件测试如何达到一定的覆盖度是个非常重要的问题,它是我们测试分析和测试设计工作的基础和出发点。在白盒测试中,我们可以用逻辑覆盖(语句覆盖、分支覆盖、条件覆盖、路径覆盖)等来指导我们的测试分析和设计,并用来评价我们测试工作的充分性,但在黑盒测试中,我们所追求的是需求要达到一定的覆盖度,那么如何衡量需求被覆盖的程度呢?又如何保证去达到一定的需求覆盖呢?请结合您的思考和实践,畅所欲言,希望各种观点在碰撞中产生火花。

  主要要做好测试需求分析测试需求分析分两步:

  1,测试需求的获取需求的来源:

  显式需求

  (1)原始需求说明书

  (2)产品规格书

  (3)软件需求文档

  (4)有无继承性文档

  (5)经验库

  (6)通用的协议规范隐式需求:用户的主观感受,市场的主流观点,专业人士的评价分析

  2,需求的分析 ,产生测试需求文档将不同的需求来源划分成一个个需求点,针对每一点进行测试分析

  (1)界定测试范围

  (2)利用各种测试设计的方法产生测试点。

  目前测试对需求的覆盖程度已经作为判断测试质量的一个标准,但不同的测试类型和需求类型如何判断测试的覆盖程度?

  1、一般来说,非功能性测试的覆盖程度比较好判断,如性能和压力测试,可根据需求中明确的性能指标进行测试分析和设计,另外也可通过分析系统在生产中实际使用情况,来分析一些隐含的需求,如系统是否需要连续运行、系统故障后恢复的级别、并发访问的程度等。

  2、功能性测试的覆盖程度是比较难判断的,用例数不能完全说明对需求的覆盖,因为用例数和测试点的力度划分相关,测试点划分的越细,用例数量越大,但不能说明覆盖程度高。

  我们的做法一般是先根据用户需求确定测试优先级,重点需求测试点划分的比较详细,测试用例要覆盖所有的情况,如正常值、边界值、特殊值等;一般性需求测试用例覆盖所有的正常等价类;测试用例设计上划分为单功能测试用例和测试场景设计,单功能测试覆盖的需求中的功能点,测试场景覆盖需求中的业务逻辑;另外测试设计全面与否,很大程度取决于需求的质量,取决用户是否真正明白自己想让系统做什么。

  看了上面高手的分析,真是受益匪浅啊~!~我也同意首先要透彻理解需求文档,把不明白的地方与开发人员、设计人员沟通。

  理解完需求后,我们就得开始写测试需求了,在测试需求了,我们将对软件或项目进行庖丁解牛的手法,将其功能模块细分出来,然后将模块中的功能点分解出来,我们得保证最后的功能点为最小分子,不能再进行下一步分解拉。(当然我们可以借助一些测试需求编写工具拉)测试需求细分出来后,剩下的就是编写测试用例了。每个最小分子需求对应写一个测试用例,用例中要将能想到的方法步骤全部写出来,大家开会讨论,不漏掉。执行“不抛弃任何一个方法、不放弃任何一个idea”。至于相关联的功能模块之间,我们也得考虑设计测试用例。(这些只针对黑盒测试的功能测试)

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • msw_cn
    2010-11-23 16:00:17

    正常的V模式开发,在看到需求之前,需要经过合格的单元测试(根据详细说明书),集成测试(根据概要说明书),才能达到系统测试而看到需求说明书。在这个时候,时间和流程的跨度已经相当大了。我们经常听到从需求到测试用例,好像我们从需求开始一直持续忠于需求直到开发测试用例。实际上,在v模式里,能横向建立需求和系统测试的对应关系已经难能可贵了。举个例子,同一份需求说明书,让unix程序员和windows程序员完成,你肯定得到两个完全不一样的结果。

    从理想状态出发,根据需求说明书,尽量分析里面的所有测试点,编写成测试用例,你可以100%覆盖需求。实际情况是,你不能这么做。肯定有什么阻碍了我们100%覆盖需求。

    首先,等价类划分,边界值等方法并不是覆盖需求的,它们是覆盖输入输出的。我们用这些方法设计单元测试,集成测试。如果没有合格的单元测试,集成测试;单独谈覆盖功能,有些虚幻。保证功能覆盖,你必须保证代码的运行和整合状况良好,这也是系统测试(主要根据需求说明书)的前提。

    其次,需求到底是什么?提倡产品忠于客户需求的不光是软件开发,还有汽车,时装等等。需求很可能仅仅是个口号,而不是一份专业的文档。如果你口才够好,你可以让客户把你自己的想法当成是他的需求。有些软件的客户,根本提不出什么需求;或者你完全按照他的需求完成产品,结果并不能让客户满意。一份能指导开发和测试的需求说明书,本身就是个梦想。我们经常说代码覆盖率,分支覆盖率(奢侈品),输入输出覆盖率,环境配置覆盖率(奢侈品),这些相对是真实的。如果你打算覆盖需求,你应该清楚你的目标是很高端的奢侈品。首先你要确认你有一份真正的需求说明书。这份需求说明书是谁制定的?开发部有多少人看过,或者了解这份需求说明书?它是由什么人维护的?都有什么人,在什么情况下可以对需求进行更改?

    我不是否定需求覆盖,而是想解释测试的处境。你可以设计一个针对需求的测试阶段,在此阶段,我们把测试范围缩小到只检验需求相关内容,这样可以提高需求的覆盖。正常情况,我们只做系统测试。在系统测试阶段除了覆盖需求,我们还需要覆盖环境,覆盖代码,覆盖功能。我个人理解,需求覆盖度是个概念而不是一个具体的值。在测试人员的角度,增强客户的意识,可以保证需求覆盖。测试环境尽量贴近实际环境可以需求覆盖。在设计用例时增加场景用例,引入B测试可以增加需求覆盖。

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号