选择显示字体大小

如何提高软件的可测试性

                          [原创]如何提高软件的可测试
            matrix开源技术-yake
   由于企业及用户对软件质量的重视程度越来越高,使得测试在软件开发中的地位越来越重要。测试是目前用来验证软件是否能够完成所期望的功能的唯一有效的方法。但是在测试的实施过程中,由于软件设计本身存在的可测性性太差的问题。导致了测试的难度相当大,甚至出现了无法测试的情形。下面结合日常测试工作中遇到的问题简要的谈一下如何提高软件可测试性的问题。
   通常情形下,测试难以进行由以下几方面原因导致:

     1,被测试对象需要传入的参数过多。

     2,被测对象过多的调用了其他类或方法。

     3,内部的逻辑判断过多(内部牵扯复杂)。

     4,需要构造的作为参数的对象本省过于复杂。

     5,和界面显示部分交互过于平凡(耦合性太强)。

   针对以上问题,建议在软件设计过程中遵循以下原则:

    1,首先最重要的是坚持测试驱动设计(测试先于设计)的方法。
优先编写测试代码。这是标准的 xp 方法。这不是说您应该一次性编写全部测试代码后,再一次性全部实现。先写验收测试,在写单元测试,编写一些测试代码,实现它们,再编写一些测试代码,再实现它们等等是个更好的办法。设计以这种方式得以进展;在实现阶段捕捉错误并在下一组测试中改正它。以这种方式编写测试也更少会使人畏缩。

    2,尽量做到每个操作对应一个方法,使方法小型化。

使用小型方法说明和重载带缺省方法参数的方法将使您在测试中调用这些方法变的愉快的多。否则,在测试这些方法时您将不得不构造额外参数。如果参数很大,那么将很快导致代码膨胀。更糟的是,它会诱使您编写比在其它情况下更少的测试
  
    3,对于显示部分(gui),尽量做到显示与控制分离。

把代码移到 gui 视图的外面。然后各种 gui 动作就能成了模型上的简单方法调用。这样,对 gui 测试者来说,通过方法调用测试功能比间接地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的更容易。

    4,对于可能要作为参数的类,可以做一个接口,用接口说明外部程序组件使得我们可以容易地在测试案例中模拟这些组件。当需要时可以实现改接口形成一个空类作为参数传入。特别是当该内还没有完全实现时,这种方法最为行之有效。

    最后,如果自己不负责测试工作,作为开发员在设计过程中要时刻提醒自己“我如何才能测试这些代码?我如何才能以可测试方式编写这些代码”。

matrix开源技术原创
如果你对此文章有任何看法或建议,请到matrix论坛发表您的意见.
您也可以点击-yake查看翻译作者的详细信息.


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons