软件可测试性设计
作者:网络转载 发布时间:[ 2012/12/3 10:32:31 ] 推荐标签:
四、软件的可测试性设计
与硬件的可测试性类似,软件的可测试性强调自身的设计特征。要求软件在理论研制和设计阶段必须考虑可测试性,而且在调试、使用、维护过程中也必须进行不断的可测试性分析与验证。事实说明,软件的可测试性越好,软件存在的错误越容易被及早发现,修复费用越低。在20世纪70年代,GTE、TRW和IBM三家公司对这个问题单独作了研究,后的结果表明,需求分析阶段修复一个错误的费用还有编码阶段的1/5到1/10,而在维护阶段做同样的工作所付出的代价却是编码阶段的20倍。可见,在软件生命周期的早期确定软件的可测试性,在设计时充分考虑可测试性的问题,可以既省时又省力地提高软件的可测试性。
由于企业及用户对软件质量的重视程度越来越高,使得测试在软件开发过程中的地位也越来越重要。而且测试也是目前用来验证软件是否能够完成所期望的功能的有效方法。因此,如何提高软件的可测试性显得尤为重要。
4.1 软件文档的准确性
在软件测试过程中,经常发现程序代码与其文档描述不相符的问题。这是因为早期没有做好软件的详细需求分析。像其他事物一样,早期规划将设计问题纳入远景规划,提供好的策略,并且为后期修改或添加功能部件做好充分的准备。
在早期定义阶段,预期的变动是确定的、优先的,此时改变软件体系结构是可以接受的。系统的功能应该分解为合理的片段,使其适于建立软件模块。这些模块的格式应该标准化,使代码可以添加、删除或修改,从而适应预期的和无法预料的变动。同时,在早期定义阶段确定预期的变动,并为无法预料的变动保留余地,将有助于生产出稳定性、维护性更好的软件产品。
4.2 合理的软件构架
软件构架是系统设计和开发的核心,是系统设计师在充分分析终用户的要求、开发组织、现有的技术水平的限制等因素的基础上,根据自己的开发经验而作出的系统初步框架。构架不是强调组成系统的单个元素,而是元素之间的安排及其相互关系。
软件构架设计对于能否形成恰当的体系结构和达到系统的预期目标尤其重要。所以,在软件设计的早期阶段更应该强调构架设计的重要地位。在形成整个软件的逻辑模型的设计阶段,应该把构架设计作为主要的工作。只有运用合适的软件构架设计,才能设计出目标明确、功能完善的软件系统,以保证软件的可测试性和开发过程的顺利进行。
4.3 一致性约定
软件编码标准和命名约定对于产生可测试性的代码十分重要。因此,它们必须在开发前期确立。在开发和维护阶段,所有的新代码产品都必须遵循这一标准,包括程序扩展和修补工作。这一做对于从事维护工作的程序员是有利的,了解系统软件的一部分程序的形式特征和命名约定,能了解其他程序段的特征和约定。通过深入理解程序逻辑,即使在处理新的程序段时,维护工作也会变得容易一些。
4.4 减少模块之间的耦合
模块耦合表示模块间的联系程度。模块间的耦合作用强,会降低软件的可测试性水平。因此在软件设计时,尽可能的强调测试功能模块之间的相对独立性。
工程实际中,可以采取以下方法来降低耦合度,提高可测试性水平。
减少全局变量的个数,全局变量作为一种公共数据变量,在模块间进行传递,容易降低模块之间的耦合度;
相关推荐

更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11