有效利用白盒工具提高代码质量

有效利用白盒工具提高代码质量

ID:38419070

大小:82.50 KB

页数:5页

时间:2019-06-12

有效利用白盒工具提高代码质量_第1页
有效利用白盒工具提高代码质量_第2页
有效利用白盒工具提高代码质量_第3页
有效利用白盒工具提高代码质量_第4页
有效利用白盒工具提高代码质量_第5页
资源描述:

《有效利用白盒工具提高代码质量》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、有效利用白盒工具提高代码质量代码质量是在软件满足了设计功能的前提下,对软件代码执行的可靠性、稳定性和高性能的一种更高的要求。如何能够有效提高代码质量,又节约程序员查找和修复bug的时间,成了一个难题。白盒测试工具的引入,恰好解决了这一难题。本文将阐述程序员如何有效利用白盒测试工具,提高代码质量和开发效率。  提高代码质量的巨大经济收益  从提高软件投资回报的角度出发,企业应在降低开发成本的同时,提高软件的可用性,这就意味着尽量减少应用程序中的bug和性能缺陷。而由于代码编写过程的人为因素,代码中的bug是不可避免的。据统计,每千行软件代码中,就可能存在20到30个bug。在无法避免b

2、ug产生的情况下,如何发现并及时消除这些bug,就成了提高软件投资回报的唯一可行办法。  首先,我们来看看修复一个bug所需要的成本。在软件交付周期的不同阶段,修复一个bug所需的成本差别非常之大。越是到了软件交付的后期,修复bug越困难,成本也就越高。从图1可以看出,在测试阶段修复bug的代价是开发阶段的几倍,而一旦产品上线,进入维护期后,所需的代价更是达到几十倍。  根据国际上的经验,在测试阶段修复一个bug的时间往往要比在代码编写阶段要多出15到75倍。  因此,越早发现bug,越早解决,企业所付出的代价就越小。我们建议在软件进入测试阶段之前就解决掉大部分的bug,即交付高质量

3、代码的意义所在。  提高代码质量的几个关注点  代码质量是在程序满足了设计功能的前提下,对软件代码执行的可靠性、稳定性和高性能的一种更高的要求。为了保证交付给测试人员的代码能够满足上述质量方面的要求,在开发阶段应该对代码进行如下方面的测试:  1.静态代码分析  为保正团队内各程序员之间编写习惯的一致性和规范性,消除容易导致错误的语法隐患,通常会制定一系列的编程规范。静态代码分析,即要求程序员对所有代码行进行规范性检查,消灭潜在隐患,提高代码的可靠性。  静态代码分析的好处在于能发现大量潜在的软件缺陷。比如下面一段VB.NET代码中,使用Asc()函数返回ASCII码。If(Asc(

4、mChar)<>13)And(Asc(mChar)<>10)Then  从语法上分析,这段代码是完全正确的。但若mChar为空,Asc()就会抛出ArgumentException错误,导致程序异常或中断。因此,从代码可靠性的角度出发,在使用Asc()之前,应对引用的字符串作判断,如下:IfLen(strchars)>0Andstrchars<>nothingThenAscii=Asc(strchars) 这样,就可以避免潜在的异常错误。而类似的这样问题,IDE的语法检查通常没有办法,只有通过手工或自动化的代码检查来发现和解决。  没有经过静态分析的程序可能跑起来不错,而实际上可能像

5、一块奶酪一样,满身是漏洞,问题一出现就很严重而且直接面对问题的是可能是最终用户。  2、代码覆盖率分析  只有经过充分测试的代码,质量才是有保障的。而程序员在做单元测试时,往往很难遍历所有的分支情况,尤其是程序对错误输入的反应往往被忽略。因此,对代码的测试覆盖率分析是保证交付高质量代码的关键。利用一些代码覆盖率检查工具,不仅可以了解代码的整体测试水平,也能够指出未经过测试的代码,给程序员以方向上的指引。  3、运行时内存分析  内存往往是导致严重性能故障的根本原因,而一些不良的编程习惯经常会导致运行时的内存泄露。这类问题几乎无法通过单元测试或功能验证来发现,而又经常被程序员忽视,直到

6、软件投入生产后才逐渐暴露出来,这时再查找和修复内存问题就非常困难了。因此,应尽量在代码交付之前消灭内存问题。运行时内存分析,即在代码调试阶段,对所有对象的内存占用状态的运行时分析,查找内存泄露的隐患。  运行时内存分析的第一步就是内存使用的监控,以便了解在运行期间,程序对内存的使用和释放情况,查找程序对内存的不当使用。  如下图所示,在A点位置,程序稳定运行,对内存的使用也基本稳定。在B点,我们打开程序的某个窗口时,程序使用了更多的内存来储存新的对象。当窗口关闭时,这些对象被释放,内存也应随之释放。而从图上B点之后的内存使用情况来看,这些内存并没有被释放。因而,可能存在着内存泄露。在

7、C点和D点再次打开前面的窗口,内存还是不断增加而没有回收。可以断定,该窗口对应的代码存在内存泄露的问题。  虽然无论是Java还是.Net,都提供了自动的内存回收机制,但内存泄露仍是引起应用系统性能劣化的一个主要原因。除此之外,运行时的内存分析还应深入的对每个对象、方法的内存占用进行分析,以便为内存使用的优化提供方向。  4、性能分析和优化  代码的执行效率,直接影响着应用程序的可用性和可靠性。因此,软件的性能问题应该在开发阶段就充分加以考虑,提高代码的执

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。