我们小组于12月11日在东九教学楼召开了会议,小组第二次会议中就讨论了被测系统中风险最高的模块,于是选择管理员的教师添加模块,针对代码展开静态评审。这一次会议,小组主要讨论了应该从哪些方面来测评代码的规范,小组决定从代码的风格规范和代码的设计规范以及代码的效能、可读性和可测试性进行测评,并写出文档进行记录和总结。
好吧,我在拍照,不在图片内。
这次会议中,我们小组就代码风格规范、代码设计规范、代码效能、代码可读和可测试性进行讨论。
代码风格规范包括:
缩进、 行宽、 括号、 断行与空白的{}行、分行、命名、下划线问题、 大小写问题、 注释。
其实之前一直觉得读软件应该学编程,对测试课程有点抵触,但认真学习发现,其实学测试对开发很有帮助,比如代码风格这几点,虽然平时老师有强调,但自己并没有放在心上,但是做了测试发现好的注释,好的编程习惯,确实能够减少错误的发生。
代码的设计规范需要注意的就更多了,
1) 是否遵从已知的设计模式或项目中常用的模式:该项目使用了javaweb基本框架,使用了JSP+Serlet+Javabean的MVC设计模式,JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。
2) 有没有硬编码或者字符串/数字等存在:该代码中没有硬编码,但是有字符串的存在。但是不影响使用功能。
3) 代码有没有依赖于某一平台,是否会影响将来的移植(win32到win64):该代码不支持从32位移动到64位,但是由于是JAVA写的,所以不依赖于某一平台。
4) 在本项目中是否存在类似的功能可以调用而不用全部重新实现:在教室添加模块上每个函数都有自己的功能,所以每个函数都必须实现。
5) 有没有无用的代码可以清除:该代码中有一些注释掉的代码可以删除。
6) 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常:该代码并没有对错误的处理,若添加教师错误则直接会报404的错误但无相应处理。对于外部函数则处理了异常。
7) 参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数:代码的字符串长度以字节长度并且从0开始计数。
此外,还有代码的效能,这一点相较之前两点可能就让人比较陌生了。
代码的效能如何其实说白了就是,该代码的效能现在处于可控状态,不会轻易的崩溃或者出现bug,最坏的情况是用户使用不当程序崩溃。
在我们检测的教师模块部分,我们重点放在了循环结构,因为上课武老师讲过,循环那可以让时间指数级增加,我们就重点检查代码中,特别是循环中是否有明显可优化的部分:代码中的循环都为for语句,无明显可优化的的地方。
然后,对于系统和网络调用是否会超时?如何处理:该代码在登录系统时可能无法响应,在添加教师信息时无明显超市,暂时无解决方法。
关于系统可读性,之前注释较少,我们组在关键处增加了注释。