构建之法---测试与效能分析(保证质量)

     摘要:上一周了解了软件工程的一些基础知识,第二周我们主要学习的理论知识点是单元测试、回归测试、效能分析、个人软件开发流程,练习在windows+visual studio上进行单元测试和效能分析,在unix/linux平台上进行单元测试和效能分析,在学校如何更好地学习程序设计和软件工程,以及程序效能分析工具。

   单元测试是个可以让自己负责的模块功能定义尽可能明确,模块内部的变化不会影响其他模块,而且模块的质量能够得到稳定量化的保证。当我们写好一个模块后,我们就可以创建单元测试文件,比如针对输入的空字符串、长度为零的字符串、都是空格的字符串。单元测试应该是在最基本的功能和参数上验证程序的正确性,必须由程序的作者来写,测试过后,机器状态不变,测试要快,应产生可重复、一致的结果,单元测试应该和产品代码一起维护和保存。 当一个模块或功能以前是正常的,但是在新的构建中出了问题,那么这个模块就出现了退步,从正常工作的稳定状态退化到了不正常工作的不稳定状态,这时候就需要回归测试。  

    效能分析有两种办法:抽样和代码注入。抽样就是不需要改动程序,运行较快,可以很快找到瓶颈,但是不能得到精确的数据,也不能准确的出代码中的调用关系树。代码注入就是将检测的代码加到每一个函数中,这样程序的一举一动都会被记录在案,各个效能数据都可以被准确地记录,缺点是程序的运行时间会大大增加,还会产生很大的数据文件。效能测试、分析、改进、再次效能测试,可以逐渐提高程序的效能和我们的编程水平,如果我们不经分析就盲目优化,也许会事倍功半。

    大学四年级的学生和工作三年的软件工程师对比,有工作经验的会在需求分析、测试多花时间,而在具体编码花的时间却少一些。可以看出我们在毕业之后并不是一味编码,而是学着更好地解决实际问题。