单元测试(Unit Test) 之大小

单元测试之大

现在,软件行业的人普遍都知道测试驱动开发,知道单元测试,尽管测试驱动开发在实践中存在一些争论,软件项目本身的一些约束条件或者开发人员的编程习惯都可能成为制约因素而不能真正做到100%的测试驱动、写程序先写单元测试。然而,必须承认对软件行业来说,单元测试的理念的确是一种进步,某种意义上说这是这个行业走向成熟的一种迹象。因为,在外界看来的高科技产业-软件行业,从发展程度来看,相当一部分企业及开发人员还停留在"手工作坊时代"的初级阶段:

问题1 - 软件产品质量的好坏主要由开发人员的"手艺"决定,并没有一种客观的可以量化的评测标准来衡量。
问题2 - 软件的变更甚或开发人员的更替都会导致软件质量某种程度上的不确定性。

单元测试的出现和流行使得这一现象开始有了改观,从管理的角度看它可以解决上述两个问题:

1.单元测试在软件的最底层发挥质量保证的作用
2.单元测试可以作为一种客观的质量评测标准,保证软件的质量的一至性

政治经济学中说 “生产工具和劳动者决定了生产力水品“ ,套用一下,单元测试的大规模应用可以标志着软件开发进入了"工业时代"。

单元测试之小

题外话:当今足球的先进理念,相信很多教练都知道,但是并不是每个人都能带领球队取得成功。米卢在中国成功了,杜伊最近的一些列战绩表明他正在走向成功,起码让人看到了成功地希望。

同样,知道单元测试,使用了单元测试并不一定代表你的软件开发水平真的提高了,误解及错误的应用反而适得其反。有一个相关的例子很知道玩味,PMP培训课上讲到质量管理的时候,强茂山老师举了一个例子,他说,现在很多公司都上了ISO质量体系认证,判断这个企业是不是真的实现了ISO的要求,一个最简单的方法就是看这个企业册成本在实施了ISO后是上升了还是下降了。

那么怎样的单元测试才是正确的,使之真正对软件开发起到正作用而不是一种负担?

单元测试原则:
1。 测试代码尽求简洁 - 单元测试的目的是检验被测试的代码(生产代码 Production Code)是否正确,复杂的测试代码,只会增加开发人员的工作负担 - 既要维护成产代码又要维护测试代码。

2。 测试代码要明确测试范围 - 范围(Scope)在软件行业中并不陌生,大到项目范围,小至一段测试代码的测试范围。单元测试,作为被测试代码的调用方(Caller, Consumer),应该只关心被测试代码的公有方法及属性。因为:
a)被测试代码(生产代码)中只有其公有部分才会被外部代码调用,公有部分的测试通过即可保证被测试代码可以正常工作以供调用。

b)面向对象思想中有一个封装(Encapsulation)概念,封装使一个外部调用者只关心被调用着的公有接口,被调用者的内部实现的改变并不会影响外部调用者。只对成产代码的公有部分进行测试,使得测试代码易于维护,不会因为生产代码的内部实现(Private)的改变而被迫改变,这在一个复杂软件中尤为重要,维护测试代码不应该成为一种额外的负担。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单元测试计划 版本:V1.3 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录 1 导言 2 1.1 目的 2 1.2 背景 2 1.3 范围 2 2 进入条件 2 3 退出条件 2 4 代码级别标准 2 5 代码分级清单 3 6 单元测试风险 3 7 单元测试策略 3 7.1 策略描述 3 7.2 类型 3 7.2.1 代码走查 3 7.2.2 功能测试 4 7.2.3 边界测试 4 7.2.4 覆盖率测试 4 7.2.5 内存使用测试 4 7.2.6 测试方式 4 7.3 测试用例估算 4 8 工具 5 9 进度及分工 5 10 交付物 5 导言 目的 【描述该代码走查及单元测试计划的目的。】 背景 【描述代码走查及单元测试计划的背景,活动目的。如无特殊背景信息,可裁剪。】 范围 【说明该代码走查及单元测试计划在整个项目周期的适用范围】 进入条件 【描述项活动的测试依据和满足该阶段测试进入的条件和约束。】 退出条件 【描述满足该阶段测试退出的条件,编写时特别要根据 《项目量化管理计划》列举一些量化的退出指标,例如 致命和严重级别的缺陷清除率达到 100%】 代码级别标准 【请参考组织级文档《代码分类级别指南》,中规定进行分类,质量经理可根据项目情况,对级别和通过标准做适当调整,将最后确定的通过标准记录在以下表格中】 级别 检查项 通过标准 A 代码编写格式检查 B 代码编写质量检查 C1 代码走查 C2 C3 D1 测试用例代码覆盖率检查 D2 D3 D4 E 内存泄漏检查 代码分级清单 【由架构师根据代码级别标准,划分】 模块 代码 A B C D E C1 C2 C3 D1 D2 D3 D4 √ √ √ √ √             单元测试风险 【此处描述测试任务可能遇到的风险,以及规避的方法】 # 风险描述 可能性 风险影响 责任人 规避方法 【高、中、低】 【高、中、低】 单元测试策略 策略描述 【此处描述根据项目的具体特征所确定的代码走查及单元测试的策略(如:代码走查在本项目重点关注的地方、测试可行性分析,测试方法确定,测试类型选择)】 类型 【此处描述单元测试选择的测试类型,一般建议有如下几种:】 代码走查 目标: 技术: 完成标准: 需考虑的特殊事项: 功能测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 边界测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 覆盖率测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 内存使用测试 测试目标: 技术: 完成标准: 需考虑的特殊事项: 测试方式 【说明手工测试的部分和自动测试的部分】 测试用例估算 【说明对需要开发的测试用例数目的估算】 模块 类数目 测试类型 测试用例数 工具 【本次测试将使用的工具】 用途 工具 厂商/自产 版本 测试管理 测试执行 缺陷报告 进度及分工  【根据测试的模块,分解任务,计划工作量、时间、人员;制订该计划的同时请参考中层计划等相关计划和估算文档;对于代码走查的人员安排一般要求架构师、高级工程师对工程师、助理工程师的代码进行走查,同时高级工程师、工程师 之间进行代码互查】 模块 任务 工作量 开始日期 人员 代码走查 用例设计 用例开发 用例执行 工作量合计 代码走查 用例设计 用例开发 用例执行 交付物 【描述单元测试需要交付的工作产品】 交付物名称 责任人 参与者 交付日期 测试计划 代码走查报告 测试用例 测试报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值