测试驱动的开发和提高白盒测试技能


9

我是刚从学校毕业的入门级Java程序员。我对J2SE有很好的知识和经验。谁能建议我如何提高或调整自己的技能以成为Java白盒测试员?欢迎广泛的输入。

什么是测试驱动开发?


为什么还不进行黑匣子测试?
Martijn Verburg

@Martijn,考虑到背景,很可能是由于白盒测试的技术挑战。同样,尽管黑盒技术对于开发人员非常有用,但是对于开发人员而言素质很高的人却不能成为优秀的黑盒测试人员,但我们太好奇了,会耐心等待。我知道我做到了
StuperUser 2011年

Answers:


9

测试驱动开发(TDD)及其扩展的表亲,验收TDD(ATDD)和行为驱动开发(BDD)是在Java生态系统中作为测试人员学习的有用技术。在您寻找白盒测试时,我将重点介绍TDD。

什么是TDD?-从本质上讲,这是编写失败测试(红色),然后通过编写实现(绿色)并使该重构通过该测试的做法。在维基百科的文章是一个足够的地方开始,找出更多的信息。但是主题非常广泛,我建议您阅读该领域的一些知名书籍,例如“ 示例驱动测试开发”“有效使用遗留代码”。我还将在The Well-Grounded Java Developer中为TDD章节添加一个无耻的插件

在Java生态系统中,这意味着您要学习:

  1. JUnit的库和/或TestNG的库。
  2. 模拟库,例如MockitoJMock
  3. 一种用于测试代码的负载测试工具-JMeter
  4. 依赖注入的概念(控制反转的一种形式)

然后练习,练习,练习,练习。优秀的Java白盒测试人员非常罕见,最好的是针对各种代码库编写的测试。

HTH让您开始!


它们也是在Java生态系统中作为开发人员学习的有用技术。据我了解,测试人员应该进行黑盒测试。
汤姆(Tom)

1

Junit是Java编程语言的最佳单元测试框架之一。它是一个开放源码框架,用于编写和运行可重复的测试。



0

我不确定我的建议是否会被视为用于白盒测试的工具,但您也可以将dbUnit用于数据库驱动的项目,将Selenium用于Web测试(例如,根据某些结果检查应该存在的元素)。


0

该问题专门涉及“白盒测试”。在这里,您的测试对代码的内部结构有深入的了解,并在每个步骤都声明了行为,而不仅仅是输入/输出/副作用(黑盒测试)。尽管JUnit可以很好地做到这两者,但是您需要其他框架才能在单元测试的上下文中做到这一点。

EasyMockJMock是执行此操作的良好框架。我倾向于JMock。

冒着开始旧约辩论的风险,您应该仔细考虑白盒测试的含义。白盒测试(显然)与您的代码紧密相关,并且,如果不谨慎使用,模拟框架可能会导致您的测试相当复杂,难以阅读,并且在重构时会变得更脆弱。

我倾向于坚持两者兼而有之。黑盒测试尽可能地适用,而白盒测试则很少用于风险更高/更复杂的代码。

当然,上面列出的框架也可以用于黑盒测试,在黑盒测试中,贡献(注入)类的数量很大,并且简单的桩就变得多余。

关于TDD-它主要是一种设计增强的代码编写方法,而不是简单的测试编写方法。最后的测试是一个重要的输出,但是该方法旨在增强应用程序的设计和结构。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.