- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2011年 9月 内蒙古大学学报 (自然科学版) Sept. 2011
第42卷第5期 JournalofInnerMongoliaUniversity(NaturalScienceEdition) Vo1.42No.5
文章编号 :1000—1638(2011)05—0505—06
程序设计缺 陷分析
于秀山,于长钺
(中国电子系统设备工程公司,北京 100141)
摘要 :程序设计是软件生命周期中一个重要阶段,程序设计缺陷将引发各种软件问题.根据软
件测试中出现的与程序设计有关的缺陷,归纳整理了程序设计方面存在的编码风格、变量初始
化、内存管理等缺陷,并通过实例对部分缺陷进行了分析,给出了修改方法.
关键词 :程序设计;软件测试;缺陷分析
中图分类号 :TP31 文献标志码 :A
引 言
言及程序设计,大部分人并不陌生,也出现了很多程序设计高手,但软件产品,甚至是微软公司开
发的操作系统软件 ,为何频繁出现问题呢?程序设计存在缺陷是一个根本原因!许多看似正确的程
序 ,其实其 中隐藏着缺陷,有很多缺陷通常情况下难 以发现,一旦触发这些缺陷,软件运行将 出现 问
题.
本文根据作者多年软件测试的经验 ,从程序设计的角度 ,对软件测试中发现的问题进行了归纳整
理 ,以期对读者有所帮助.
1 编码风格方面 问题
编码风格看似一些无关紧要的小 问题,但如果处理不当,会产生各种意想不到的缺陷.
常见的编码风格方面的缺陷主要有:布尔型变量被赋值、“一=”运算符与 “=”赋值符混用、按位
运算符 “”、“l”和逻辑运算符 “8L8L”、“lI”混用、单引号 ‘’和双引号 “”字符混用、赋值表达式错用
其他操作符、分号使用不当、自增 /自减 (++/一一)运算符和变量间有空格、错误使用 自增 /自减(+
+/一一)运算符、字符串结束符被误用、对浮点型变量进行相等比较、运算符的优先级使用错误、使用
逗号导致程序发生错误.
1.1 对浮点型变量进行相等比较示例
浮点数在内存中的存储机制和整数不同,有舍入误差,在计算机 中用以表示某个近似实数,但无
法精确.具体来说,这个实数 由一个整数或定点数乘以某个基数 (计算机中通常是 2)的整数次幂得
到 ,这种表示方法类似于基数为 1O的科学记数法.因为浮点数是非精确存储 ,所 以比较浮点数是否相
等时,不能用关系运算符 中的 “一 =”、“!一”、“=”和 “=”进行 比较运算.
例 1:
1 intmain()
2 f
3 floata;
4 floatb;
* 收稿 日期 :2011-07-03
作者简介:于秀山(1962一),男,山东栖霞人 ,研究员 ,博士.
内蒙古大学学报 (自然科学版)
if(a一一6)
return 1;
9 )
例 1的第 6行语句中,直接使用关系运算符 “==”比较两个浮点数是否相等.
当需要判断两个浮点数是否相等时,应该先设定一个精度 ,比较两个浮点数差的绝对值是否在这
个精度范围内.
修改方法 :将第 6行语句改为 “if(fabs(a--b) 1.OE一10)”.
1.2 按位运算符 “&”、“l”和逻辑运算符 “&&”、“ll”混用示例
这两对运算符 由于形似 ,容易误用.
例 2:
1 f()
2 {return1;}
3 main()
4 {
5 inta一 8;
6 intb一 1:
7 if(ag~b)f();
8 }
例 2中,第 7行条件判断语句 “if(a~b)”本意是逻辑与运算 “”,被误用为按位与运算符 “8L”
后 ,“81”结果为 0,函数 f()将不会执行.
2 变量初始化 问题
使用未初始化变量是很常见的程序错误,编译器把变量存放在内存 中的某个位置 ,如果变量没有
正确初始化,则该变量存储的数据是未知的,在程序 中直接使用该变量可
您可能关注的文档
最近下载
- 2024年新修订《公司法》解读课件.pptx
- 电网企业数字化转型的路径与策略.docx VIP
- 危险化学安全卡—航空煤油.doc VIP
- 碱金属K和Na对配合煤炼焦特性及捣固焦炭质量影响的研究-化学工程与技术专业论文.docx VIP
- 小学美术教育在跨学科教学中的融合与应用教学研究课题报告.docx
- 2025至2030中国建筑工程承包行业市场占有率及有效策略与实施路径评估报告.docx VIP
- 2024红太阳光伏组件用户使用手册.docx VIP
- 2025年梦想启航未来可期班会.pptx VIP
- 职业技术学校《机床电气控制技术》课程标准.doc VIP
- 人教版六年级上册美术教案(全册).pdf VIP
原创力文档


文档评论(0)