- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vector Software
白皮书
如何开发高质量的软件
通过测试集中型的软件开发方法来提高软件质量
“构建技术系统所要做的工作是非常繁重的,同时还需要专业知识:语言和协议,编码与调
试,测试与重构。”——James Garrett
概述
每年各个企业都在努力实现企业的主要目标。通常,这都是通过实现基于度量指标的性能目
标 (可能包括质量目标)以及利用最佳惯例规范商业流程来实现的。最后,要通过一些测试
和报告形式来评估这些目标对企业的影响。在接受评估之前,机智的员工都会要一个评估单
——但是在开发新的软件产品,确定测试目标时,他们常常会忽略这一点。
企业在设计实体产品时,会花很多时间设计产品的生成流程,以及对完成的产品进行自动化
测试。大家都不希望设计出一款无法高效地进行生产和测试的产品。产品在完成设计之前,
先要解决生产和测试的问题。如果所设计的产品成本太高,或者无法持续地投入生产,那么
该设计就没有任何意义。
如果软件开发也使用相同的做法会怎么样?假设,我们在设计软件系统时就想了很多方法来
尽量提高软件的“生产”和“测试”效率。那么,我们不仅能保证软件产品的质量,还能提
供一个很好的流程来确保软件在整个产品生命周期中都有高质量的水准。
构建可测试的软件
所设计的软件产品必须具备“可测性”,这样的观念可能需要企业转变一下思维模式。最初
在进行设计和原型制作时,基本注重的都是功能和性能问题。虽然这些方面也很重要,但是
如果生产出来的应用程序质量很差,存在很多难以维护的bug ,那么产品功能和性能也就无
从谈起了。
有一些 “简单的”方法可以用来构建 “可测性”较高的软件产品,如:确保需求的完整性
和正确性,在设计应用程序时要把软件测试放在心上,采用易于理解的编码方式,“真正”
执行代码评审程序。
细读软件需求
确保软件需求的完整性可以防止很多缺陷的出现。我们可以考虑一下怎么为“平方根”函数
写一个说明。实际上,这是深藏在数学函数库中的一个简单的函数,但是如果条件写得不够
完善,可能也会把“简单的函数”执行得很糟糕。
看看这个说明:
square_root( ) 函数可以返回输入的所有有效值的平方根。
更好的说明是这样的:
square_root( ) 函数可以返回输入的所有有效值的平方根,如果输入的是无效值,就会返回0 。
有效输入包括正的32 位浮点数,0 ,正无穷。无效输入是指:负数,负无穷,非数值。
根据这个说明,设计师可以轻松地构建一套低层级的需求和用于验证该函数能否正确执行的
的测试用例。
分离控制和数据需求
在设计系统时,如果能将控制和数据处理清楚地分离开,可以简化设计,从而帮助提高测试
效率。下图展示了如何它们是如何分离开的:
图1 :将控制和数据处理清楚地分离开可以帮助提高测试效率
清楚地将二者分开,让设计师和测试人员能够专注于输入的特定类型,运行情况和结果。此
外,精简的设计能够提高软件的重复使用率,降低维护成本。
注意编码风格和架构
要提高“可测性”,首先要做的是确保代码易于理解,灵活性高。在软件开发的早期,如果
开发工程师开发的软件“体积小,运行快”,那么他会非常受器重。因为软件系统的内存和
CPU 容量是很有限的,工程师一直要努力在每个应用程序中添加更多的功能。而且,以前
的应用程序的代码库比现在的小很多,当语言和硬件设备发生改变时,工程师常常会将代码
全部重写一遍。
如今,情况和以前大不相同了。虽然现在应用程序的组件在大小和时间方面还是有限制,但
是总的来说,应用程序的大小和生命周期都大大地扩大和延长了。所以,现在构建代码时,
如果代码易于理解和维护,那将是一个很大的优势。幸好,使代码易于理解可以大大提高“可
测性”。
咨询公司Virtual Solutions 的Bob Gary 有一句经典言论“用C 或C++编写代码就像是在没有
任何防护措施的情况下使用电锯”(引用自Byte (1998) Vol. 23, Nr 1-4 p.40)。下面有一些在编
码风格方面有助于提高“可测性”的“安全防护措施”。
图2 :利用这些窍门写出易于测试的代码
执行有重要意义的代码评审流程
如果我们问开发工程师什么样的代码算是设计良好的代码,可能每个人的回答都会不一样。
执行具有重要意义的代码评审流程是一个很好的方法,可以判定代码对于其他人
文档评论(0)