51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

楼主: lsekfe
打印 上一主题 下一主题

当前问题;如何提高软件的可测试性?(2012.3.18)(获奖名单已公布)

[复制链接]
  • TA的每日心情
    奋斗
    2015-11-25 15:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    1#
    发表于 2013-3-7 16:36:22 | 显示全部楼层
    如何提高软件的可测试性?

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

    1、被测试对象需要传入的参数过多。     
    2、被测对象过多的调用了其他类或方法。     
    3、内部的逻辑判断过多(内部牵扯复杂)。     
    4、需要构造的作为参数的对象本省过于复杂。     
    5、和界面显示部分交互过于平凡(耦合性太强)。
       
    针对以上问题,建议在软件设计过程中遵循以下原则:     
    1、首先最重要的是坚持测试驱动设计(测试先于设计)的方法。     
    优先编写测试代码。这是标准的 XP 方法。这不是说您应该一次性编写全部测试代码后,再一次性全部实现。先写验收测试,再写单元测试,编写一些测试代码,实现它们,再编写一些测试代码,再实现它们等等是个更好的办法。设计以这种方式得以进展;在实现阶段捕捉错误并在下一组测试中改正它。以这种方式编写测试也更少会使人畏缩。     

    2、尽量做到每个操作对应一个方法,使方法小型化。   
    使用小型方法说明和重载带缺省方法参数的方法将使您在测试中调用这些方法变的愉快的多。否则,在测试这些方法时您将不得不构造额外参数。如果参数很大,那么将很快导致代码膨胀。更糟的是,它会诱使您编写比在其它情况下更少的测试。     

    3、对于显示部分(GUI),尽量做到显示与控制分离。     
    把代码移到 GUI 视图的外面。然后各种 GUI 动作就能成了模型上的简单方法调用。这样,对 GUI 测试者来说,通过方法调用测试功能比间接地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的更容易。     

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

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

    答案整理自互联网,仅大家参考
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-25 15:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2013-3-7 16:37:22 | 显示全部楼层
    如何提高软件的可测试性?

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

    1、被测试对象需要传入的参数过多。     
    2、被测对象过多的调用了其他类或方法。     
    3、内部的逻辑判断过多(内部牵扯复杂)。     
    4、需要构造的作为参数的对象本省过于复杂。     
    5、和界面显示部分交互过于平凡(耦合性太强)。

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

    2、尽量做到每个操作对应一个方法,使方法小型化。   
    使用小型方法说明和重载带缺省方法参数的方法将使您在测试中调用这些方法变的愉快的多。否则,在测试这些方法时您将不得不构造额外参数。如果参数很大,那么将很快导致代码膨胀。更糟的是,它会诱使您编写比在其它情况下更少的测试。     

    3、对于显示部分(GUI),尽量做到显示与控制分离。     
    把代码移到 GUI 视图的外面。然后各种 GUI 动作就能成了模型上的简单方法调用。这样,对 GUI 测试者来说,通过方法调用测试功能比间接地测试功能容易的多。另一个好处是它使修改程序功能而不影响视图变的更容易。     

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

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

    答案整理自互联网,供大家参考
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-5 15:07 , Processed in 0.070928 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表