ACM关于调试和测试

来源:互联网 发布:淘宝上靠谱的玉石店铺 编辑:程序博客网 时间:2024/06/05 02:50
  

关于调试和测试:

1. 下面是几种比较常见的错误:

1. 输入输出格式错误


2. 数据类型错误(尽量用大的类型)


3. 范围检查错误(可以稍稍加大上下界)


4. 变量名称错误


5. 漏语句(看事先设计好的变量是否都用上了,然后看每个模块是否实现了应有的功能,是否完成了接口)


2. 我们应对于每道题设计充分的测试数据,并保留那些比较具有代表性的测试数据,以便于优化的时候比对.





3. 一定要记住删除屏幕输出!



4. 最后一定要记住关闭程序中用于临时调试的特殊设置和语句!



5. 输出数据的每一行(包括最后一行)必须以一个换行符结束,行末不要保留多余空格。对于每一道试题,在相应的目录中都有一个格式检查程序来检查输出文件格式的合法性。该程序的文件名是:<shortname>_check。格式检查程序仅仅检查输出文件名的正确性和文件格式的合法性而不检查结果的正确性。检查结果显示在屏幕上。


6. 如果领队或参赛选手对评测结果有异议,可以填写相应的表格,并在评测结果公布后的三个小时之内提交评测委员会申请复议或复评。当领队或参赛选手对复议或复评结果仍有异议时,应提交NOI科学委员会仲裁,并以NOI科学委员会的仲裁结果为该项评测的最终结果。


7. 调试的时候,一定要钻输入文件的牛角尖,考虑到各种情况。


8. 调试的时候,常常可以编一个非常非常易编的程序,采用算两次的方法,不过前提是必须保证正确。


9. Writeln是Fp中最笨但又是最准确的调试方法。


10. 调试时每发现一个错误,都最好浏览一下整个程序,看是否有类似错误,这样非常有效!


11. 在每一处可以中止程序的地方,都要看一看是否需要close file.


12. 程序出现不确定性的问题,如对于同样数据,有时死机,有时不死机,但多半都是随机模块有误!


13. 指针出错常常是出现了Nil^.Next


14. 递归程序的调试应该使用F7(F8)+Call Stack,尽量不要用F4。


15. 不要只顾埋头拉车,要抬头看路。当被一两个子程莫名其妙的错误弄得晕头转向的时候,记住:很可能错误在其他地方。


16. 读写文件之前才打开文件,操作完毕立即关闭。


17. 每改完一个错误要想想是否改正确了,是否改彻底了,程序中(特别是有Paste的地方)是否有相同错误。


18. 很多题目最易忽视的就是初状态=末状态的情况,还有初状态和末状态存在可操作的决策。(如Mars Explorer)


19. 多考虑一些特例,在这方面认真些,全面些,仔细些,常比多考虑些时空上限划算得多。


20. 编函数的时候千万别忘了给函数赋返回值,否则会引起随机性错误。


21. 调试语句一般和上下文保留一空行,最好加上注释,并且一定记住在最后删除。


22. 中途输出后结束一定要记住Halt


23. Byte,Shortint调试会以String类型出现,第一位以字符串长处理,遇到#0中止。FP和RHIDE中皆如此。


24. FP中的Extended类型有时候变量值未改变。


25. 调试和测试的时候一定要充分考虑到各种边界和特殊情况。


26. 自测时千万不要忘测数据上限,主要是看是否会超界。大半错误均源于此!之后仔细察看Const中的数。


27. 大数组处理很容易出错,所以尽量避免开过大的数组及其调试。


28. 多维数组的调试RHIDE比FP Bug还多,而大数组多元素的查看可考虑使用RHIDE


原创粉丝点击