Software Testing Videos and Tutorials: Load Testing, Unit Testing, Functional Testing, Performance Testing, Agile Testing, DevOps
The software industry is changing fast. Many of the companies software testers work for have to re-adjust their working patterns, release cycles and project approaches in response to this change. It’s never been more important to remain relevant to the company you work for. Yet a surprising number of people are ignoring the needs of the business they work for, clinging to outdated approaches to work and running away from change.
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.