当然,在走读过程中这三个层面不是截然分开的,很多时候是并行的、互相交织和渗透的。代码走读的另一个重要内容是看代码是否遵守编程规范引,是否具有可读性和可维护性,注释是否充足等。按编程规范编码对提高代码的可读性以及降低编码的出错率至关重要,在大型项目中,具备可读性、规范性的代码更是日后进行有效维护的保障。因此,代码走读不仅可以保证代码的质量,更能有效地促进整个项目的编码水平。
4.单元测试
单元测试是对软件中的基本组成单位进行测试,检验其函数的正确性(包括功能正常,输出正确)。
一般来说,单元测试用例的编写最早可以在设计评审完成后就启动,和编码可以同时进行。但如果在时间允许的情况下,单元测试用仞』的编写最好放在编码后进行,这样能更好地覆盖代码的各个分支。若是以设计文档为唯一的编写依据,那么对于代码走读时发现的缺陷将在用例评审中被再次发现,造成重复劳动,用例的维护期也将提前开始。
单元测试用例编写的目的是函数覆盖,覆盖的方法有:语句覆盖、分支覆盖、条件覆盖、条件组合覆盖和路径覆盖等。为了以最少的资源做最多的测试检查,首选路径覆盖的方法。路径覆盖是设计足够的测试用例,运行所测程序并覆盖程序中所有可能的路径。
5.集成测试
集成测试是软件系统在集成过程中所进行的测试。其主要目的是检查软件单位之间的接口是否正确。其接口主要包括通信协议、调用关系、与文件或数据库等第三方中间件的交互。
集成测试用例的编写要紧扣与程序相关的各个接口,使每类接口的数据流或控制流均通过接口,从而实现接口测试的完全性。注意:对同一数据流要分别进行正确数据流与错误数据流的用例设计,对边界值的输入最好有单独的用例。集成测试还应关注接口的性能问题,根据系统的性能需求还要设计相关的接口性能测试用例。集成测试的执行主要是借助测试工具——桩程序来实现。桩程序的编写最好由他人来完成,以防止一个人对接口定义理解有偏差而使意外发生。
6.系统测试
系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性以及性能等是否满足各系统的需要。换言之,系统测试就是对系统所提供的业务流程进行测试,同时关注软件的强壮性和易用性等。系统测试应该由若干个不同的测试组成,其目的是充分地运行系统,验证系统各部件是否都能正常工作,并完成所赋予的任务。除业务测试外,还包括:
(1)恢复测试主要检查系统的容错能力。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。如拔掉与系统外界通信的网线再插上时,系统各功能能否自动恢复。
(2)安全测试检查系统对非法侵入的防范能力。如测试人员用非法通信程序与系统通信,验证是否能被系统发现并制止。
(3)强度测试检查系统对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。如在CPU或内存使用率过高或硬盘空间过低时,系统能否有良好的自我保护能力。
(4)性能测试虽然集成测试包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地进行系统性能测试。性能测试有时与强度测试相结合,经常需要其他软硬件的配套支持。
三、结束语
测试活动不是软件开发后的一个阶段,测试的对象也不仅是程序本身。测试活动应贯穿于软件开发的整个过程,只有这样,才能更有效率地的开发出有质量保障的优质软件系统。
原文转自:http://www.uml.org.cn/Test/201112161.asp