山东公务员考试网计算机常识-软件调试方法
调试的关键在于推断程序内部的错误位置及原因。从是否跟踪和和执行程序的角度,类似于软件测试,软件调试可以分为静态调试和动态调试。软件测试中讲座的表态分析方法同样适用静态调试。静态调试主要指通过人的思维来分析源程序代码和排错,是主要的调试手段,而动态调试是辅助静态调试的。主要的调试方法可以采用:
1、强行排错法
① 通过内存全部打印来排错。
② 在程序特定部位设置打印语句——即断点法。输出存储器内容,就是在程序执行到某一行的时候,计算机自动停止运行,并保留这时各变量的状态,方便检查,校对。
③ 自动调试工具。其功能是设置断点,当程序执行到某个特定的语句或某个特定的变量值改变是地,程序暂停执行。程序可在终端上观察程序此时的状态。
应用以上任何一种技术之前,都应当对错误的征兆进行全面彻底的分析,得出对出错位置及错误性质的推测,再使用一种适当的排错方法来检验推测的正确性。
2、回溯法
该方法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。然后,从发现“症状”的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的范围。
3、 原因排除法
原因排除法是通过演绎和归纳,以及二分法来实现的。
演绎法是一种从一般原理或前提出发,经过排除和精化的过程来推导出结论的思考方法。演绎法排错是测试人员首先根据已有的测试用例,设想及枚举出所有可能出错的原因作为假设。然后再用原始测试数据或新的测试,从中逐个排除不可能正确的假设。最后,再用测试数据验证余正气假设确定出错的原因。
归纳法是一种从特殊扒断出一般的系统化思考方法。其基本思想是从一些线索(错语征兆或与错误发生有关的数据)着手,通过分析寻找到潜在的原因,从而找出错误。
二分法实现的基本思想是,如果已知每个变量在程序中若干个关键点的正确值,则可以使用宣传语句(如赋值语句、输入语句等)在程序中的某点附近给这些变量赋正确值,然后运行程序并检查程序的输出。如果输出结果是正确的,则错误原因在程序的前半部分;反之,错误原因在程序的后半部分。对错误原因所在的部分重复使用这种方法,直到将出错范围缩小到容易诊断的程序为止。
需要注意的一个实际问题是,调试的成果是排错,为了修改程序中错误,往往会采用“补丁程序”来实现,而这种做法会引起整个程序质量的下降,但是从目前程序设计发展的状况看,对大规模的程序的修改和质量保证,又不失为一种可行的方法。
更多精彩资讯请关注查字典资讯网,我们将持续为您更新最新资讯!