什么是可测试性?

以下内容来自《Microsoft .NET企业级应用架构设计

Bruce Eckel曾提出一句流行的口号,表明软件测试的重要性:

若软件没有经过测试,那么可定无法完成工作。

测试会位于不同的层次上,比如用单元测试来判断软件的各个独立单元是否符合功能性需求,用集成测试来判断软件能否适应运行环境和基础设施,以及多个组件能否正常协同工作。最后,验收测试用来判断完成的系统是否符合客户的需求

单元测试和集成测试属于开发团队的工作,进而让团队对软件质量产生信心,测试结果会说明团队的开发状态是否朝着良好的方向发展。通常而言这些测试不会覆盖整个代码,代码的覆盖程度和代码的质量一般也没有清晰的关系。

而客户通常对但单元测试和集成测试的结果并不在意,他们所关心的仅仅只是验收测试而已。验收测试着眼于完成的系统,属于客户和开发团队合同的一部分。验收测试可以由客户书写,也可以由负责项目的团队和客户协助完成。在验收测试中你会发现如下的核对清单:

1. 使用如下数据(....)插入一个客户

2. 使用现有的ID修改该用户

3. 观察系统反应,得到期望的结果

另一个验收测试结果如下:

1. 在批处理过程中,关闭应用程序服务器的某个节点

2. 观察系统反应以及事务的结果

若验收测试顺利通过,那么项目也就宣告结束,产品也宣告成功。

 

单元测试实战

我们推荐用一个专门的程序集包含测试代码。此外,对每个类库都要提供测试。最好的实践是对程序集中每个xxx类,都有一个对应的xxxTestCase类用来测试。

我们可以使用伪对象(Fake)消除依赖

例子:

public class FakeLogger: ILogger
{

    Public void Log(string message)
    {

        Return;

    }

}

 

软件可以正常工作的概率与它所需的代码行数成反比。

Bug出现的几率与正在查看该软件地人数及这些人的重要程度成正比。

任何人都可以写出计算机能够理解的代码,而只有优秀的程序员才能写出别人可以理解的代码。    --Martin Fowler

 

想了解更多关于.NET架构的知识,请参考《Microsoft .NET企业级应用架构设计》

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值