C语言进阶04-预防、检测及消除bug

C语言进阶04-预防、检测及消除bug,第1张

01

开发软件不等于编码

程序时会有"编码-->测试-->调试"的习惯很不幸,这是开发软件的错误方法专业的程序员会使用策略来预防、检测及消除软件bug编码不是在开发软件编码的意思是在文本编辑器中输入语句编码只是开发软件的小部分开发软件需要编程前、编程中、编程后的许多步骤下面分着讲解

02

编程前

1、了解需求

2、考虑可能的输入和期望的输出

3、识别出有效但非期望的输入和正确的输出这是对于开发可靠的软件而言是一个关键点

4、识别出无效输入并找到检测它们的方法要注意即使输入无效的数据时,程序也不能奔溃

5、想出解决办法,并记录

6、设计程序,可以节省大量的时间

03

编程中

1、若想正确且更快的完成程序, 就写更多的代码为了满足一个要求而把代码放到一个更大的程序之前,写一个小程序来测试你的解决方案即单元测试

2、使用自动缩进的文本编辑器可以帮你检查代码是否对齐,可以节省宝贵的时间

3、在运行之前一行一行的读代码可以帮你找到通过测试很难发现的问题

4、自己想一些测试例子 若自己不知道自己写的代码,则计算机也不知道

5、尽量使用函数来重构代码,避免复制代码

6、要用版本控制系统(这不是废话吗)

7、编译时,警告信息也不要放过

04

编程后

不要依赖测试,测试只会告诉你程序没有正常工作,不会告诉你程序真的在正常运行很可能测试用例没有涵盖所有可能的方案通过测试用例涵盖所有可能的方案是很困难的

05

常见错误

未初始化变量: 一些人认为所有的变量都会自动初始化为0,C语言中不会初始化通过测试很难测试出来

错误数据类型: 需要理解并正确地使用类型,编程语言的趋势是让数据类型更有限制性,防止犯意外的错误

06

后执行式和交互式调试

调试一个程序分为几个阶段, 举个列子:

1、从一个文件中读取一些整数;

2、把整数排序;

3、把排好序的整数存到另一个文件中;

单元测试: 在上面三部整合之前测试每一部分叫作单元测试

对于单元测试,经常需要写一些额外的代码,作为单独部分的"驱动"调试可能是交互式或后执行式的若程序会花费几个小时,你就不会想要用交互式来调试这个程序了相反,你会想要程序打印出调试信息,即日志

对交互式调试而言打印调试信息存在多个问题:

1、需要插入代码来打印调试信息多数情况下,调试信息必须在随后被移除,因为此信息不应该出现在最终的代码和它的输出中

2、如果有很少的信息,那么就会缺少足够的信息帮助你判断哪里错了

3、如果信息太多,可以忽略不相关的信息,获得好信息是很困难的

4、最糟糕的是,问题可能会出现在意想不到的地方,而那里却并未插入调试信息结果就是添加越来越多的调试信息这是很耗时的

07

生产代码与测试代码分离

自己应该能检测出自身bug的程序编写程序之前就应该考虑编写测试代码这是普遍的做法,这个称为 测试驱动的开发 开发的时候需要将测试代码和开发代码分开,这样可以随意删除测试代码

1、申请的提出 从国内产业的全部生产或合计总产量占大部分的国内生产商提出书面申请开始。 2、进口国当局立案审查和公告 当局应审查申请书所提供证据的准确性和充分性,以确定是否有足够的证据发起反倾销调查。当反倾销有充分证据提起时,当局应予以公告。 3、反倾销调查过程 4、一旦调查开始,当局应将国内产业的生产商提出的申请全文提供给已知的出口商和出口成员方当局,并应在受到要求时,向其他有关的有利害关系的当事人提供。在调查过程中,有关当局作出存在倾销的最初裁决,并且断定采取临时措施对防止调查期间发生损害是必须的,可采取临时措施。 5、裁决 反倾销调查的结局就是依据倾销是否存在,是否构成对国内产业的影响作出最终裁决并予以公告,作出肯定的最终裁决的方式即根据倾销的幅度和影响征收反倾销税。 6、行政复审 在任何有利害关系的当事人提出审查要求,并提交了认为十分必要的确定资料时,或者征收反倾销税已过了一段合理的期限,当局应对继续征收反倾销税的必要性进行审查时进行。行政复审一般应在12个月内结束

以上就是关于C语言进阶04-预防、检测及消除bug全部的内容,包括:C语言进阶04-预防、检测及消除bug、反倾销调查的程序是什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10089766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存