- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件可测试性的设计
?? 一次跟客户做 HYPERLINK javascript:; \t _self 测试交流,被问到一个关于软件可测试性的问题,一时间竟无语,以前了解过,却没有真正的关注过,项目马上要做客户需求书和产品需求书了,这个阶段需要做一些把握了,网上搜罗到了好东东,收藏在坛子了,也与各位同仁共享
?
软件可测试性设计Author: Vince?????
1? 概述??? 随着软件行业的迅猛发展, HYPERLINK javascript:; \t _self 软件测试也逐渐受到越来越多的软件公司所重视,然而开发出来的软件直接就可以拿出来做测试吗?根据近几年来的实践证明,在设计软件时事先没有对软件的可测试性进行周密设计和部署的软件在测试时总是很难于进行,直到测试无法进行下去为止。被测软件在编码时需要考虑给测试和后期的产品维护提供必要的手段和接口支持,即要求软件具有可测试性。基于可测试性的目标考虑,良好的架构设计,完备的接口,使得软件测试更加高效和可行,同时产品维护也更加便利。【文章来源:文斯 HYPERLINK javascript:; \t _self 测试技术研究中心 HYPERLINK /vincetest /vincetest】
??? 本文描述的范围:可测试性定义、可测试性特征、可测试性设计。
??? 读者对象:系统分析和设计人员、开发人员、测试人员。???? 参考文献:??? 1.《软件可测试性需求设计》?????????????? Vince??? 2.《高质量C++/C编程指南》??????????????林锐??? 3.《软件工程思想》??????????????????????????林锐
?【文章来源:文斯测试技术研究中心 HYPERLINK /vincetest /vincetest】
2? 软件可测试性定义2.1? 可测试性定义??? 软件的可测试性是指在一定的时间和成本前提下,进行测试设计、测试执行以此来发现软件的问题,以及发现故障并隔离、定位其故障的能力特性。简单的说,软件的可测试性就是一个计算机程序能够被测试的容易程度。??? 一般来说可测试性很好的软件必然是一个强内聚、弱耦合、接口明确、意图明晰的软件,而不具可测试性的软件往往具有过强的耦合和混乱的逻辑。
?【文章来源:文斯测试技术研究中心 HYPERLINK /vincetest /vincetest】
2.2? 可测试性特征? 1.可操作性:“运行得越好,被测试的效率越高。”??? 1)系统的错误很少;??? 2)没有阻碍测试执行的错误;??? 3)产品在功能阶段的演化(允许同时的开发和测试)。???? 2.可观察性:“你所看见的就是你所测试的。”??? 1)每个输入有唯一的输出;??? 2)系统状态和变量可见,或在运行中可查询;??? 3)过去的系统状态和变量可见,或在运行中可查询(例如:事务 HYPERLINK javascript:; \t _self 日志);??? 4)所有影响输出的因素都可见;??? 5)容易识别错误输出;??? 6)通过自测机制自动侦测内部错误;??? 7)自动报告内部错误;??? 8)可获取源代码。
? 3.可控制性:“对软件的控制越好,测试越能够被自动执行与优化。”??? 1)所有可能的输出都产生于某种输入组合;??? 2)通过某种输入组合,所有的代码都可能被执行;??? 3)测试工程师可直接控制软件和硬件的状态及变量;??? 4)输入和输出格式保持一致且有结构;??? 5)能够便利地对测试进行说明、 HYPERLINK javascript:; \t _self 自动化和再生;??? 6)接口和模块易控制;??? 7)业务流程和场景易控制。
? 4.可分解性:“通过控制测试范围,能够更快地分解问题,执行更灵巧的再测试。”??? 1)软件系统由独立模块构成;??? 2)能够独立测试各软件模块;??? 3)业务流程和场景易分解。
? 5.简单性:“需要测试的内容越少,测试的速度越快。”??? 1)功能简单性(例如:特性集是满足需求所需的最小集合);??? 2)结构简单性(例如:将体系结构模块化以限制错误的繁殖);??? 3)代码简单性(例如:采用代码标准为检查和维护提供方便)。
? 6.稳定性:“改变越少,对测试的破坏越小。”??? 1)软件的变化是不经常的;??? 2)软件的变化是可控制的;??? 3)软件的变化不影响已有的测试;??? 4)软件失效后能得到良好恢复和隔离。
? 7.易理解性:“得到的信息越多,进行的测试越灵巧。”??? 1)设计能够被很好地理解并遵循行业规范;???
文档评论(0)