This article from David Sale provides a short introduction to Behavior-Driven Development in Python. The article presents the principles of Behavior Driven Development and present the syntax of the Gherkin language that can be used with the freshen Python package, a clone of the famous Cucumber BDD framework written for Ruby. Freshen is an open source acceptance testing framework for Python that uses (mostly) the same syntax as Cucumber. A small step by step example is provided on how to use freshen and alternative tools are proposed.
Karen Nicole Johnson has produced a nice word document that list all software testing mnemonics. You will find in more than 10 pages useful software testing heuristics like SACKED SCOWS or SLIME. For every mnemonic, there is a link to the article or blog post that explains it.
If you are a good software tester, but if you can’t communicate well what you find, you provide little value and are not very useful to your project team. This article gives you some hints specific to mobile applications testing on how to become a great bug reporter. Your teammates will love you for this and you will prove your value as a skilled team member.
This video presents the lessons that a team has learned from having a big code base of Selenium tests for acceptance testing. It covers different ways they have developed to track their tests across different projects and how this has helped them to identify flaky tests.
In this article, Cem Kaner discusses the usage of oracles when teaching software testing. In software testing, an oracle is the expected result of the test. It is an heuristic that should help you decide if the program passed your test. He ask the question: “If you don’t have authoritative oracles (“authoritative” = an oracle that is always correct), then how can you test? How can you specify a test in a way that a junior tester or a computer can run the test and correctly tell you whether the program passed it?”
This post by Chaitali Narla and Diego Salas on the Google Testing blog introduces the concept of hermetic servers in software testing. In a situation where the System Under Test (SUT) is composed of multiple servers, the notion of hermetic servers will help to solve the challenges of writing a fast and reliable end-to-end tests, avoiding network access. The hermetic server could be defined as a “server in a box”. Thus your testing could all be started on a single machine, physical or virtual, without the need for a network connection.
Unit tests are programmer’s best friend, but relying on them exclusively gives an illusion of overall system integrity. At some level, we need to verify how our components integrate and ensure unexpected behavior does not creep in when we shift the application into the target runtime. It all amounts to whether your application is providing the end user what he or she is really needs (tire swing) instead of what anyone thinks they need. How can we save our users from frustration, keep the fail whale at bay and communicate with stakeholders that the requirements are being met?