`
O修远O
  • 浏览: 12193 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

halstead方法

阅读更多
软件测试覆盖率,大体上可以分为,逻辑覆盖和功能覆盖。

逻辑覆盖,属于白盒测试的范畴。其中经常接触到的或者说是用到的包括如下几个分类:
语句覆盖
判断覆盖
条件覆盖
判断条件覆盖
路径覆盖

语句覆盖,指的是被测试程序的每个可执行语句至少被执行一次。
判断覆盖,指的是被测试程序的每个判断至少去真分支和假分支一次。
条件覆盖,指的是被测试程序的每个条件的可能取值至少满足一次。这里要多说一句的就是,这次题目里提到的halstead方法就是在条件覆盖中涉及到的概念。
判断条件覆盖,也可以叫分支条件覆盖,指的是被测试程序中的判断中的每个条件的所有可能值至少出现一次。
路径覆盖,指的是所设计的测试用例要覆盖被测试程序中所有可能的路径。

以上就是白盒测试中经常用到的测试方法,其中的条件覆盖涉及到了halstead方法。

一下就引出halstead方法。
halstead方法是一个程序复杂度度量方法,halstead度量方法不仅仅度量了程序长度,还描述了程序的最小实现和实际实现之间的关系,并据此阐释程序语言的等级高低。它以程序中出现的操作符(Operator)和操作数(Operand)为计数对象,以它们的出现次数作为计数目标来测算程序容量和工作量。

操作数包括:常量、变量。
操作符包括:IF-ELSE,While(),return,for(;;),?:,sizeof等等

任何程序都可以由操作符和操作数通过有限次的组合连缀而成。

具体的复杂度的表述,为如下:

任意程序P,P的符号表词汇量 η = η 1+ η 2( η 1:惟一操作数数量, η 2:惟一操作符数量)。设N1是P中出现的所有操作数,N2是程序中出现的所有操作符。度量指标如下:   程序长度N=N1+N2   程序容量V=N × log2 η   当我们编写程序的时候,代码体积会因实现方式和编写者的习惯有所差异,还会因所采用的程序语言(比如保留字的数量,语句的结构等)而有所不同。因此,又有如下标准:   程序语言等级L=V ?/ V(V ? 是程序实现时可能的最小代码容量)   编写程序的效率E=V / L   halstead的度量分析指出,在软件开发中,把系统划分为单独的模块所带来的实质性利益,在于短代码的难度要比长代码低。
分享到:
评论

相关推荐

    软件工程答案版.doc

    程序复杂性可以通过McCabe和Halstead方法量化。软件配置管理涉及标识、版本控制、变化控制、配置审计和报告。大型系统对象设计分为五个层次,软件重用提升开发效率和系统质量,分为代码、设计和分析结果三个重用级别...

    软件工程复习.ppt

    程序复杂性度量,如McCabe方法和Halstead方法,可以帮助预测程序的复杂度和错误数量。 编码和测试是实现阶段的核心,编码是将设计转化为实际代码,而测试则确保代码符合需求并能正确运行。 以上内容只是软件工程...

    详细设计思维导图.pdf

    Halstead方法是另一种度量程序复杂度的方法,它考虑了程序中操作符和操作数的数量。这些定量度量方法可以帮助估算软件中潜在错误的数量以及软件开发所需的工作量,同时也可以作为比较不同设计或算法的依据。通过定量...

    软件工程项目期末复习.doc

    9. **程序复杂度度量**:如McCabe方法和Halstead方法用于评估程序的复杂度,为代码优化提供依据。 10. **实现与编码风格**:编码阶段要遵循一定的风格,提高代码可读性和可维护性。测试方法分为黑盒测试和白盒测试...

    使用 ASTParser 计算 Halstead 复杂度软件度量。这些指标是静态计算的,无需编程_Java_代码_相关文件_下载

    使用 ASTParser 计算 Halstead 复杂度软件度量。这些指标是静态计算的,无需程序执行。 该项目旨在使用 ASTParser 计算 Halstead 复杂性度量。Halstead 复杂性度量是...更多详情、使用方法,请下载后阅读README.md文件

    推选软件设计PPT资料.ppt

    Halstead方法则提供了一种更全面的度量,通过统计运算符和操作数的数量来计算程序的复杂度,预测可能存在的错误数量。 在设计实践中,应追求高内聚和低耦合。内聚是指模块内部元素的紧密相关性,如通信内聚,强调...

    《软件工程导论》张海潘_第五版_清华_课后答案

    - 使用McCabe方法和Halstead方法等定量度量程序的复杂性。 #### 第7章:实现 - **编码** - 选择合适的程序设计语言,并遵循良好的编码风格。 - **软件测试基础** - 包括测试目标、准则、方法、步骤等基础知识。...

    甘肃省二OO四年十月高等教育自学考试

    - **解析**: McCabe方法和Halstead方法是常用的定量度量程序复杂度的方法。故正确答案为(C)McCabe方法(D)Halstead方法。 **5. 黑盒测试的设计技术** - **知识点**: 黑盒测试的技术手段。 - **解析**: 黑盒测试主要...

    metrics-calculator:Halstead指标计算器

    指标计算器要求在Debian / Ubuntu上,安装以下软件包: 铛3.6 libclang-3.6-dev ...问题在Debian / Ubuntu系统上,似乎某些文件未放置在正确的目录中,请参见: Debian简单的错误解决方法: ln -s /usr/share/llvm-3

    程序的各种复杂性度量方法汇总

    本文将详细探讨程序复杂性度量的各种方法,这些方法都是从网络资源中精心收集并汇总的。 1. **圈复杂度(Cyclomatic Complexity)**:由Maurice Halstead提出,衡量程序控制流的复杂性。计算公式通常是V(G) = E - N...

    针对 9 至 15 岁儿童的 halstead 类别测试的修订版

    halstead 类别测试修订版 筛选初等儿童的教育障碍 10 1 LESSLER, K., & GALINSKY, D. Slosson 智力测试与特殊教育考生的 WISC 分数之间的关系。 学校心理学,1971, 8, 341-344。 MCLEOD, P. 学习阅读:视觉和...

    代码相似性检测在程序设计教学中的应用

    因此,作者提出了一种基于统计学方法的改进算法,该算法在保留Halstead算法优点的基础上,引入了额外的统计指标来增强其检测能力。 具体而言,改进后的算法可能包括以下方面: 1. **引入更多统计参数**:除了基本...

    代码质量分析器:使用代码质量度量标准的静态代码分析

    - **Halstead度量标准**:由Maurice Halstead提出,包括程序体积(V)、操作符数量(O)、操作数数量(D)、程序长度(L)、逻辑行数(N)、基本操作数对数(P)等,用于度量代码的复杂性。 - **环复杂性...

    Halstead Metrics Tool:C,C ++,Java程序的软件度量分析器-开源

    尽管某些软件度量标准是在多年前... 该项目分析了Halstead指标的设计和定义,该指标集通常称为“软件科学”。 该分析基于定义为构造,比较,分析并提供对软件工程测量文献中提出的各种测量方法的理解的测量分析框架。

    2020-2stmt_18342075_米家龙_assign51

    Halstead复杂度度量是其中一种衡量代码复杂度的方法,由Morris Halstead在1977年提出。该度量通过分析代码中的操作符和操作数来计算一系列指标,以量化程序的复杂性。 在给定的"2020-2stmt_18342075_米家龙_assign...

    PyPI 官网下载 | radon-0.4.tar.gz

    Halstead 复杂度是由 Victor Halstead 提出的一种度量方法,它基于程序中操作符和操作数的数量来计算。这种方法可以提供有关代码量、可能的错误数量、预期的维护工作量等信息。Radon 的 Halstead 分析有助于开发者...

Global site tag (gtag.js) - Google Analytics