软件构造——软件测试


前言

测试是根据用户的实际需求,寻找程序运行过程中存在的不足,好的测试方案关注于系统某一侧面的质量特性,也是提高软件质量的重要手段。但是,我们也需要认识到,即使是“最好”的测试,也无法达到百分百的无错误。


一、软件测试基础

1. 测试原则

  • 寻找错误
  • 不带冗余
  • 最优方案
  • 既不复杂也不简单

2. 测试层次

  • 单元测试
  • 集成测试
  • 系统测试

3. 测试与调试的区别

测试:发现是否存在错误
调试:识别错误根源,进而消除错误

***Test & Debug***

二、测试优先原则

编写代码之前,完成你的测试用例

编写代码的步骤

  1. 根据用户需求完成规约
  2. 构思测试策略,并书写符合规约的测试用例
  3. 根据规约,完成设计并确认AF/RI等
  4. 编写代码,调试代码,执行代码,测试代码
  5. 修改代码,测试代码的循环往复,直到通过

三、软件测试方法

1. 白盒测试

白盒测试是对测序内部代码结构的测试,要充分考虑内部实现的具体细节。
白盒测试是根据程序的执行路径设计的测试用例。

如果程序的具体实现,根据不同的输入选择了不同的算法,那么白盒测试就需要根据这些不同的算法进行区分。

如果程序的实现存储了之前的输入,那么白盒测试也应该测试这些重复的输入。

白盒测试的要求

  • 保证所有的独立路径至少被测试一次
  • 测试所有路径的正反两面
  • 测试所有循环的边界
  • 测试内部数据结构来确保有效性
    白盒测试

2. 黑盒测试

黑盒测试是对程序外部表现出来的行为的测试,用于检查代码的功能,并不关心内部实现的具体细节。

黑盒测试的错误类型

  1. 不正确或者缺失的函数
  2. 接口错误
  3. 数据结构和外部数据库访问错误
  4. 实现过程中的行为错误
  5. 初始化和结束错误

黑盒测试的测试用例要求

  1. 基于软件的外部需求,黑盒测试注重检查程序是否符合规约、用户需求、设计参数等

  2. 黑盒测试应使用尽可能少的测试用例,尽快运行,并尽可能地发现程序存在的错误

黑盒测试

四、使用JUnit进行单元测试

1. JUnit

JUnit一种广泛使用的Java单元测试框架,用于编写和运行可重复的自动化测试。

2. 测试断言

JUnit注解
assertArrayEquals
assertArrayEquals(“failure - byte arrays not same”, expected, actual);
assertEquals(“failure - strings are not equal”,“text”, “text”);
assertFalse(“failure - shoul be false”, false);
assertNotNull(“should not be null”, new Object());
assertNotSame(“should not be same object”, new Object(), new Object());
assertNull(“should be null”, null);
assertSame(“should be same”, aNumber, bNumber);
assertTrue(“failure - should be true”, true);
assertThat(“albumen”, both(containsString(“a”)).and(containsString(“b”)));

3. 一个测试的例子

下面展示一个 代码测试的例子

@Test
    public void testAddVertex(){
        FriendshipGraph graph = new FriendshipGraph();
        Person James = new Person("James");
        graph.addVertex(James);
        assertEquals(true, graph.getPersonSpace().vertices().contains(James));
    }

5. 测试结果

下面展示一个 代码测试的结果
测试结果


总结

本文主要介绍了有关代码测试的一些知识,我们应该充分认识到代码测试在软件构造过程中的主要作用,并在编程过程中遵守测试优先的原则。但同时我们也应该充分认识到,即使是“最好”的测试,也无法达到百分百的无错误。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值