说说自测与习惯

上周开始在公众号写文章了,算是鞭策自己记录下工作生活的一个方法吧

啦啦啦德玛西亚


说说自测与习惯_第1张图片
做一只有抱负的喵


上周尝试了一下用文字总结与回顾一天的工作与生活的感想,但是没坚持住,连续好几天没更新了,这次尝试换一种形式继续这件事情。

最近在做的事情

由于众所周知的原因,我在最近的工作中加强了自测,减少了很多显而易见的错误(代码变量名拼写错误)以及一些比较难发现的错误。我们虽然在平常的工作中强调开发测试的重要性,却在执行上不够完备,有可能因为review过代码了好像没什么问题、部分场景难以覆盖到的原因,产生了测试遗漏。现在看开发测试这件事情,还是很具备它的价值。

软件质量

良好地完成开发测试是保障软件产品质量的第一步。当一个程序员能够持续不断地按时交付高质量的软件,会给别人一种靠谱的感觉。这种靠谱的感觉是不能用其他能力所替代的,即使你能够完成高大上的功能但是却在程序编码中犯下低级的错误,就如同建筑高楼却在某个地方缺少了一面承重墙,这种情况反而会令他人忧心忡忡。

同时,保证开发质量也减少了团队的成本。描述一个问题需要沟通成本;修复一个问题需要打断原有的开发进度;对程序的重新打包部署需要额外的时间;问题的出现会延长版本周期并让人们身心俱疲。有计划有效率地在开发阶段进行自测,发现和处理问题,及早进行沟通和反馈,都会大大提升工作的效率。

有关于代码测试

有人说过,可以把任何程序看做是处理不同if-else分支的代码,问题只是如何把这些分支编写得更加优雅,而不是简单堆砌。那,也可以把对程序的测试看做是对if-else分支的检查,于是在测试理论里存在一种测试指标——代码覆盖率。

另外一种测试方式则是使用测试用例。根据用户的使用场景,构造出正常以及不正常的测试用例(test case),并观察程序能否给出我们预期的结果。比如一个函数:

int divide(int a, int b){

return a / b;

}

这个函数的test case可以如下:

a = 2 ,b = 1 返回2

a = 2 ,b = 0 提示除数参数不能为0

……

等等。根据上面的例子看显然这个函数是有问题的。

在开发自测的过程中,我们就可以根据这些检查清单(checklist)执行程序,并进行检查,有条理地发现程序的问题。

方法的延伸

对检查清单一条条执行似乎太麻烦了,于是我们可以编写单元测试用例,先确定单个模块/函数是良好运作的。同样以上面的函数为例:

int TestAdd(AddInput input){

int result = add(input.a, input.b);

assert(result == input.result);

}

最后,我们还会把用例组织成输入参数和期待的输出参数,对模块进行自动化用例的测试。确保每次程序代码变更后,这些用例都能够自动地执行并返回结果,也就是对功能是否正常的回归测试。也就是敏捷开发中的持续集成,which i dont quite understand。

最后再说说测试

评价程序的质量当中有一条,程序的可测试性。虽然不同场景下的程序可测试性参差不齐,但我相信,同样的需求下,具有更强可测试性的代码一般会更好,因为可测试性要求代码设计能够较好地对需求进行正交分解,能够区分不同的模块,会具备更强的可维护性和可扩展性。当然,在一些高性能需求下可能会对性能有所损耗。

另外,很多需求/代码设计的问题,在思考如何测试的时候,也会露出端倪。当我们讨论这个场景比较难被测试覆盖到的时候,就应该思考是不是本身的设计或是需求不合理。

最近读的书

看完三体后,刚好在kindle上看到了《The Power Of Habit》这本书想到之前tiny叔有安利过这本书,我便毫不犹豫地入了。

大部分的阅读都是在上班的地铁上完成的,目前读了55%左右,看完了个人和公司行为习惯部分。

看过的基本全英畅销书都爱在树上穿插故事与访谈,满满地深入浅出的味道,所以也容易流畅地阅读。前几章主要讲述了:

习惯的产生机制。神奇的是,它是与记忆无关的。即使脑补受损导致不能产生新的记忆的人也存在习惯行为,也能够产生新的习惯。

习惯行为的三部曲,渴望(craving)-行为(routine)-奖励(reward)。

改变习惯行为的方法,用同样的渴望和奖励,改变行为来达到改变习惯的目的。

……

习惯是个神奇的事物。有些我们需要咬牙完成的事情,只要养成了相应的习惯,可能轻轻松松不知不觉就能够完成了。书中提到,自制力也是一种类似体力的资源,当我们使用自制力完成一件事情的时候,会消耗它;那么我们可能就没有足够的韧性去完成另一件事情了。把一些重要不紧急的事情作为我们的日常习惯来完成,假以时日,我们必将受益良多。

不过养成习惯是件需要自制力的事情,这两年新养成的习惯大概也只有跑步、阅读英文读物/技术文章,记账理财、时间计划管理(GTD)这些事情还显得断断续续。

最后的吐槽

kindle的词典加载越来越慢了这是什么鬼啊查生词都好慢啊好想换voyage啊

减肥增肌一块腹肌啥时候变八块呢?

nozuonodie我又要失眠了

把lol卸掉的我又有更多时间学习和健身了

你可能感兴趣的:(说说自测与习惯)