精华内容
下载资源
问答
  • IT产品研发也从选择合适的工具开始,工具好坏对项目成败往往起着关键作用,尤其是嵌入式领域的白盒测试工具选型。尽管业界已有众多商用工具,但大部分仍处于可将白盒测试推动起来的边缘状态,选择工具稍有不慎,就...
  • 白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、  白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发...
  • 一、VcTester生产厂商深圳市领测科技有限公司简介VcTester由深圳市领测科技有限公司自主研发,专业服务于嵌入式白盒测试领域的测试工具,它遵循第4代白盒测试方法(4GWM,The4thGenerationWhite-box-...
  • 本论文提出了一种针对深入机器学习系统,比如自动驾驶系统的自动白盒测试工具,提出了一种基于梯度的算法,能提高对智能系统的识别率
  • 白盒测试工具

    千次阅读 2017-07-14 13:39:56
    白盒测试 又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面...

    白盒测试  又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。


    白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。

    要手动进行白盒测试,不仅仅需要了解代码,而且还费时费力。手动测试效率低,而且也无法保证准确率和全面性。

    如何高效地完成白盒测试呢?专业的自动化工具可以方便、高效地实现。
    白盒测试工具VectorCAST,不需要了解代码,就可以轻松完成单元测试和集成测试。

    VectorCAST白盒测试工具的优点:
    -提供完整的C/C++单元和集成测试使用的测试套件构建。
    - 无需写测试代码
    -自动构建桩函数及驱动代码
    -支持图形界面或脚本方式运行测试
    -提供针对嵌入式系统的优化代码覆盖率分析
    -可整合The MathWorks® Simulink®, Green Hills® INTEGRITY®, IBM® Rational® DOORS® IBM® Rational® Rhapsody®, PC-Lint和其它工具
    -支持目标环境和模拟器环境的测试执行
    -提供代码复杂度分析高亮显示高风险的代码
    -可依照代码中的判断路径来自动生成测试用例
    -提供测试执行回放功能,助于调试
    -整合业界优良静态分析工具

    展开全文
  • 白盒测试工具StyleCop

    2016-01-26 11:03:55
    白盒测试工具StyleCop,包括软件和文档,齐全,都是我积累的。
  • c++test(白盒测试工具)

    热门讨论 2009-10-17 15:18:23
    c++test是一款大众型白盒测试工具,适用玩c,c++源程序的白盒测试工具
  • 领导让帮忙测试公司开发的后台管理平台,是个php网站,让我找白盒测试相关工具,软件,做白盒测试。 完全不懂啊,哪个做测试的大神可以帮个忙,最好是可以装在Mac上的
  • 白盒测试工具CodeTest

    2021-03-23 13:56:40
    CodeTest是嵌入式系统测试工具,同时也能做嵌入式部分模块测试。要求:目标板和操作系统能正确运行 1.CodeTest概述 CodeTest是嵌入式系统测试工具,...
  • 保护源代码!解码全球首款移动端白盒测试工具ThreadingTest
  • 这是一组白盒测试工具,主要是用于代码开发阶段,检查应用的可靠性和稳定性。它提供了先进的错误检查和调试解决方案,充分地改善生产力和开发团队的软件开发质量。NuMega产品线是一个全面的SmartDebugging工具包,...
  • 白盒测试工具pc-lint

    2018-07-25 11:36:05
    杭州海康威视有限公司使用的白盒测试工具pc-lint培训教程,测试工具使用方法,各种命令行及其用法,常见错误解决
  • 白盒测试人员岗前培训时用到的教学材料。
  • pclint 9.0版本的白盒测试工具,主要进行代码静态检查时使用
  • pclint 7.0版本的白盒测试工具,主要进行代码静态检查时使用
  • JUnit是一个Java语言的白盒单元测试框架。所谓框架,即是在系统自动生成的测试框架下,程序员需要自己编写用例来实现动态测试。它是由Kent Beck和Erich Gamma编写的一个回归测试框架(regression testing framework...
  • 为什么说CodeViz是白盒测试工具

    为什么说CodeViz是白盒测试工具?

    可能有些人对博文的标题会提出些异议,没错,CodeViz这款软件的确是用来进行代码分析的一款利器,能够根据需要获取到整个程序中的所有的函数调用关系,为程序员阅读代码带来了极大的方便。从测试角度来讲,代码肯定是测试对象之一,我们要测试代码,即要进行白盒测试,作为一种测试方法,白盒测试最有可能是发生在单元测试和集成测试阶段,在这两个阶段,都不可避免的阅读代码,既然工具嘛,用来做测试了,所以我就可以称其为一款测试工具了,的确,在现实中它也为我的白盒测试带来了很大的帮助,接下来就谈下这款工具在进行测试时都能够有哪些益处。

    CodeViz可以给白盒测试人员带来哪些帮助?

    上边谈到了软件测试按照阶段可以划分为单元测试、集成测试、系统测试及验收测试。前两个阶段会比较多的使用到白盒测试技术,后两个阶段通常会采用黑盒测试技术。文中提到CodeViz为白盒测试工具,那么就要从单元测试和集成测试谈起。
    1. 单元测试阶段。首先在该阶段要确定测试对象,在一个稍微大些的项目中,单元的数量就数不胜数了,如果对于所有的单元都进行用例的设计和执行,显然是不现实的。通常做法是根据一些原则确定测试哪些单元,对于这些单元进行测试时如何确定优先顺序。这里就可以应用到CodeViz工具了,根据单元测试的原则,顶层模块和被频繁调用的模块都是重点测试模块,通过CodeViz生成的函数调用关系图,可以很快确定出这样的被测单元。确定测试单元是单元测试阶段的第一个应用,第二应用就是对于设计的验证了,良好的设计结构应该是顶层扇出比较大,中间扇出小,底层模块应该是有大的扇入。通过CodeViz加上公司自己定义的一些扇入扇出的规范,就可以对检查模块设计的合理性。
    2. 集成测试阶段。在测试策略上,首先可以通过CodeViz生成的函数调用图,确定集成测试的策略,采用自底向上还是自顶向下,是深度优先还是广度优先。接下来可以通过集成测试阶段的测试内容进行确定。该阶段的测试内容有适合性、准确性、互操作性、容错性、时间特性等方面。对于这些内容,大部分要确定是哪些模块间的指标需要重点测试,这些同样可以通过函数调用图进行进行确定。
    3. 以上是最近通过对于CodeViz结合一些测试思想进行的总结,当然这个主要适合一些中型的公司,前期文档没有那么健全,而又有白盒测试的需求的情况。对于大型软件公司,如果开发过程控制比较严格的话,可能前期在设计阶段就会有了UML的各种图,这样就可以使用这些图进行对应的白盒测试了。个人理解,欢迎拍砖。后面需要通过不断的实践进行丰富和补充。

    CodeViz使用补充

    前两天时间关系,只是将环境搭好,能够使用CodeViz对C语言项目进行函数调用图的生成。遗留了C++项目的生成情况,今天尝试了下C++项目的调用图生成。开始没有好好好看文档帮助,结果尝试了几次都不能生成函数调用图,每次都是只生成了-f参数指定的函数名一个函数名的图,在网上查了下,发现几乎所有的资料都是用c程序做的示例。没有捷径,所以只用耐心看了一下genfull和gengraph两个脚本文件。genfull的-h选项的帮助太简单了,跟据这个并不能够解决这个问题,后来没有办法才直接进入到genfull脚本中进行查看,也就是通过查看genfull脚本才发现了如何生成c++项目的函数调用关系图的,其实蛮简单,现在越来越习惯这些开源软件的README和帮助文件,下边简单的genfull脚本中的帮助说明做下翻译 (不一定到位,按照自己的理解):
    1. genfull — 从源码中的.cdepn文件生成一个关系调用图(开始的时候,就是给cdepn误导了,以为只有一个cdepn选项呢,所以花了点时间思考)
    2. genfull [选项]
      • 主要选项
        • -d --toplevel 顶层源码目录 (默认为当前目录)
        • -f  --file 扫描所有cdepn文件 (默认是扫描所有文件)
        • -s  --subdirs 扫描的子目录 (默认扫描所有目录)
        • -g --method 收集数据的方法(默认为 cdepn)
        • -o --output 输出的目标文件(默认为./full.graph)
        • -h --help 输出帮助信息(注意:这个选项输出的帮助信息并不全)
        • --version 输出版本号
      • Post-Processing选项
        • --skip 跳过数据收集,紧做post-process操作
        • --pp-stack 计算堆栈的使用情况
      • 收集方法选项列表(-g 后边的参数)
        • cdepn  从补丁后gcc编译输出后的.cdepn文件中收集信息
        • cobjdump  分析没有stripped的二进制文件,从而生成调用关系图(?)
        • cppdepn  同cdepn, 适用C++项目
        • cppobjdump 同cobjdump,适用于C++项目
        • cncc 从ncc编译后的文件中收集信息
    3. 几个应用实例
      1. genfull -g cdepn -s /usr/src/linux
      2. genfull -g cobjdump -s /usr/src/linux -f /usr/src/linux/vmlinux
      3. genfull -g cncc -s /usr/src/linux
      4. genfull -g cncc -f /usr/src/linux/code.map.nccout
      5. genfull -g cppdepn -s /usr/src/avifile-0.6
      6. genfull -g cppobjdump -s /usr/src/avifile-0.6 -f /usr/src/avifile-0.6/player/aviplay

    展开全文
  • 描述了白盒测试工具,包括静态代码检测、内存分析、性能分析等的工具名称。
  • 白盒测试工具 - sonar安装、配置与使用入门手册,用sonar检查代码质量演示。安装过程主要分为两部分,一个是主程序 sonarqube,一个是 sonarScanner 插件,两个都安装配置好后就可以进行代码扫描了。sonarqube 在...


    安装过程主要分为两部分,一个是主程序 sonarqube,一个是 sonarScanner 插件,两个都安装配置好后就可以进行代码扫描了。sonarqube 在配置数据库的过程中会碰到很多问题,第二章专门针对这些问题来进行讲解。

    第一章:sonarqube 的安装与启用

    ① sonarqube 获取

    下载地址: 官方网站
    在这里插入图片描述

    ② sonarqube 配置

    解压后的程序目录下,进入 conf 里的 sonar.properties 来进行配置。
    在这里插入图片描述

    # 指定oracle数据库
    sonar.jdbc.url=jdbc:oracle:thin:@10.10.18.70:1521/orcl
    # 指定数据库用户名
    sonar.jdbc.username=ncc_auto_sonar 
    # 指定数据库密码
    sonar.jdbc.password=1
    # 指定端口
    sonar.web.port=9000
    

    在这里插入图片描述

    ③ sonarqube 驱动放置

    不要忘了把驱动放到
    在这里插入图片描述

    ④ sonarqube 的启动

    StartSonar 来启动程序,如果闪退了,可以拖到 cmd 里运行,可以看到报错信息,第二章就介绍它的一些常见报错的解决方法。
    在这里插入图片描述
    然后再访问 localhost:9000 就进来了。
    在这里插入图片描述

    第二章:sonarqube 报错解决

    ① Unsupported JDBC driver provider: mysql. 【sonarqube8.0 以后不支持 mysql】

    sonarqube8.0 以后不再支持 mysql,所以我用 oracle 来做适配。

    jvm 1    | WrapperSimpleApp: Encountered an error running main: org.sonar.proces
    s.MessageException: Unsupported JDBC driver provider: mysql
    jvm 1    | org.sonar.process.MessageException: Unsupported JDBC driver provider:
     mysql
    wrapper  | <-- Wrapper Stopped
    

    在这里插入图片描述

    ② Directory does not contain JDBC driver: extensions/jdbc-driver/oracle. 【没有找到驱动】

    没有配置数据库驱动。extensions/jdbc-driver/oracle 下面没有放驱动,或是驱动放的不对。

    jvm 1    | WrapperSimpleApp: Encountered an error running main: org.sonar.proces
    s.MessageException: Directory does not contain JDBC driver: extensions/jdbc-driv
    er/oracle
    jvm 1    | org.sonar.process.MessageException: Directory does not contain JDBC d
    river: extensions/jdbc-driver/oracle
    wrapper  | <-- Wrapper Stopped
    

    在这里插入图片描述

    ③ SonarQube requires Java 11 to run. 【sonarqube8.0 需要 java11 的支持】

    我原来用的版本是 java8 的。
    在这里插入图片描述
    运行时会提示要用 java11 来运行。

    jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.Illega
    lStateException: SonarQube requires Java 11 to run
    jvm 1    | java.lang.IllegalStateException: SonarQube requires Java 11 to run
    

    在这里插入图片描述
    java11 官网下载
    在这里插入图片描述
    安装完后配置环境变量后就可以了。
    在这里插入图片描述

    ④ 远程主机强迫关闭了一个现有的连接。【sonarqube 数据库驱动版本不匹配】

    报这个错感觉我的数据库驱动版本不对,然后换了个驱动就好了。

    jvm 1    | 2020.05.22 17:25:35 WARN  app[][o.e.t.TcpTransport] exception caught
    on transport layer [Netty4TcpChannel{localAddress=/127.0.0.1:62245, remoteAddres
    s=/127.0.0.1:9001}], closing connection
    jvm 1    | java.io.IOException: 远程主机强迫关闭了一个现有的连接。
    

    在这里插入图片描述
    然后再访问 localhost:9000 就进来了。
    在这里插入图片描述

    ⑤ 查看 sonarqube 的数据库支持

    配置文档里有很多的帮助,我直接搜 oracle 就能查看 oracle 的支持了,还有下面说的驱动放置方法,以及更下面的官方支持网站,如果还有其它的问题,兴许就能在里面找到问题的解决方法。
    在这里插入图片描述

    第三章:sonarScanner 插件的安装与配置

    ① sonarScanner 获取

    获取地址:官网下载
    下载完后解压即可。
    在这里插入图片描述

    ② sonarScanner 设置环境变量

    我们把它根目录下面的 bin 文件夹加入环境变量。
    在这里插入图片描述
    在这里插入图片描述
    cmd 里输入 sonar-scanner -h 可以看有没有配置对。
    在这里插入图片描述

    ③ sonarScanner 配置

    在这个配置文件夹里的配置文件进行配置。
    在这里插入图片描述
    还是跟前面 sonarqube 的数据库配置一样。

    # 指定oracle数据库
    sonar.jdbc.url=jdbc:oracle:thin:@10.10.18.70:1521/orcl
    # 指定数据库用户名
    sonar.jdbc.username=ncc_auto_sonar 
    # 指定数据库密码
    sonar.jdbc.password=1
    

    在这里插入图片描述

    第四章:用 sonar 检查代码质量

    ① 配置

    在要检查代码的地方建个这个配置文件 sonar-project.properties
    在这里插入图片描述
    sonarScanner 官网 给的配置方法。
    在这里插入图片描述

    # must be unique in a given SonarQube instance
    sonar.projectKey=my:project
    
    # --- optional properties ---
    
    # defaults to project key
    #sonar.projectName=My project
    # defaults to 'not provided'
    #sonar.projectVersion=1.0
     
    # Path is relative to the sonar-project.properties file. Defaults to .
    #sonar.sources=.
     
    # Encoding of the source code. Default is default system encoding
    #sonar.sourceEncoding=UTF-8
    

    在这里插入图片描述

    ② 运行

    在放好配置文件的目录下输入 sonar-scanner 命令就可以扫描了。
    在这里插入图片描述
    扫描成功标志。
    在这里插入图片描述
    扫描过程详细信息。

    C:\Users\Administrator\Desktop\XpathRobot>sonar-scanner
    INFO: Scanner configuration file: D:\server\sonar\sonar-scanner-4.3.0.2102-windo
    ws\bin\..\conf\sonar-scanner.properties
    INFO: Project root configuration file: C:\Users\Administrator\Desktop\XpathRobot
    \sonar-project.properties
    INFO: SonarScanner 4.3.0.2102
    INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
    INFO: Windows 7 6.1 amd64
    INFO: User cache: C:\Users\Administrator\.sonar\cache
    INFO: Scanner configuration file: D:\server\sonar\sonar-scanner-4.3.0.2102-windo
    ws\bin\..\conf\sonar-scanner.properties
    INFO: Project root configuration file: C:\Users\Administrator\Desktop\XpathRobot
    \sonar-project.properties
    INFO: Analyzing on SonarQube server 8.2.0
    INFO: Default locale: "zh_CN", source code encoding: "GBK" (analysis is platform
     dependent)
    INFO: Load global settings
    INFO: Load global settings (done) | time=205ms
    INFO: Server id: 02A721FB-AXJaPgmVryaM9Bas_OmF
    INFO: User cache: C:\Users\Administrator\.sonar\cache
    INFO: Load/download plugins
    INFO: Load plugins index
    INFO: Load plugins index (done) | time=161ms
    INFO: Load/download plugins (done) | time=3743ms
    INFO: Process project properties
    INFO: Process project properties (done) | time=1ms
    INFO: Execute project builders
    INFO: Execute project builders (done) | time=5ms
    INFO: Project key: my:project
    INFO: Base dir: C:\Users\Administrator\Desktop\XpathRobot
    INFO: Working dir: C:\Users\Administrator\Desktop\XpathRobot\.scannerwork
    INFO: Load project settings for component key: 'my:project'
    INFO: Load quality profiles
    INFO: Load quality profiles (done) | time=305ms
    INFO: Load active rules
    INFO: Load active rules (done) | time=3550ms
    WARN: SCM provider autodetection failed. Please use "sonar.scm.provider" to defi
    ne SCM of your project, or disable the SCM Sensor in the project settings.
    INFO: Indexing files...
    INFO: Project configuration:
    INFO: 21 files indexed
    INFO: Quality profile for py: Sonar way
    INFO: Quality profile for web: Sonar way
    INFO: ------------- Run sensors on module my:project
    INFO: Load metrics repository
    INFO: Load metrics repository (done) | time=116ms
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by net.sf.cglib.core.ReflectUtils$1 (file:/C:
    /Users/Administrator/.sonar/cache/54f6535c111cefad0fb6a09ba3e61922/sonar-javascr
    ipt-plugin.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byt
    e[],int,int,java.security.ProtectionDomain)
    WARNING: Please consider reporting this to the maintainers of net.sf.cglib.core.
    ReflectUtils$1
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflect
    ive access operations
    WARNING: All illegal access operations will be denied in a future release
    INFO: Sensor Python Sensor [python]
    INFO: Starting global symbols computation
    INFO: 3 source files to be analyzed
    INFO: Load project repositories
    INFO: Load project repositories (done) | time=14ms
    INFO: Starting rules execution
    INFO: 3 source files to be analyzed
    INFO: 3/3 source files have been analyzed
    INFO: Sensor Python Sensor [python] (done) | time=1481ms
    INFO: Sensor Cobertura Sensor for Python coverage [python]
    INFO: 3/3 source files have been analyzed
    INFO: Sensor Cobertura Sensor for Python coverage [python] (done) | time=23ms
    INFO: Sensor PythonXUnitSensor [python]
    INFO: Sensor PythonXUnitSensor [python] (done) | time=11ms
    INFO: Sensor SonarCSS Rules [cssfamily]
    INFO: 1 source files to be analyzed
    INFO: 1/1 source files have been analyzed
    INFO: Sensor SonarCSS Rules [cssfamily] (done) | time=14364ms
    INFO: Sensor JaCoCo XML Report Importer [jacoco]
    INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=4ms
    INFO: Sensor JavaXmlSensor [java]
    INFO: Sensor JavaXmlSensor [java] (done) | time=2ms
    INFO: Sensor HTML [web]
    INFO: Sensor HTML [web] (done) | time=150ms
    INFO: ------------- Run sensors on project
    INFO: Sensor Zero Coverage Sensor
    INFO: Sensor Zero Coverage Sensor (done) | time=48ms
    INFO: SCM Publisher No SCM system was detected. You can use the 'sonar.scm.provi
    der' property to explicitly specify it.
    INFO: CPD Executor 1 file had no CPD blocks
    INFO: CPD Executor Calculating CPD for 3 files
    INFO: CPD Executor CPD calculation finished (done) | time=15ms
    INFO: Analysis report generated in 106ms, dir size=214 KB
    INFO: Analysis report compressed in 99ms, zip size=52 KB
    INFO: Analysis report uploaded in 1527ms
    INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=my%
    3Aproject
    INFO: Note that you will be able to access the updated dashboard once the server
     has processed the submitted analysis report
    INFO: More about the report processing at http://localhost:9000/api/ce/task?id=A
    XJeUNiUryaM9Bas_RCa
    INFO: Analysis total time: 25.030 s
    INFO: ------------------------------------------------------------------------
    INFO: EXECUTION SUCCESS
    INFO: ------------------------------------------------------------------------
    INFO: Total time: 32.540s
    INFO: Final Memory: 13M/50M
    INFO: ------------------------------------------------------------------------
    

    ③ 查看扫描报告

    刷新后就能看到扫描后的结果了!
    在这里插入图片描述

    ④ 分析报告问题

    点进 bug 里可以看到很多问题。
    在这里插入图片描述
    点击 Why is this an issue? 可以查看问题原因,点击整个粉色的部分可以追踪到代码。
    在这里插入图片描述

    ⑤ 代码质量评级

    点击 quality gates 可以查看代码质量的综合评分。
    在这里插入图片描述

    第五章:sonar 相关设置

    ① sonar 管理员登录

    sonar 管理员登录。
    在这里插入图片描述
    管理员的账号和密码都是 admin
    在这里插入图片描述

    ② sonar 设置

    管理员登录后才能看到设置页签。
    在这里插入图片描述
    喜欢的点个赞❤吧!

    展开全文
  • sonar代码质量问题分析演示。 bug分析 ① 操作符两边使用相同的值 ② 变量、类或函数没有被定义就使用 ...代码味道 ① 不要有注释的代码,会使代码臃肿降低可读性。 ② 合并可折叠的语句会增加代码的可读性。...

    第一章:bug分析

    ① 操作符两边使用相同的值

    译文: 在二进制操作符的两边使用相同的值几乎总是错误的。在逻辑操作符的情况下,它要么是一个复制/粘贴错误,因此是一个bug,要么只是浪费代码,应该进行简化。在逐位运算符和大多数二进制数学运算符的情况下,在运算符的两边都有相同的值会产生可预测的结果,应该加以简化。

    Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code, and should be simplified. In the case of bitwise operators and most binary mathematical operators, having the same value on both sides of an operator yields predictable results, and should be simplified.
    在这里插入图片描述

    ② 变量、类或函数没有被定义就使用

    译文: 变量、类和函数应该在使用之前定义,否则代码会失败。

    Variables, Classes and functions should be defined before they are used, otherwise the code will fail.
    在这里插入图片描述

    ③ html一些不推荐使用的元素,并提供用哪些来代替

    不推荐用 font 来设置字体,建议使用 css
    译文: 随着HTML5的出现,许多旧的元素被抛弃了。为了确保最佳的用户体验,不应该使用不赞成的元素。此规则检查下列不赞成使用的元素

    With the advent of HTML5, many old elements were deprecated. To ensure the best user experience, deprecated elements should not be used. This rule checks for the following deprecated elements
    在这里插入图片描述

    ④ html 元素没有包含 lang 属性

    译文: <html>元素应该提供lang和/或xml:lang属性,以便识别文档的默认语言。

    The element should provide the lang and/or xml:lang attribute in order to identify the default language of a document.
    在这里插入图片描述

    第二章:代码味道

    ① 不要有注释的代码,会使代码臃肿降低可读性。

    译文: 程序员不应该注释掉代码,因为代码会使程序臃肿,降低可读性。

    Programmers should not comment out code as it bloats programs and reduces readability.在这里插入图片描述

    ② 合并可折叠的语句会增加代码的可读性。

    两个 if 条件语句嵌套,完全可以用一个 if ,加上 and 连接词即可。
    译文: 合并可折叠的语句会增加代码的可读性。

    Merging collapsible if statements increases the code’s readability.
    在这里插入图片描述

    ③ 结构中有两个分支且实现相同容易出现问题,最好合并起来。

    可以看到我的两个分支实现是一样的。
    译文: 如果结构中有两个分支,且实现相同,则最好的情况是重复代码,最坏的情况是编码错误。如果两个实例确实需要相同的逻辑,那么应该将它们组合起来。

    Having two branches in the same if structure with the same implementation is at best duplicate code, and at worst a coding error. If the same logic is truly needed for both instances, then they should be combined.在这里插入图片描述

    ④ 函数命名不规范。

    译文: 共享编码约定允许团队高效协作。该规则检查所有函数名是否与提供的正则表达式匹配。

    Shared coding conventions allow teams to collaborate efficiently. This rule checks that all function names match a provided regular expression.在这里插入图片描述

    ⑤ 声明了局部变量但是没有用,应该删除来提高可维护性。

    译文: 如果声明了局部变量但没有使用,那么它就是死代码,应该被删除。这样做将提高可维护性,因为开发人员不需要考虑变量的用途。

    If a local variable is declared but not used, it is dead code and should be removed. Doing so will improve maintainability because developers will not wonder what the variable is used for.
    在这里插入图片描述

    ⑥ 函数过于复杂不利于维护

    译文: 认知复杂性是衡量一个函数的控制流有多难以理解的一个指标。具有高度认知复杂性的功能将难以维持。

    Cognitive Complexity is a measure of how hard the control flow of a function is to understand. Functions with high Cognitive Complexity will be difficult to maintain.
    在这里插入图片描述

    ⑦ 重复的字符串文本使重构代码的过程容易出错

    我圈住的字符串在代码里出现 3 次,重构代码时一定要小心出问题。
    译文: 重复的字符串文本使重构过程容易出错,因为必须确保更新所有出现的字符串。

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.在这里插入图片描述

    喜欢的点个赞❤吧!

    展开全文
  • pclint9白盒测试工具

    2018-07-25 13:47:20
    pclint 9.0版本的白盒测试工具,主要进行代码静态检查时使用
  • VcTester 白盒测试工具与VC(包括VC6、VC7、VC8、VC9 各个版本)开发环境配合使用, 凡在VC环境能正常编译、正常运行的C/C++工程都可以用VcTester 做测试。 如果用户的被测代码不能在Windows 平台下运行,或者不能在...
  • 如何选择白盒测试工具.pdf,对于测试有帮助
  • 白盒测试常用工具介绍

    万次阅读 2018-11-04 15:03:18
    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本...分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;... 白盒测试工具一般是针对

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,210
精华内容 8,484
关键字:

白盒测试工具