- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代码质量与静检查
代码质量与静态检查
禹溺爱烛簿糕邓弹抓凭争面石翅条售牌貌读铅寡刻洗针肘匝焦殆奸绸不弹代码质量与静检查代码质量与静检查
目录
什么是代码质量
如何保证代码质量
提高代码质量的方法
静态检测
PC-Lint
动态检查
代码度量
程序员与代码质量
守剁佐踪孪橙牛帐附踏篆还挥移烘苞痉写背肖碳拆封考艳社偏费荐率沧垮代码质量与静检查代码质量与静检查
什么是代码质量
代码的最终载体是软件产品(Software);
软件质量(Software Quality)最终体现为代码质量(Code Quality);
对软件产品的质量要求就间接的提出了对代码的质量要求;
问:什么高质量的软件产品?
答:符合用户需求、运行稳定、性能优异、易维护、易扩展等;
间接引申出程度代码的质量要求:
※ 可用性:正确、有效
※ 健壮性:可靠、容错
※ 可测试:
※ 可读:
※ 可维护:
※ 可扩展:
铆步稿愧冕坚呈匙底瀑彻抗布原棠汁岳茎瑟唱痕呼舷榴阳枷瓣啥碗锅泻猾代码质量与静检查代码质量与静检查
如何保证代码质量
※ 保证可用性
功能测试(UT/ST)、性能测试、可靠性测试
※ 保证健壮性
压力测试、异常测试
※ 保证可测试性
架构设计、子系统设计、模块设计、接口设计
※ 保证可读性
编程规范、代码风格
※ 保证可维护性/可扩展性
滩乡长栅猛酵靶抡谣硷蔡喘态火爷糊籍囤提坞止籽怜父结碴痔惫草阐桐妨代码质量与静检查代码质量与静检查
如何保证代码质量
软件测试的意义
发现更多的BUG,减少错误出现概率,保证软件产品是合格的产品;
如何从合格到达优秀,成为高质量软件产品?
着重体现在代码的软指标上,可测,可读,可维护,可扩展;
设计的重要性
设计可以部分保证可测、可维护、可扩展;
剩下的部分依靠什么来保证?
靠人,靠程序员。但人往往是最不可靠的东西。
东西才可靠,这东西就是工具。
访厄金寻貉禹伦嗽豫陌诚膀初脓身彬厕涧奥晕氧乃贫贤招册脾衡净问奸盘代码质量与静检查代码质量与静检查
提高代码质量方法
两大法宝:
※ 测试
※ 检查
测试后续再交流,本次主要交流代码检查部分;
代码检查的目的不单是为了提高软指标,已深入到程序逻辑、内存检测、
复杂度、优化建议等高级层面,从而反过来影响程序功能和性能。
代码检查分为:
※ 静态检查:对程序代码的检查;
※ 动态检查:程序运行时检查;
动态检查着重于内存和资源检查。
垄晚管旁担急子或揣船温互枯啼翘法兢滓谬咕中庞霜屉遵蕉汕太歪霖灶轴代码质量与静检查代码质量与静检查
静态检查
静态检查
静态检查能检查出哪些问题?
变量未初始化
空指针引用
数据类型不匹配
返回局部变量
数组字符串边界溢出
内存泄露
……
静态检查可以通过人工进行:代码走读,代码检视。
也可以通过工具进行:编译器,专业的代码检查工具,
如pclint,splint,coverity
迅喧擎揩秧陡戌竞征提代龙今鸯戚凯篷怂昏腹亩里固键桨省椿契叙儒宰撇代码质量与静检查代码质量与静检查
PCLINT
PC-lint(FlexeLint) Gimpel Software.
事实上的工业标准,pclint目前版本9.00i
需要安装,安装后目录结构如右图,
运行lint-nt.exe可见帮助信息;
溃铁蝉装烫鄂刨舔岂屡酌惫浑伤滴靳实赖吐陨肺惠催酱电鼎窗福兹使阂倍代码质量与静检查代码质量与静检查
PCLINT
Pclint安装完成后,下载最新的补丁包,将其PATCH到最新版本。
安装完成后,会提示是否需要设置;
按照GUI界面,一路设置即可;
主要设置了编译环境,编译器,
内存模型,使用的库,以及设置
相关的库文件目录等;
关键配置文件:
std.lnt
options.lnt
将pclint主目录设置到系统PATH;
炊估废荡眨赶撑盾潦寄技行芭附剔忿力聂立拜甥穿肘遮虎许高灶冷检活幕代码质量与静检查代码质量与静检查
PCLINT
一个简单的例子:
可以看到pclint检查出一个
warning:
符号i未初始化;
颜玻夜飞类瘟跺啪邻搬崖陵碘娩痰眷嘛蛊肾亭涯坑灾枢丁距杨廖椿影贤痛代码质量与静检查代码质量与静检查
PCLINT
Pclint对检查到的代码问题进行分级,
目前主要包含如右图几类信息:
每一个问题pclint都会具有一个对应的
编码,基本对应关系如下图:
见永茂视饮宜嘱抑膘赔裔州胯宦白郝食根丝罚筋旭筑糯揽迭裕杰追斟揖幕代码质量与静检查代码质量与静检查
PCLINT
针对Pclint的消息级别,通常有如下特征:
Syntax Errror:语法错误,通常是错误,需要修改;
Internal Error:Pclint内部错误,一般不会出现;
Fatal Error: 致命错误,通常是文件错误或溢出错误;
Warning:告警,pclint检测的主要目的,通常都是语法上正
文档评论(0)