• 提升软件质量(1)


    软件质量在如今的环境下显得越来越重要,特别是在智能家居、医疗器械、汽车电子等行业。提高软件质量迫在眉睫。

    从设计、编码、编译、运行、测试,每个步骤都有提高软件质量的方式。

    设计阶段需要考虑好架构,考虑扩展性、依赖和稳定性等,编码阶段需要遵循一定的编码规范,避免各种容易犯的错误,这里就一一略过了。

    编译阶段需要注意的是,不要忽略编译器提示的每一个警告,要弄清楚为什么会有警告提示,每个警告都会提示一些存在的隐患,修改后对软件质量一定是有提高的。

    静态代码检测是在编译后要进行的一个方式。

    所谓静态代码检测,就是使用工具对代码进行扫描,检测并指出编译器无法检查出的问题。这种方式并不运行代码生成的程序,所以称之为静态检测。

    目前比较流行的c/c++静态代码检测工具有coverity、cpplint、cppcheck等,其中coverity是收费的。cppcheck是使用起来比较简单的一个静态代码检测工具。

    一、cppcheck下载和文档:

    Cppcheck 最新更新版本下载地址:http://cppcheck.sourceforge.net/

    介绍说明文档地址:http://cppcheck.sourceforge.net/manual.html#idp287040

    二、简单使用说明:

            首先下载安装,例如我的是安装在 D:CpptestCppcheck 目录下,要使用它必须先转到该路径下:
    1.检查一个文件:cppcheck [filepath]
    例如,我检查一个file1.c的文件代码,在命令工具中可以输入:D:CpptestCppcheck>cppcheck file1.c 来审查。
    2.检查一个文件夹中的所有文件: cppcheck [filspath]
    例如,我检查files文件下的所有文件:D:CpptestCppcheck>cppcheck files
     

    三、错误类型严重级别分类:

    error :发现bug时提示级别。
    warning :建议预防程序中产生bug的提示。
    style :关系到代码整洁的编程风格提示。
    performance :可以使代码运行更有效的建议提示。
    portability :可移植性提示。64位兼容、可运行在不同编译器等等的移植性。
    information :关于检查问题过程中的一些信息提示。
     
    使用示例:
     
    1. # enable warning messages  
    2. cppcheck --enable=warning file.c  
    3.   
    4. # enable performance messages  
    5. cppcheck --enable=performance file.c  
    6.   
    7. # enable information messages  
    8. cppcheck --enable=information file.c  
    9.   
    10. # For historical reasons, --enable=style enables warning, performance,  
    11. # portability and style messages. These are all reported as "style" when  
    12. # using the old xml format.  
    13. cppcheck --enable=style file.c  
    14.   
    15. # enable warning and information messages  
    16. cppcheck --enable=warning,information file.c  
    17.   
    18. # enable unusedFunction checking. This is not enabled by --enable=style  
    19. # because it doesn't work well on libraries.  
    20. cppcheck --enable=unusedFunction file.c  
    21.   
    22. # enable all messages  
    23. cppcheck --enable=all  
    使用相关的 enable 消息可以只输出指定的需要的信息,--enable = all是所有类型数据都打印输出。
     

    四、将输出结果写到一个指定的文件中:

    D:CpptestCppcheck>cppcheck --enable=all C:file.c 2>D:Cpptesterr.txt
    将检查文件file.c的文件检测内容信息输入到err.txt文件中。

    五、格式化输出内容格式:

    D:CpptestCppcheck>cppcheck --enable=all --template=vs C:files.c 2>D:Cpptesterr.txt
    --template=vs 就是指定以vs这种格式输出,还可以自定义输出格式,具体可以参照使用手册。
     

    六、结合vs2010使用:

    为了在VC中使用方便,先建立一个bat文件,vscppcheck.bat

    cppcheck --enable=all --template=vs %1 > NUL

    因为只需要cerr输出,所以cout输出到NUL.

    然后在 VS->工具->外部工具 中添加:

    标题:cppcheck
    命令:d:Cppcheckvscppcheck.bat
    参数:$(SolutionDir)
    初始化目录:d:Cppcheck (该目录是你安装cppcheck的路径)

    使用输出窗口

    设好后只需点工具cppcheck菜单,就会输出代码检查结果,按<F4>可跳转到错误行。
     
    个人测试感觉cppcheck能帮忙找出挺多存在的隐患的,当然,如果有足够的资金预算,还是推荐使用更专业的coverity。
     
     
  • 相关阅读:
    测试websocket
    goreplay-测试app的真实流量
    apache -ab
    微信公众平台开发(69)百度地图导航
    微信公众平台开发(70)经济指标财经大事
    微信公众平台开发(68)苹果IMEI查询
    微信公众平台开发(67)百度百科
    微信公众平台开发(66)人品计算
    微信公众平台开发(65) 微博树洞
    微信公众平台开发(64)航班动态
  • 原文地址:https://www.cnblogs.com/littlemeng/p/cppcheck.html
Copyright © 2020-2023  润新知