单元测试等价于白箱测试吗?

发表于:2014-7-22 11:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kojenchieh    来源:51Testing软件测试网采编

  单元测试 = 白箱测试? 这是很多人的想法. 一听到白箱测试, 就认为他就是单元测试. 或者认为单元测试时, 就是要用白箱测试的方法来进行.
  事情是这样吗? 让我们继续看下去:
  当我们要测试这个程序时
  Stack push(Stack s, int key)
  你会怎么测试呢? 你可能会考虑以下几种状况
  (1) 空的 stack, 第一次 push
  (2) 不是空的 stack, 然后 push 东西
  (3) stack 是满的, push 个东西看会不会有问题
  (4) 不是空的 stack, 然后 push 一个字符
  (5) 不是空的 stack, 然后 push 一个指标
  你所做的大多是根据程序思考逻辑, 或者是根据输入的值域来做参考, 来建立测试个案.
  这些方式其实都是黑箱测试(用到了 use case testing 和 Equivalence Class Testing等方法, 可自行去网络上找详细介绍), 也就是不管程序内部如何被实作. 只根据行为和输入值域来开立测试.
  那真正的白箱测试会是怎么进行呢?
  基本上, 可以测试的状况有无限多种. 而白箱测试是要根据程序内容来决定要怎样挑最小可测试的集合.
  那程序内有甚么东西, 可以让我们来做挑选的判断呢? 一般常见的是根据程控逻辑. 例如: 是否经过所有的叙述(statement); 是否经过程序所有分支等等.
  如果以经过所有的叙述为例, 对于下面的程序
  01: Stack push(Stack s, int key)
  02: {
  03:     if(isFull(s)){
  04:        printf("Stack is full !!\n");
  05:     }else{
  06:         s.top = s.top + 1;
  07:         s.element[s.top] = key;
  08:         printf("Success push %d in the Stack\n", key);
  09:     }
  10:     return s;
  11: }
21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号