如何在java应用程序上进行白盒测试?这是否意味着我必须一个班一个班地考试?
从我的研究中我知道:
白盒测试是一种软件测试方法,测试人员知道测试项目的内部结构/设计/实现。测试人员选择输入,通过代码执行路径,并确定适当的输出。编程技巧和实现知识是必不可少的。白盒测试是在用户界面之外进行测试,并深入到系统的细节中.
白盒测试应该是什么样子?
发布于 2013-02-22 19:58:46
逐级测试通常称为单元测试.有几种流行的工具可以帮助你。从JUnit或TestNG开始。为提供某些功能的每个类或一组类(模块)实现测试。
然后你就可以上升了,也就是为更大的模块和整个应用程序编写测试。这种测试通常称为集成测试。
发布于 2014-02-14 02:35:04
摘要:现代白盒测试使用复杂的自动化工具来帮助开发人员设计良好的测试并以有意义的方式度量代码覆盖率。广泛使用的例子包括http://cobertura.github.io/cobertura/、http://emma.sourceforge.net/、http://www.eclemma.org/index.html。
如何在java应用程序上进行白盒测试?
传统上,黑匣子测试意味着由另一个团队(而不是开发人员)负责软件的测试,他们在测试时不看源代码。
即使采用单元测试,设计测试的一个常见方法是使用或多或少的黑匣子输入域特性,即只测试边界条件和一些任意的“正常”输入值。
然而,显然,这种做法可能无法行使职能的某些分支。一个好的开发人员将打开代码并说:“嗨,我需要添加一个输入来练习这个分支。”
现代的白盒测试更进一步,自动化了流程,产生了这样的输出,以显示JUnit (来自NetBeans插件TikiOne)还没有执行方法的哪些部分:

白盒测试应该是什么样子?
摘要中提到的代码覆盖率工具试图自动化确保您执行代码的每一行或每一个分支的过程。当集成到持续集成环境(如詹金斯 )中时,您的团队不仅可以不断地关注您的测试是否通过,还可以监视您是否达到了覆盖目标(来自NetBeans插件TikiOne):

在软件工程研究中,白盒测试比计数行要复杂得多.开发了各种各样的工具和数学技术,以帮助您确保提供给测试的输入适当地涵盖了代码的所有可能行为。
例如,使用复杂布尔谓词的飞机自动驾驶系统的警告系统可能使用基于形式逻辑的白盒测试标准,以确保我们通过控制器覆盖所有逻辑上可能的路径。
分析线和分支覆盖是最常见的标准,是使用软件图表示软件(如控制流图或数据流图 )的特例。一个好的工具将读取您的代码来生成图形,然后您可以从各种图覆盖准则中选择一组路径,通过方法的控制逻辑(分支)自动推荐一组路径,为了实现您的测试目标,您需要使用这些路径。
行和分支是最简单和最常用的(控制)图覆盖准则(对应于覆盖节点和边) --在某些工具中提供了更彻底(且难以满足)的度量标准,如边缘对和素数路径。他们不仅问:“我是否至少在每一根树枝上选择了一次”,而且“我是否通过每一条我能够到达的路穿过了每一根树枝。”
仍然要由程序员来找到一组输入来执行这些路径,并设计足够小和简单的代码,以便所需的测试数量能够以更彻底的标准获得良好的覆盖,而不是成倍增长。但是现在你有了正式的,定量的方法来告诉你什么是需要测试的,B)告诉你你的项目测试得有多好。
这是否意味着我必须一个班一个班地考试?
白盒测试是一种设计测试的方法.它可以应用于所有测试级别,包括单元测试、集成测试和系统测试。
有关测试覆盖率标准的更多信息,请参见
或者去看看更最新的
https://stackoverflow.com/questions/15032219
复制相似问题