【原创】第一次白盒测试

原创 2005年02月27日 23:38:00
        这里名为第一次白盒测试,其实是为了更进一步具体话以前所说的一些理论,来说明如何做和为什么那样做的。这些实例内容大都是我在看了相关的资料后摘取出来的,然后也补充上了我在学习过程中的一些我的见解。
        从一个典型类开始
        第一个典型的 Java 程序一般都包含一个打印 "Hello World" 的 main()。在清单 1 中,我创建了一个 HelloWorld 对象的实例并调用 sayHello() 方法,该方法会打印这句习惯说法。
        清单 1. 我的第一个 Java 应用程序 "Hello world"
/*
 *  HelloWorld.java
 *  My first java program
 */
class HelloWorld {
    /**
     * Print "Hello World"
     */
 void sayHello() {
          System.out.println("Hello World");
      }
    /**
     * Test
     */
    public static void main( String[] args ) {
        HelloWorld world = new HelloWorld();
        world.sayHello();
    }
}
        main() 方法是我的测试。哦噢!我将代码、文档、测试和样本代码包含在了一个模块中。保佑 Java!但随着程序越变越大,这种开发方法很快就开始显现出了缺陷:
        混乱
类接口越大,main() 就越大。类可能仅仅因为正常的测试而变得非常庞大。
        代码膨胀
由于加入了测试,所以产品代码比所需要的要大。但我不想交付测试,而只想交付产品。
        测试不可靠
既然 main() 是代码的一部分,main() 就对其他开发者通过类接口无法访问的私有成员和方法享有访问权。出于这个原因,这种测试方法很容易出错。
       很难自动测试
要进行自动测试,我仍然必须创建另一程序来将参数传递给 main()。
        这种方法对应于“在类中调用Main方法,并且在Main方法体中写入需要运行的测试用例,然后编译该类执行”。它最大的有点是所见即所得,但是除了上面得缺陷外,我们还不的不考虑它得另外一些缺陷:
        不利于后期测试代码得维护
        不利于测试代码的复用
        交付后的程序必须逐个提出测试编码

        由此我们引进了Junit测试框架,如果您想了解更多有关这方面的知识(包括我们该如何考虑改进、如何实施改进等一系列内容)请参考IBM Developer网站的文章利用 Ant 和 JUnit 进行增量开发http://www-900.ibm.com/developerWorks/cn/java/j-ant/index.shtml】。另外为了减少测试人员的阅读负担,这里我将继续引用原文的一些内容和我自己的一些阐述来我们的旅程。
        用过Rational Testmanage的人可能会知道,在使用它管理测试脚本时首先要创建一个测试套件(Suite),可以说它是用来组织测试脚本的一个容器,用来包含单独的测试脚本,也可以包含其它的测试套件,甚至包含测试场景(scenario比如把环境初始化或者现场恢复的所有脚本可以放到一个场景中,这样便于每个测试用例都能够运行在同样的环境中)。Rational Testmanage 中Suite的设置可以是灵活多样的,基本上能够满足各种业务逻辑,这里需要说明的是实际上我认为自动化的测试套件都可以用这一套概念来理解,使用不同语言编写的测试套件只是在语法上有所不同,他们都可以抽象为以上的描述。每个测试脚本都可看作是一个测试用例,也可以把多个测试脚本组合成一个测试用例,这就在于读者在实际运用中的实践和用例设计的需要。
        有些以上这些思路,我认为作为一个黑盒测试人员应该对Junit测试框架下生成的测试脚本的了解有了一定的头绪。说到这里我想到一些更为重要的与测试用例有关的东西,Junit官方网站上同时也提供了一些小工具,比如jtestcase-2.2.0.zip,jub.zip,junitperf-1.9.1.zip,junitscenario-0.1.zip等小工具,可用来管理测试用例,生成测试用例,进行单元性能测试等等。感兴趣的话可以进一步进行研究和使用,而且它们也都是开源的。
(本文不是很完整,将在以后的文章中进行补充)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

白盒测试方法

辑覆盖测试是通过对程序逻辑结构的遍历实现程序的覆盖。从覆盖源代码的不同程度可以分为以下六个标准:语句覆盖、判定覆盖(又称为分支覆盖)、条件覆盖、判定-条件覆盖(又称为分支-条件覆盖)、条件组合覆盖和路...

IQuickTest白盒测试培训启动啦!!!

课程类型: 小班授课(4~6人) 时间安排: 每周双休周六或周日其中一天,每次6小时, 一共4周 培训地点: 上海地区(江浙地区)   报名方式: 请邮件至 iquicktest@gmail....

JUnit白盒测试-第1天

什么是单元测试 写了个类,要给别人用,但是不知道有没有bug,测试一下,即可,一般都用main方法测试,也就是比如用System.out.println(a);的样子将要测试的东西答应出来找...

“钩子”技术在白盒测试中的应用

“钩子”技术在白盒测试中的应用 一、什么是hook技术? 提到钩子技术相信大家多少不会感觉陌生,Windows操作系统是建立在事件驱动机制之上的,系统各个部分之间的沟通也都是通过消息的相互...

使用cppunit进行白盒测试

一、前言  测试驱动开发(TDD)是以测试作为开发过程的中心,它坚持,在编写实际代码之前,先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通过,然后再优化设计结构。测试驱动开发式是极限编...

白盒测试

白盒测试   (说明:此白盒测试指南主要给白盒测试人员提供一些基本的白盒测试方法和技术,由于涉及的问题广泛,测试内容中的细节不一定准确和完整,还有待于各位的共同参与和不断完善,欢迎多交流!) 目的 本...

testing and SQA_动态白盒测试

白盒法又称为逻辑覆盖法,目前常用的覆盖法: 1、语句覆盖——每个语句至少执行一次 Test case :  A=2 , B=0 , X=4.

白盒测试

--关于游戏测试的一些感悟         在国内一家知名的游戏公司做白盒测试已经快一年了,或多或少都有一些感悟。回头想想也是其实白盒测试是所有测试中最有争议的职位。如果和功能测试、性能测试、等等其...

白盒测试技术经验

代码走读经验 代码走读的重要性就不说了,我想谈谈对代码走读的总体认识。首先代码走读前,代码必须编译通过,强类型检查的语言(比如JAVA)自带的编译器就够了,如果是弱类型检查的语言(比如C/C...

白盒测试

白盒测试是一种典型的测试方法,是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法,因此白盒测试又称为结构测试或逻辑测试。它是基于一个应用代码的内部逻辑知识,测试覆盖全部代码、分支、路...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)