软件测试是保证软件质量的重要手段之一。现在,无论是大公司,还是中小型公司,都已经非常重视软件测试,越来越多的公司也开始建立独立的测试团队。 然而,在很多中小型公司,仍然面临一个窘境:虽然建立了专门测试团队对软件进行测试,但是软件在发布后仍然会出现问题。系统测试针对的是已经开发完成的软件系统,这时候整个软件系统已经很复杂,而系统的许多内部状态是不可见的。 在这种情况下,测试人员只能根据对需求的理解对软件进行测试, 很难进行深层次的测试。 目前解决的办法是推行单元测试,在推行的过程中却困难重重,其主要的原因如下:
- 单元测试本身需要花费比较多的时间:单元测试要想达到比较好的效果,开发测试代码的时间与开发软件代码的时间相当。目前由于项目周期比较短,本来编码时间就已经不够了,在实际项目中就去掉了单元测试。其次,如果首次推行单元测试,由于相关理论和实践经验欠缺,单元测试将花费更多的时间,很多都处于摸索状态,所以单元测试的效果未必理想
- 软件需求经常变化,导致代码经常需要重构:当代码重构之后,之前编写的测试代码往往不能再使用,必须重新编写测试代码。在这种情况下, 单元测试反而成了无用功。
- 单元测试对软件设计要求较高:很多开发者在拿到需求后直接开始编写代码,而没有对软件进行精心的设计。在这种情况下代码的耦合性太高,界面与逻辑耦合在一起,逻辑与硬件控制代码耦合在一起,单元测试无法开展。
- 没有单元测试的理论基础以及实践经验:在进行单元测试时不知道如何开始。不清楚如何设计测试用例,也不清楚如何编写测试代码
1. 软件测试的定义
《GB/T15532 计算机软件测试规范》 中对软件测试给出了定义:软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、软件需求规格说明、软件设计说明和软件产品说明等规定的软件质量要求;通过测试发现软件缺陷;为软件产品的质量评价提供依据 。
1.1 软件测试的重要性
软件质量成本是为保证软件质量所进行的活动产生的成本以及因为质量问题给我们带来的损失。 质量成本可以包括预防成本、检测成本和失败成本三个部分
-
需求确认:审查的第一项内容是程序代码是否正确实现了需求文档中的要求,在这一个环节,针对需求文档中每一项要求,开发者需要对代码进行讲解,说明代码是如何实现这些需求的。在开发者讲解过程中,评审人员进行提问,以发现问题。
-
设计确认:审查的第二项内容是程序是否与设计文档中的要求相符,如果与设计文档不符,要么是代码实现有问题,要么是设计文档本身有问题, 都需要进行相应的修改。 在开发者讲解过程中,评审人中进行提问,以发现问题
-
代码规范 :在确保程序代码正确实现需求且与设计文档相符后,接下来就可以对照代码规范对代码进行评审了。
-
讨论环节:在这一环节通常是提出一些问题,然后进行讨论。例如以下的问题就非常值得讨论 ,这一步可以在评审会议之前提出一些观点
- 代码的效率足够高吗li>
- 代码的安全性足够高吗li>
- 代码方便后续维护吗li>
- 代码方便后续扩展吗li>
- 代码方便在其他项目中复用吗li>
- 代码是否考虑到了所有的异常情况li>
3.5 如何进行代码评审
在实施代码评审的过程中, 我们遇到的比较多的是,什么时候开始评审,哪些代码需要评审p>
什么时候评审
如果项目开发完成后再进行代码评审,由于代码量太多,不容易抓住重点,同时评审团队也容易疲劳,这样就很难达到预期的效果 。
建议的做法是从项目一开始编码就进行代码评审,每天下班前进行一次评审,针对当天编写或修改的代码。这种方式下每次评审的代码量不会很多,更容易达到效果;另外由于较早的开始进行评审,能够及时发现问题并进行修改,也能够更快的帮助开发者养成良好的编程习惯,尽可能的减少代码的返工率。
评审哪些内容
在进行代码评审的时候,功能代码需要进行代码走查和代码审查,而测试代码需要进行代码审查。
代码评审是项目重要的组成部分,但是执行起来确实比较困难,怎么能防止沦落成走形式呢得可以有以下几个方式提高效率。
- 选用合适的工具
- 形成代码审查清单:有了一个好的清单,除了可以提高你在代码审查过程中发现的缺陷个数,还可以帮助团队成员更好更快的进行代码审查。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!