大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>算法与技巧>>程序测试技巧         本站全文搜索: 友情提示:

程序测试技巧
http://www.mydrs.org  7/7/2001  大榕树


1 测试的技巧[/b]
本来是软件工程研究的内容之一,考虑到它很实际,这里就讲一讲。
测试分白盒测试和黑盒测试。竞赛评分和黑盒,而我们自己检查错误
的时候应当两者结合起来。

黑盒测试:
就是不管程序结构,给定程序输入来看输出是否符合要求。
这里我建议不仅要对整个程序测试,对单个独立模块也要单独测试。
黑盒测试因为不能反映结果是如何得出的,所以测试用例的设计
十分重要。我们稍做讨论。

1.等价类法
也就是,对于可能的各种“等价情况”,每一种设计一个测试数据。
例如,在求凸包(参见后面的计算几何部分)的程序中,就可以划分
以下测试数据:
所有点共线
凸包内部不含输入点
凸包内部含有输入点
凸包边界上含输入点
等等等价类,看看自己的程序能否在各种情况得出正确的解。
多练习,你会慢慢设计出精练又全面的等价类来。
一些经验性的等价类划分方法包括:

特殊数据的特殊组合(如:'97分区联赛高中第二题:表达式的合法性)
用手工得出解的方法来分类(如:'98分区联赛高中第二题:数的组合)

2.边界值分析
不少程序会在边界值时出问题,尤其是初学者,对边界值得出的解
往往使编程者大吃一惊。这些错误,下界往往是程序出错(如非法操作),
上界常常是超时,空间不够,数值溢出等错误。
为此,一般要使用下面的几种数据:
1)恰好在边界上或者附近的(如:0,1,-1..)
2)使输出结果为特殊值的(如:无解)
3)误差最大的数据
4)空文件等

白盒测试:
我不打算多讲,暂时你只要知道,每个模块都要测试到,尽量测试
分支结构的每种走向就可以了。

[b]2 测试数据的设计
推荐一篇论文:IOI99集训队员扬帆《测试数据设计的三要素》
我的OIBH题目在测试数据的设计上也是煞费苦心:)
一些建议是:
1.边界条件。包括规模和数据的边界
2.特殊数据。例如数据本身的特殊(0,负数,空串等),数据关系的特殊(相等,相反数,包含关系等)
3.随机数据。这些数据虽然不好手工验证,但可以测试程序的时间效率和是否有明显bug(荒唐的结果,runtime-error等)
4.手工+程序生成。例如手工设计摸板,用程序填随机数据。

测试只能发现错误,不能证明程序无误,请大家务必注意。


作 者:SRbGa
来 源:OIBH
共有2717位读者阅读过此文

  • 上篇文章程序调试技巧
  • 下篇文章程序优化技巧

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    程序测试技巧
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号