Software Testing Articles, Blog Posts, Books, Podcasts and Quotes
In this blog post, Dror Helper presents a short “getting started” procedure to do Behavior Drive Development (BDD) with SubSpec. SubSpec allows developers to write declarative tests operating in C# at all layers of abstraction consisting of highly composable, small primitive concepts. SubSpec is based on the xUnit testing framework and can easily be integrated into existing testing environments. The blog post shows how to write its first behavior test and how to run all the assertions in one test.
In this blog post, Martin Sikora shares his experience of performing Python unit tests on the Google App Engine (GAE). You can test such application locally in terminal, locally on GAE test server or on a real GAE production server hosted on Google infrastructure. To achieve this objective, he used nose, a tool that extends Python’s unittest to make testing easier, with NoseGAE, a nose plugin that makes it easier to write functional and unit tests for Google App Engine applications. The blog post provides the code to run the tests on a GAE server.
Best practices for unit testing are that you should only write for each test a single assertion. In this article intends, Jonathan Allen tries to demonstrate that unit tests with multiple assertions are both necessary and beneficial.
In this blog post, Mark Prichard presents a solution on how to use Jenkins to give a “QA dashboard” view of a native Android application build. His goals were to show metrics for the results of unit test and code coverage in an Android build context on the Jenkins continuous integration system.
In this blog post, Jonathan Kohl discusses the similarities between software testing and game playing. He defines a game as a “situation involving cooperation and conflict with different different actors with different motivations and goals”. He sees software testing as an individual pursuit within a larger software development game and with two styles: scripted testing and exploratory testing..
In this article, Andrew Hunter shares his opinion that unit tests and test driven development (TDD) now dominate the types of test that are used in software development. This situation has limited the attention available for other software testing types, such as the integration tests. Thus he asks the question: “Are unit tests overused?“
In this article, Cem Kaner explores the technical concept of software testing coverage and the legal concept of software negligence. The article discusses the idea of complete coverage and the trade-off that software developers have to make when testing software. The main idea is that complete coverage is a misleading concept. “This “completeness” is measured only relative to a specific population of possible test cases”. You might achieve line coverage, but to achieve path coverage, you must test every path through the program and this is an impossible task. The goal of the software tester is to prioritize among tests in a careful way. This means to select the test strategy that could be rationally considered as the most likely to find the most bugs or the most serious bugs. This article has an appendix that lists 101 coverage measures.