软件可测试性设计

发表于:2012-12-03 10:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  四、软件的可测试性设计

  与硬件的可测试性类似,软件的可测试性强调自身的设计特征。要求软件在理论研制和设计阶段就必须考虑可测试性,而且在调试、使用、维护过程中也必须进行不断的可测试性分析与验证。事实说明,软件的可测试性越好,软件存在的错误越容易被及早发现,修复费用越低。在20世纪70年代,GTE、TRW和IBM三家公司对这个问题单独作了研究,最后的结果表明,需求分析阶段修复一个错误的费用还有编码阶段的1/5到1/10,而在维护阶段做同样的工作所付出的代价却是编码阶段的20倍。可见,在软件生命周期的早期就确定软件的可测试性,在设计时就充分考虑可测试性的问题,就可以既省时又省力地提高软件的可测试性。

  由于企业及用户对软件质量的重视程度越来越高,使得测试在软件开发过程中的地位也越来越重要。而且测试也是目前用来验证软件是否能够完成所期望的功能的有效方法。因此,如何提高软件的可测试性就显得尤为重要。

  4.1 软件文档的准确性

  在软件测试过程中,经常发现程序代码与其文档描述不相符的问题。这是因为早期没有做好软件的详细需求分析。就像其他事物一样,早期规划将设计问题纳入远景规划,提供好的策略,并且为后期修改或添加功能部件做好充分的准备。

  在早期定义阶段,预期的变动是确定的、优先的,此时改变软件体系结构是可以接受的。系统的功能应该分解为合理的片段,使其适于建立软件模块。这些模块的格式应该标准化,使代码可以添加、删除或修改,从而适应预期的和无法预料的变动。同时,在早期定义阶段确定预期的变动,并为无法预料的变动保留余地,将有助于生产出稳定性、维护性更好的软件产品。

  4.2 合理的软件构架

  软件构架是系统设计和开发的核心,是系统设计师在充分分析最终用户的要求、开发组织、现有的技术水平的限制等因素的基础上,根据自己的开发经验而作出的系统初步框架。构架不是强调组成系统的单个元素,而是元素之间的安排及其相互关系。

  软件构架设计对于能否形成恰当的体系结构和达到系统的预期目标尤其重要。所以,在软件设计的早期阶段更应该强调构架设计的重要地位。在形成整个软件的逻辑模型的设计阶段,应该把构架设计作为主要的工作。只有运用合适的软件构架设计,才能设计出目标明确、功能完善的软件系统,以保证软件的可测试性和开发过程的顺利进行。

  4.3 一致性约定

  软件编码标准和命名约定对于产生可测试性的代码十分重要。因此,它们必须在开发前期确立。在开发和维护阶段,所有的新代码产品都必须遵循这一标准,包括程序扩展和修补工作。这一做对于从事维护工作的程序员是有利的,了解系统软件的一部分程序的形式特征和命名约定,就能了解其他程序段的特征和约定。通过深入理解程序逻辑,即使在处理新的程序段时,维护工作也会变得容易一些。

  4.4 减少模块之间的耦合

  模块耦合表示模块间的联系程度。模块间的耦合作用强,会降低软件的可测试性水平。因此在软件设计时,尽可能的强调测试功能模块之间的相对独立性。

  工程实际中,可以采取以下方法来降低耦合度,提高可测试性水平。

  减少全局变量的个数,全局变量作为一种公共数据变量,在模块间进行传递,容易降低模块之间的耦合度;

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号