What is common and different between Behavior Driven Development [BDD] & integration testing?

John Dee answers a question on Quora

quora.com

I think this is one of those cases where simply knowing what the words mean helps. This question is exactly like, “What is common and different between Western Medicine and heart surgery?”

Behavior Driven Development[1] – Is a methodology and a philosophy of test first software development. It attempts to describe software “from the outside in” in terms of the behavior of system actors. BDD is a constellation of practices, tools, language [both computer and human], and techniques that include may include some of all of these elements: automated testing, DevOps, TestDD, Gherkin, Cucumber, Codeception, AcceptanceTestDD, Agile methodologies, and many others.

Integration testing[2] – In software development, especially in large projects that involve many teams, software architects may decide to conduct their work in “modules”. That is, separate software entities that are well, modular. Often a specific team will work on a specific module, so that Team A works on Module A, Team B works on Module B and so on. Integration testing is the activity of applying tests to groups of modules to “integrate” them. In other words, Module A works nice with Module B… add complexity.

The two terms aren’t diametrically related. You can do integration testing if your project has multiple large components. You can have a BDD philosophy [actually your SHOULD have a BDD philosophy in your software project], but you could develop software in many ways [Waterfall. Cowboy coding.] that might be less effective. You could perform integration testing as your only software methodology on a particular project. For instance, if the entire project revolved around merging two 3rd party projects: like putting two WordPress plugins on a site.

Read John Dee's answer to What is common and different between Behavior Driven Development [BDD] & integration testing? on Quora

Leave a Reply

Your email address will not be published. Required fields are marked *