第7 章软件测试工具总览
软件自动化测试是把以人为驱动的软件测试行为转化为机器执行的过程。通常,在设计了测试用例并通过评审之后,由软件测试工程师根据测试
用例中描述的过程一步一步地执行测试,得到实际结果与期望结果的比较。
在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。所谓自动化测试,就是使用自动化测试工具对软件进行测试,自动化测试工具可以自己开发,也可选用现成的。常用的自动化测试工具有:QTP、WinRunner、Rational Robot、AdventNet Qengine、SilkTest、QA
Run、Test Partner、Holodeck、Telelogic TAU、AutoRunner、Phoenix Framework等。这些工具的功能不太一样,可根据需要选用不同的工具。
软件自动化测试是通过软件测试工具来实现的,本章主要对自动化测试工具进行总体介绍,包括以下两个方面。
. 简单介绍目前常用的软件测试工具。
. 探讨使用自动化测试工具应该注意的事项。
7.2 关于自动化测试工具
目前,软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能测试方面)。在这两个领域,与手工测试相比,软件测试自动化有以下优势:
(1)自动化测试可以提高软件测试的效率,使软件测试工程师更加专注于新的测试模块的建立和开发,从而提高软件测试覆盖率。
(2)自动化测试更便于软件测试资产的数字化管理,使得软件测试资产在整个软件测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其重要。
(3)软件测试流程自动化管理可以使机构的测试活动更加过程化,这很符合CMMI过程改进的思想。
(4)投资回报率高。根据OppenheimerFunds的调查,在2001年前后的三年中,全球范围由于采用了软件测试自动化手段实现的投资回报率高达1500%。
本节论述的自动化测试主要指动态测试的自动化,不考虑软件测试流程的自动化管理。
第8 章 单元测试工具
单元测试(Unit Testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C 语言中单元指一个函数,Java 里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
在一种传统的结构化编程语言中,比如C 语言,要进行测试的单元一般是函数或子过程。在像C++这样的面向对象的语言中,要进行测试的基本单元是类。对Ada 语言来说,开发人员可以选择是在独立的过程或函数,还是在Ada 包的级别上进行单元测试。单元测试的原则同样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面。
本章介绍单元测试工具JUnit 4。JUnit 4 是JUnit 的第四个版本,而JUnit 属于Xunit 系列的单元测试工具的产品(另外,还有CPPUnit、CUnit、C#Unit 等)。
本章主要内容为。
. 单元测试工具JUnit 4 如何在Eclipse 中使用。
8.1 单元测试工具JUnit 4如何在Eclipse中使用
百度百科介绍:
"JUnit是一个Java语言的单元测试框架,由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit和xUnit家族中最成功的一个。JUnit有自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试工具。
JUnit是由Erich Gamma和Kent Beck编写的一个回归测试框架(Regression Testing Framework)。JUnit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。JUnit是一套框架,继承TestCase类,就可以用JUnit进行自动测试了。"
而JUnit 4是JUnit框架有史以来的最大改进,其主要目标是利用Java 5的Annotation特性简化测试用例的编写。
8.1.1 JUnit 4环境的配置
使用JUnit 4时不要使用第11章提供的ADT配置的Eclipse,这个Eclipse在JUnit 4中存在一些问题。可以到Eclipse的官方网站(http://www.eclipse.org/)上下载J2SE版本。笔者目前使用的版本如图8-1所示。
首先需要有被测程序,这里以一个简易的计算器作为例子。
案例8-1:简易的计算器。
这个计算器中主要包括加、减、乘、除、求平方以及开根号6个函数,其代码如下:
package com.jerry; public class Calculator { private static int result; // 静态变量,用于存储运行结果 public void add(int m,int n) { result = m + n; } public void substract(int m,int n) { result = n-m; //Bug: 正确的应该是result =m-n } public void multiply(int m,int n) { } // 此方法尚未写好 public void divide(int m,int n) { result = m / n; } public void square(int n) { result = n * n; } public void squareRoot(int n) { for (; ;) ; //Bug : 死循环 } public void clear() { // 将结果清零 result = 0; } public int getResult() { return result; } } |
这里暂时先不写乘法函数的实现,并且故意写错减法函数的实现。
接下来建立JUnit 4测试程序。首先将JUnit 4单元测试包引入这个Project:在被测程序的Class上单击鼠标右键,在弹出的菜单上选择【Properties】,然后在弹出的属性窗口中,首先在左边选择【Java Build Path】,然后到右上选择【Libraries】标签,之后在最右边选择【Add Library…】按钮,如图8-2所示。
在Eclipse的Package Explorer中右键单击该弹出菜单,选择"New a JUnit 4 Test Case",在弹出的对话框中进行相应的选择,如图8-3所示。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关推荐: