引入测试复杂度提高软件测试管理效率的算法.doc

上传人:gs****r 文档编号:1911501 上传时间:2019-03-21 格式:DOC 页数:7 大小:107KB
下载 相关 举报
引入测试复杂度提高软件测试管理效率的算法.doc_第1页
第1页 / 共7页
引入测试复杂度提高软件测试管理效率的算法.doc_第2页
第2页 / 共7页
引入测试复杂度提高软件测试管理效率的算法.doc_第3页
第3页 / 共7页
引入测试复杂度提高软件测试管理效率的算法.doc_第4页
第4页 / 共7页
引入测试复杂度提高软件测试管理效率的算法.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、1引入测试复杂度提高软件测试管理效率的算法摘 要:随着软件规模的不断扩大,软件测试管理从粗放式的管理模式逐步转化为精细化管理,本文从研究软件测试管理的效率出发,重点介绍了测试复杂度的科学算法,来协助广大的质量经理在项目管理的过程中依据可靠的数据来提升测试管理的效率,从而迈出进行精细化管理的第一步。 关键词:软件测试;软件测试复杂度;软件测试管理 一、引入软件测试复杂度的重要性 在测试管理体系中,影响测试项目成功的因素很多,包括软件研发者所提供的程序代码复杂度、测试人员的测试代码的质量、项目功能的复杂度、项目的时间限制等等。这些因素在具体的实践操作中是可以用具体的值来衡量的,将多个因素的分值综合

2、起来便得到测试复杂度的值,可以说软件测试复杂度是测试管理体系中影响测试项目成功因素的一个综合指数。 通常质量经理对软件测试复杂度的确认,是主要依靠其个人能力、经验累积和对项目的熟悉程度进行主观判断,这就导致了对软件的测试具有很强的主观性,为软件项目埋下了风险。加之测试本身的特性决定了测试活动实施过程中存在着大量的风险,而风险影响着测试活动的成败。因此,本文中引入软件测试复杂度计算公式,能较客观地对软件进行测试复杂度的衡量,通过对软件复杂度和测试复杂度的控制来降低软2件测试中的风险,从而提高对软件测试的管理效率。 二、软件测试复杂度的算法原理 软件测试复杂度是衡量影响软件测试工作的因素综合指数,

3、本文笔者通过分析测试管理工作中各种因素的变化情况,提炼出影响测试管理效率的关键因素并设计出了符合现代软件测试复杂度的计算公式,即:软件测试复杂度=代码复杂度*代码人员质量分值*伪代码分值*功能复杂度分值。 (一)代码复杂度及度量方法。代码复杂度是基于程序开发者所产生的程序代码而提出概念,程序代码的循环和选择所构成的环路越多,其代码复杂度就越高。现在已经有若干种代码复杂性的度量方法可供参考,其中 McCabe QA 是比较出色和实用的方法,它能够计算出多种软件代码复杂度。McCabe 是对软件结构进行严格的算术分析得出程序拓扑结构复杂性的度量,明确指出项目各部分的复杂度量。 (二)代码人员质量及

4、度量方法。 (1)什么是代码人员质量。这是本文提出的一个新概念,基于多项目、连续性版本的软件研发与测试工作中分析总结出:代码人员编写的代码质量是可以用一个数学公式进行精确的计算的。 (2)如何计算代码人员质量分值。计算代码人员质量分值需要几个关键数据:bug 合计分值、严重 bug 级别占比数值、功能复杂度、bug 功能比值。1) bug 合计分值:笔者把 bug 划分为 3 个级别,分别是严重(3 分) 、一般(1 分) 、提示(0.5 分) 。bug 合计分值就是由测试人员计算该代码人员在代码编写过程中所得出的所有 bug 的分值之和,bug 合计分值越高,3说明代码质量越差。那么该如何来

5、界定 bug 的级别?根据笔者的实践经验,影响 bug 级别的因素主要有两个:对系统的影响值和对用户的影响值。当一个 bug 发生的时候,在系统层面导致系统奔溃或瘫痪、在用户层面则导致用户的流程不能继续或用户数据错误,则为严重 bug;在系统层面能在容错性下继续运行、在用户层面用户的流程可以继续或则能通过其他路劲完成该流程,则为一般 bug;在系统层面对系统的数据处理或性能都几乎没有影响、在用户层面只是文字性错误或指引信息不够准,则为提示 bug。2) 严重 bug 级别占比数值:严重 bug 级别占比数值=严重 bug 分值/bug 合计分值(保留 4 位小数) 。为体现软件测试过程中测试的

6、优先级和用户体验的优先级,笔者强调了严重 bug 对系统和用户的影响。3) 功能复杂度:同一个项目的不同版本中都会由数个功能组成,在代码人员进行代码编写前,该功能或模块的复杂度会由软件的研发经理、测试经理、产品经理为其进行评分,所得到的分值即为功能复杂度分值。4) bug 功能比值:bug 功能比值=bug 合计分值/功能复杂度(保留 4 位小数) 。针对每一个不同复杂度分值的功能或模块,其 bug 自然会呈现出不同的级别。若功能复杂度越高,相应的其 bug 的级别可能会越高,其代码质量就越差;若功能复杂度越高,相应的 bug 的级别越低,其代码质量就越高。所以将 bug 合计分值对应不同的功

