Software Testing Videos and Tutorials: Load Testing, Unit Testing, Functional Testing, Performance Testing, Agile Testing, DevOps
10 years ago, Dan North first came up with the idea of Behaviour-Driven Development (BDD): using examples in conversation to explore the behavior of systems, then carrying those examples into code. Since then, we have learned a lot about how BDD works, how it works best, and how it can fail horribly! Even the most experienced BDD practitioners have learned a lot from their failures… but what were they? And how are we failing now?
At a first glance you might relate software testing in an Agile context to abbreviations like TDD, BDD, ATDD. Though these are often valuable practices they are closer related to checking of the software. The point is to run them often and to help developer to know when to stop coding.
An important responsibility for many software architects is fostering and defending non-functional software qualities. These qualities are numerous, and they can interact in complex ways, so techniques for keeping abreast of them are vital for gauging the health of an architecture.
Unit Testing has moved from fringe to mainstream, which is great. Unfortunately, developers are creating mountains of unmaintainable tests as a side effect. Jay Fields has been fighting the maintenance battle pretty aggressively for years, and this talk captures what he believes is the most effective way to test.
PHP is not the best language to catch errors in code, like mistyped names of variables. This is what static code analysis tools (named linters or lints) can do: find bugs in code before it ever get executed. Linters don’t replace unit tests, but generally they are faster and cheaper to set up. I’ll talk about my XRef lint project (http://xref-lint.net/) as well as other helpful open source alternatives: phplint (http://www.icosaedro.it/phplint/), arcanist (http://phabricator.org/) and scrutinizer (https://scrutinizer-ci.com/).
Tests should save our money and time. How is it that they often become the stumbling block and slow down the work? They fail every time you try to do some refactoring and are difficult to maintain ultimately increasing the cost of software maintenance.
Skilled software testing has not fit well into the culture of Agile development. Agile was not created by testers, or with testers, or with deep testing in mind. As a result, people who study and practice the testing discipline have done so largely outside of Agile culture. To help fix this, the “Agile Testing Quadrants” should help you explain a better way for testing and development to coexist.