A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不二晨 金牌黑马   /  2018-12-24 14:34  /  1017 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下内容来自《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


1 个回复

正序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马