上周开始在公众号写文章了,算是鞭策自己记录下工作生活的一个方法吧
啦啦啦德玛西亚
做一只有抱负的喵上周尝试了一下用文字总结与回顾一天的工作与生活的感想,但是没坚持住,连续好几天没更新了,这次尝试换一种形式继续这件事情。
最近在做的事情
由于众所周知的原因,我在最近的工作中加强了自测,减少了很多显而易见的错误(代码变量名拼写错误)以及一些比较难发现的错误。我们虽然在平常的工作中强调开发测试的重要性,却在执行上不够完备,有可能因为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卸掉的我又有更多时间学习和健身了
网友评论