51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5176|回复: 1
打印 上一主题 下一主题

怎样编写测试方案

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-6-21 00:20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        什么是测试方案
有很多方法可以编写测试方案。总的来说,我们可以说一个测试方案是一个代码片段,它以编程的方式检查另一个代码单元——一种方法——按照预期的功能。为了使测试过程成为一个高效的过程,建议使用一个测试框架。有两个主要的java测试框架。
1.JUnit是由Eric Gamma和Kent Beck编写的。在测试框架领域,JUnit一直是不受挑战的。
2.由Cedric Beust编写的TestNG是一个更新的框架,它使用了创新的概念,其中大部分已经被JUnit 4.x版本收录。
使用框架来开发您的测试方案有很多优点,最重要的是其他人能够理解测试方案并轻松地编写新的测试方案,并且大多数开发工具支持自动化或执行一个单击测试方案。你会选择哪一个框架,这是个人偏好的问题。这两种方法都能让您正确地测试代码,也得到了Java开发工具的支持,这些工具很重要,而且都很容易使用。在本文中,我们只讨论JUnit测试方案开发问题。
        如何用JUnit编写测试用例
如果您使用的是早期版本的JUnit 4,那么您的测试方案就必须从TestCase类继承,如下面的代码示例:public class ExampleTestCase extends TestCase {
...
}
        JUnit编码约定
JUnit测试方案可以包含多个测试。每个测试都是通过一个方法实现的。测试方法的声明必须符合一组约定,以帮助JUnit和相关工具自动发现和执行测试。这些约定:
1.该方法的名称必须以“test”开头,如“testCreateUser”,
2.测试方法的返回类型必须为null,
3.测试方法不能出现任何异常,
4.测试方法不能有任何参数。
假设您需要测试以下方法:
public User createUser(String userName, String password1, String password2) throws PasswordDeosntMatchException { ... }.
这种方法的典型测试用例如下:
public class CreateUserTestCase extends TestCase {
public void testCreateUser() {v ...
}
public void testCreateUserFailPasswordDoesntMatch() {
...
}
}

        用JUnit编写成功测试
你可能会问,为什么要为一个单一的方法写三个测试呢?好吧,这将在解释如何开发测试方案的文章中得到更好的解释。现在,让我们说,您不但要测试您的方法在正常情况下是正常工作的,而且要测试在当前环境配置需要时,它也会像预期的那样失败。
第一个方法将简单地调用该方法,然后在用户被正确创建时将返回的对象与所提供的参数进行比较。为了将结果与参考值进行比较,您应该使用assert家族的方法。而且,如果在不应该出现异常时,我们也不能忽略强制测试失败。下面是如何实现“testCreateUser()”:
public void testCreateUser() {
try {
User ret = instance.createUser("john", "pwd", "pwd");
// u用 assertEquals 来比较名称
//返回的用户实例的引用值
assertEquals(ret.getUserName(), "john");
// 用 assertEquals 来比较密码
//返回的用户实例的引用值
assertEquals(ret.getPassword(), "pwd");
} catch (PasswordDeosntMatchException e) {
//强制测试失败,因为出现异常
fail();
}
}
assertEqual()的方法将比较两个提供的值,如果它们不相等,它将生成一个内部异常,它将通知JUnit关于故障的信息。另外,如果产生PasswordDeosntMatchException——知道这不应该发生在我们提供的一系列参数中——fail()方法将具有相同的效果。在任何一种情况下,JUnit都会将测试标记为失败,并将其报告。您可以将一条消息传递给assertEqual()和fail()。当这个特定的assertEqual()失败时,这个消息将显示在报告中,帮助开发人员更容易地识别错误。如果您使用许多assertEqual()点来维护一个大型的测试基础,那么这个特性将特别有帮助。

专业测试服务,平台交流 欢迎进入“一检通” http://www.ejttp.com/index.html
一检通是一家专业的第三方检测平台,针对各检测中心和第三方检测机构检测咨询,检测求助和机构内的专业信息交流提供了专业的平台,主要包括专业的软件检测,软件产品登记验收测试,以及科技成果专业成果鉴定等领域的业务,一键通检测平台已经成为行业领导者,力求打造成检测、认证、校准一站式的服务平台。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-5 07:28 , Processed in 0.069063 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表