今天下午开了个比较长的软件质量的会议,认真听的时间也就十几分钟,但是还是有些想法在这里写一写。以后可以回来反思这些成熟或者不成熟的想法。
怎么保证软件质量,其实也没有什么大不了的事情,就是怎么把一件事情做正确,怎么把一件事情做正确是方法论上的事情了。这里只探讨怎样把软件做正确。首先要了解什么是软件,我觉得软件是人的意图的表达,就是把人做的事情让计算机去做。按照这个思路去理解,有些事情就不难了。
准备开始写一个软件之前,一定是需求明确,这个过程就是清楚明白地表达意图。说不清楚,就去做个调研任务。把人做的事情让计算机去做,至少要明确计算机是否能做,这里含经验,能力的部分。我的观点是说不清楚需求,就不要写代码,先做实验论证。这个时候测试人员也要和开发一起来审核需求。
需求清楚明白的说出来,从各个角度经得住审核,下一步为这个需求做个软件设计,把我们软件上升到软件工程上面去,毕竟前人有很多经验总结。面向对象的,面向服务的,ESB的,MQ的,单点登录的等等。部署的事情在这里想一想,毕竟写的软件还是要到机器上去实际部署运行的。
这个时候才是做软件的功能划分,子任务划分到个人,敏捷的开发代码,多做小功能的里程碑介绍。开发人员一般是用正向思维来写软件,如果要提高质量,代码部分是关键了,代码对流程前后左右上下的考虑要到位,最常听到的一句话就是当初在if 后面把else处理了多好。有些时候集中处理某些情况,减少代码量,如面向切面编程。
软件测试,处理固定测试环节可以用自动工具来做之外,有些业务性的也要考虑到缜密,怎样练就思维的缜密,有很多方法,如:5W1H。
会上讨论了各种各样的方法,如果要把所有罗列出来,估计不下百种吧,如果全部去过,实在是吃不消,为自己的项目找到合适的方法集合,才是关键。不是填一个又一个的表格、文档,把思维映射为代码已经够累了,让开发多休息,在清醒时写代码。
最后,软件以及整个软件工程,不是冷冰冰的东西,尊重人性,才能做好这件事情。开发人员也要不折不挠的坚持。坚持不是不尊重人性,而是发挥人性。
PS:琐琐碎碎的想法。