7、能复杂度的比值控制在一个合理范围内就会使代码质量得到保证。根据关键数据得出计算公式为:代码人员质量度=严重 bug 级别占比数值 *bug 功能比值(保留 4 位小数) 。 综上所述进一步细化代码人员质量度计算公式设为:代码人员质量4度=(严重分值/bug 合计分值)*(bug 合计分值/功能复杂度) 在表 1 中对代码人员 A 和 B 的质量度计算中可以看出:认定一个代码人员的代码质量,并不能简单的查看 bug 数据,也不能简单的看功能复杂度的情况,而是将 bug 合计分值与对应的功能复杂度控制住一个合理的范围内,在这个合理的范围内,bug 合计分值可能会很高,但并不代表代码人员质量差,当然

8、当代码人员质量度数字越小,则代表该代码人员的代码质量也越高。 表 1 代码人员质量度的计算实例 (三)伪代码及度量方法。 (1)什么是伪代码。伪代码就是一种算法描述语言。使用为代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。因此,要实现此目的,伪代码必须具有如下特点: 必须结构清晰 代码简单 可读性好 类似自然语言。本文中伪代码分值就是通过前 3 个特点进行定义计算的。 (2)如何计算伪代码分值。笔者在实践经验中得出,在伪代码的 4 个特点中,真正对伪代码分值有影响的是前 3 个特点,因为即使伪代码不太类似自然语言,由于第项在整个伪代码分值中的比重超过了 50%,那么第 4 个

9、特点几乎可以忽略,故取消了计算公式中对第 4 个特点的数据评分。笔者将 3 个特点在伪代码分值中所占比重进行了科学的划分:结构清晰(S)占 55%,代码简单(C)占 20%,可读性(R)占 25%,并将每个特点的优劣评价为优秀+(5 分) 、优秀(4 分) 、良+(3 分) 、良 (2 分) 、不合格(1 分),计算公式为:伪代码分值=S*55%+C*20% +R*25%。在进行正式的软件代码编写以前,需要对现有版本的功能5进行伪代码编写,伪代码分值越高,代表该伪代码是质量越高,从而转换为正式代码的可靠性就越强。 (四)功能复杂度及度量方法。对软件规模和复杂度进行正确的度量,可以降低软件正确性

10、测试的难度。目前,应用最广泛的就是“功能点分析度量法” 。在该度量法中,将软件项目管理中的功能点分为ILF(内部逻辑文件) 、EIF(外部接口文件) 、EI(外部输入) 、EO(外部输出)和 EQ(外部查询)5 大类。对每个功能点自身而言,又可细分为2 类:外部逻辑(接收外部输入与输出至外部)接口 EL 和内部逻辑 IL。当某个功能需要提供更多的外部接口时,由于接口数量的增加导致对外需求处理的逻辑数增加,那么该功能的复杂度就会升高,即功能的接口数与复杂度之间成正比例关系。基于功能点,将复杂度的定义以“段”的形式划分,具体为 5 个功能点为一个段的分界线,出现一个分界线便划定 1 分,出现 N

11、个分界线,划定(N+1)分,计算公式为:功能复杂度 =(N+1)EL*(N+1)IL 三、测试复杂度提高测试管理效率的应用 本文测试复杂度的算法适用于一个已存在项目的连续性管理中,不适合新项目的研发管理。在任何一个项目的测试过程中资源都是有限的,那么该如何优化资源类来提高测试管理效率从而提升软件工程的质量?从测试复杂度的算法中可以看出,计算测试复杂度的过程正是在优化配置各种资源的过程。所以,在测试复杂度的算法中,必须要考虑以下规则: (1)项目测试复杂度由各个功能的测试复杂度之和构成。 6(2)各个功能的测试复杂度的计算必须遵循功能由小到大的顺序,由测试主管计算得出。 (3)项目之初通过计算确

12、定大致的测试框架、测试人员配备、测试思路。 (4)测试复杂度是动态数据,不是静态数据,项目中通过测试复杂度的动态数据对测试过程进行微调。 (5)根据项目功能复杂度设定测试复杂度的安全值范围值。 (6)功能测试复杂度分值管测试细节、项目测试复杂度分值管测试进度。 从测试复杂度算法中可以看出,当功能中的任意元素发生变化后都会导致最终数据结果的变化。笔者认为测试复杂度数值变动是允许的,在动态数据中需要重点注意两个数据:(1)变动次数。当变动次数3 时,就是一个危险信号的提示,表明实际的研发过程中该功能的逻辑发生了多次变化。 (2)变动比率。变动比率=|(L-F)/F|,L 为测试复杂度最后一次变动时

13、的分值,F 为测试复杂度第一次变动时的分值,当变动比率0.25 时,表明项目功能的逻辑上有非常大的变动。当以上两种情况任何一种出现时,都需要管理者提高警惕,并主动去寻找原因与错误。 四、结束语 软件测试是软件工程的一个重要阶段,也是保证软件质量的重要手段。统计表明,测试工作量在软件研发总工作量中占到 40%以上,软件研发总成本中测试上开销占到 30%50%,所以,对测试工作的有效管理,可以降低软件研发成本,缩短研发周期。本文试图通过引入测试复杂度算法,来帮助大家提高测试管理工作的效率,以便于更好的控制软件项目的质量。 参考文献: 71 陈文海.软件测试管理工具的研究与实现.北京.中国科学院研究生院(软件研究所).2003 2 张健,徐宝文.软件测试专辑前言J.计算机学报.2011.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 学科论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。