我是刚从学校毕业的入门级Java程序员。我对J2SE有很好的知识和经验。谁能建议我如何提高或调整自己的技能以成为Java白盒测试员?欢迎广泛的输入。
什么是测试驱动开发?
我是刚从学校毕业的入门级Java程序员。我对J2SE有很好的知识和经验。谁能建议我如何提高或调整自己的技能以成为Java白盒测试员?欢迎广泛的输入。
什么是测试驱动开发?
Answers:
测试驱动开发(TDD)及其扩展的表亲,验收TDD(ATDD)和行为驱动开发(BDD)是在Java生态系统中作为测试人员学习的有用技术。在您寻找白盒测试时,我将重点介绍TDD。
什么是TDD?-从本质上讲,这是编写失败测试(红色),然后通过编写实现(绿色)并使该重构通过该测试的做法。在维基百科的文章是一个足够的地方开始,找出更多的信息。但是主题非常广泛,我建议您阅读该领域的一些知名书籍,例如“ 示例驱动测试开发”和“有效使用遗留代码”。我还将在The Well-Grounded Java Developer中为TDD章节添加一个无耻的插件
在Java生态系统中,这意味着您要学习:
然后练习,练习,练习,练习。优秀的Java白盒测试人员非常罕见,最好的是针对各种代码库编写的测试。
HTH让您开始!
我通常不喜欢引用Wikipedia,但是本文中的信息似乎足够安全...
http://en.wikipedia.org/wiki/Test-driven_development
从本质上来说,这是一种软件开发的“测试优先”方法,先设计单元测试并将其编写为用例,然后进行艰苦的开发以帮助使这些单元测试通过。
该问题专门涉及“白盒测试”。在这里,您的测试对代码的内部结构有深入的了解,并在每个步骤都声明了行为,而不仅仅是输入/输出/副作用(黑盒测试)。尽管JUnit可以很好地做到这两者,但是您需要其他框架才能在单元测试的上下文中做到这一点。
EasyMock和JMock是执行此操作的良好框架。我倾向于JMock。
冒着开始旧约辩论的风险,您应该仔细考虑白盒测试的含义。白盒测试(显然)与您的代码紧密相关,并且,如果不谨慎使用,模拟框架可能会导致您的测试相当复杂,难以阅读,并且在重构时会变得更脆弱。
我倾向于坚持两者兼而有之。黑盒测试尽可能地适用,而白盒测试则很少用于风险更高/更复杂的代码。
当然,上面列出的框架也可以用于黑盒测试,在黑盒测试中,贡献(注入)类的数量很大,并且简单的桩就变得多余。
关于TDD-它主要是一种设计增强的代码编写方法,而不是简单的测试编写方法。最后的测试是一个重要的输出,但是该方法旨在增强应用程序的设计和结构。