单元测试技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• setUp(),初始化通用对象或资源 • tearDown(),销毁通用对象或释放资源 • 测试方法(Test Method),以test开头的方法,以Test结尾的测试类名称 • 异常测试(Exception Test) public void testMethod1 {
try{ obj.method1(param1,param2); fail();
内容
• 软件开发的困难 • 测试技术简单介绍 • 单元测试 • 测试驱动开发 • 问题及解答
软件开发的困难
• 软件总是在不断修改 1. 添加新特性 2. 修改BUG 3. 优化 4. 重构
软件开发的困难
• 一般我们如何测试修改 1. 编译 2. 启动服务器 3. 启动客户端(或者浏览器) 4. 鼠标或键盘操作 5. 查看结果 6. 重复这些操作
单元测试
• XUnit模式-结构
TestSuites
TestCase
Test [Java method] Fixtures: common setup/teardown code
单元测试
• XUnit模式-TestCase生命周期
单元测试
XUnit模式
• 断言(Assertion),true-正常;false-意外, assertFalse, assertEquals, assertNotEquals, assertNull…
TestSuite result = new TestSuite(“P tests”); result.addTestSuite(ATest.class); result.addTestSuite(BTest.class); result.addTestSuite(CTest.class); return result; } }
2. 集成测试:测试多个对象之间或子系统之 间是否正确工作
3. 功能测试:测试整个系统是否工作正常 4. 性能测试:测试系统的性能 5. 验收测试:用户测试系统是否满足要求
测试技术简单介绍
• 发现软件错误的情况有很多 : 1. 由首次编写代码的开发人员发现 2. 由尝试运行代码的开发人员发现 3. 由组中的其他开发人员或测试人员发现 4. 作为产品大规模测试的一部分 5. 由最终用户发现 第一种情况下发现软件错误,则修复错误比较容易,
Βιβλιοθήκη Baidu
单元测试
• XUnit家族测试工具 1. Java,JUnit 2. Cpp,CppUnit 3. C#,NUnit 4. C,CUnit 5. JS,JsUnit
单元测试
• JUnit实践-测试方法
• import junit.framework.Test; • public class BaseTest extends TestCase {
– assertEquals(ac[i], by[i]);
单元测试
• 为什么要使用单元测试? 1. 是一种验证行为,不但验证代码语法正确,而且保证代
码的语义和行为正确 2. 是一种设计行为,使开发人员从使用者的角度来观察和
思考。特别是TDD模式,将迫使程序设计成易调用和可 测试,解除软件中的耦合 3. 是一种编写文档的行为,是展现函数或类是如何使用的 最佳文档,它可编译、可运行,并保持与代码同步 4. 具有回归性,自动化的单元测试不需要人工干预,可随 时回放,可以通过大量经典测试数据进行回归 5. 提升你对编写代码的信心,抬高团队协作性
} catch(Exception1 exceped) { } }
单元测试
XUnit模式
• 全部测试(All Tests) 一次性执行所有的测试。 public class AllTests {
public static void main() { run(AllTests.class);
} public static Test suite() {
– public void testGbk2utf8() throws UnsupportedEncodingException {
• String str = "燊"; • String utf8Str = Base.gbk2utf8(str); • byte[] by = utf8Str.getBytes("utf-8"); • byte[] ac = new byte[] { -25, -121, -118 }; • for (int i = 0; i < 3; i++) {
软件开发的困难
• 这种测试的缺点 1. 不能立刻获得反馈 2. 时间漫长 3. 很容易遗漏一些测试 4. 他有个外号“编辑并祈祷” 5. 不具回归性,效率不高 6. 因为缺乏效率,往往针对典型数据,覆盖
面低
测试技术简单介绍
测试技术简单介绍
1. 单元测试:测试单个对象(函数或模块) 是否正确工作
根本目的 2. 它的行为一直和我期望的一致吗? 考虑异
常情况 3. 我可以依赖单元测试吗? 一定要值得依赖 4. 单元测试说明我的意图了吗? 能充分了解
代码用法
单元测试
• 单元测试的误区 1. 编写单元测试太花时间了 2. 运行测试代码的时间太长 3. 测试代码并不是我的工作 4. 我不清楚代码的行为,所以无从测试 5. 单元测试代码不规范
单元测试
• 对项目的意义 1. 模块更加可控 2. 及早发现问题,提高模块质量,降低系统
测试成本 3. 发现模块构架调整中潜在Bug 4. 加速开发周期,单元测试是最容易自动化
测试的,成本最低 单元测试不应该仅是程序员的个人行为,而
与项目进度控制、质量控制息息相关
单元测试
• 单元测试的范畴 1. 它的行为和我期望的一致吗? 单元测试的
成本也很低。情况越靠后,修复软件错误的成 本就越高。
单元测试
• 什么是单元测试 1. 由开发人员编写的一小段代码,用于检测被测
试代码中一段很明确的代码是否正确
2. 由一组独立的测试构成,其中每个测试针对软 件中的一个单独的原子行为单元,而并非检查 一簇类是否能够合作良好。
3. 程序员有责任编写功能代码,同时也就有责任 为自己的代码编写单元测试。执行单元测试, 就是为了证明这段代码的行为和我们期望的一 致
相关文档
最新文档