Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试方法_Java_Testing - Fatal编程技术网

Java 测试方法

Java 测试方法,java,testing,Java,Testing,Java项目中最常用的测试方法(迭代开发)是什么?我以前使用过TDD(测试驱动开发),我对它的感觉很复杂。本质上,在编写代码之前先编写测试,然后编写代码以满足测试的要求。TDD迫使您在开始之前对自己的需求有一个非常清晰的想法。另一个好处是,一旦完成了开发,假设您严格遵循了TDD过程,那么您就有了一套完整的测试套件。不利的一面是,这需要非常长的时间,有时,您只想跳过几个步骤(例如,可能在测试之前编写代码,就像一个理智的人喜欢做的那样) 更多内容可以阅读单元测试 基于合同的编程,拉埃菲尔 瀑布模型

Java项目中最常用的测试方法(迭代开发)是什么?

我以前使用过TDD(测试驱动开发),我对它的感觉很复杂。本质上,在编写代码之前先编写测试,然后编写代码以满足测试的要求。TDD迫使您在开始之前对自己的需求有一个非常清晰的想法。另一个好处是,一旦完成了开发,假设您严格遵循了TDD过程,那么您就有了一套完整的测试套件。不利的一面是,这需要非常长的时间,有时,您只想跳过几个步骤(例如,可能在测试之前编写代码,就像一个理智的人喜欢做的那样)

更多内容可以阅读

单元测试

基于合同的编程,拉埃菲尔

瀑布模型


不同的商店做不同的事情。如果有一种方法可以将它们统统管理,你就不会问这个问题。

个人经验表明,最流行的方法是完全没有。

在进行测试的前提下,我想说,使用JUnit进行测试是Java中进行测试的常用方法

尽管大多数测试都是用JUnit编写的,但大多数测试往往是集成测试而不是单元测试。(意思不是孤立地测试一件事,而是一起测试一些事)

另外,大多数测试不是以测试优先的方法编写的,而是并行编写的,或者是在特定特性实现之后编写的


如果你去一个更高级使用测试的团队,你可能会发现一些CI服务器(Cruise Control,Hudson)在夜间构建期间每天至少运行一次测试。

按照最常用方法的顺序:

  • 根本没有测试
  • 手动测试:运行应用程序, 单击或提供输入,检查 结果
  • 试着写些JUnits,忘了吧 关于它们,请滑到2和1
  • 从TDD开始,看看它有多难 然后滑到3、2和1
  • 在理论方面,有很多方法可以正确地测试代码。 如果你正在寻找一些实用的东西,看看
    . 看看整个系列,大约5个讲座(不能发布多个链接)。

    我的建议是,你应该有一个健康的自动测试和手动测试的组合

    自动测试

    • 单元测试
      使用NUnit测试您的类、函数以及它们之间的交互。

    • 自动功能测试
      若可能的话,您应该自动化许多功能测试。一些框架中内置了功能测试。否则,你必须使用一个工具。如果您正在开发网站/应用程序,您可能希望了解Selenium。

    • 持续集成
      使用CI确保每次团队中有人提交项目时,所有自动测试都会运行。

    手动测试
    尽管我非常喜欢自动化测试,但它并不能代替手动测试。主要原因是,自动化系统只能执行其被告知的操作,并且只能验证其被告知的内容,以将其视为通过/失败。人类可以利用自己的智能发现错误,并在测试其他东西时提出问题

    • 探索性测试
      ET是发现项目缺陷的一种非常低成本和有效的方法。它充分利用了人类的智慧,并向测试人员/开发人员传授了比我所知的任何其他测试技术更多的项目知识。针对测试环境中部署的每个功能进行ET会话不仅是快速发现问题的有效方法,也是学习和娱乐的好方法

    我对java项目测试的建议是保持简单

    步骤:- 手动测试:-获得稳定的产品。 自动化测试:-保持产品质量。 报告生成和报告:-让人们知道产品的质量。 持续集成:-使其成为一个完全自动化、连续的工具。

    当开发人员提交功能时,开始逐个模块测试it。尝试将实际输出与预期输出进行比较,并记录问题

    当开发人员解决问题时,开始集成测试,同时开始测试已解决的状态问题,并检查是否由于问题修复而出现任何回归

    最后,当产品稳定后,开始对模块进行自动化。 您还可以一步一步地执行自动化操作,如:- 1.模块自动化。 2.为产品健康检查生成报告并发送邮件。
    3.在本地计算机上的专用服务器上进行持续集成和自动化测试。

    。。。或者至少,尽可能少地逃脱;-)测试的主要缺点是什么?@jamesp。我认为编写自动化测试的犹豫与可能花费在“实际工作”上的前期时间有关。虽然我不同意这个观点,但我认为重要的事情之一是集中精力编写最具成本效益的测试,以便更容易看到和证明其价值。这就是诀窍,很难开处方,因为这很大程度上取决于你工作的环境。谢谢你的详细回复乔纳斯。这将作为一个很好的参考。不用担心,只乐意帮助。如果你愿意,测试会非常有趣。