‘测试优先‘

测试优先

测试优先是初上软件构造这门课就强调了的。写测试用例,就是理解、修正、完善spec设计的过程。
大一学期学习C语言时,我还丝毫没有测试优先的概念,那时候写SSE以及三次实验课,都是“实现优先”,天真地以为只要完成题干给的例子代码就完成了一大半,可是每次都会被一些奇奇怪怪的刁钻的测试数据给扣掉几分。那时候的编程都是以程序员的视角贯穿整个编程阶段,以至于程序的健壮性并没有得到很好的保障。做一个类比,我就像是一个球队的主教练,思考怎么面对对方时,总是在想怎样在理想状态使我的球队达到最佳,而并没有考虑对方球员的特点,于是导致我本以为可以取得零封的比赛,总会被对方出其不意的战术安排进一两个球,虽然不影响我方不败的结果,但还是让球员的零封奖金泡了汤。
大二接触到Java语言后,我才有了“测试优先”的概念。写完一个spec后,我会根据这个spec去写测试代码。我会从客户端(用户)的视角去完善测试代码,充当一个调皮捣蛋乐于触碰spec底线的“小男孩”,根据spec将测试分为几个等价类,确保能覆盖到几乎所有的客户端输入情况。做出与上文相对的类比:我还是一支球队的教练,但当我安排战术时,首先站在对方教练的角度,思考如何运用对方的阵容特点来对付我这边的球员。如果对方极端地攻或者极端地守,抑或是中规中矩地踢,对方教练会怎样针对我透露给媒体的信息来针对性地找我的弱点。思考完这些,我才会去结合对方可能的战术安排来实施我的战术安排,做到万无一失。
测试优先对于处理spec以外的情况很有帮助。在写lab1时,有一个删除已经加入图中的两点间的某一条边的操作。这时候测试用例的作用就显现出来:1、两点间是否有点并未创建;2、两点之间是否有点未加入图;3、两点之间是否有这条边。这样,写实现代码时整体思路就比较清晰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值