Software Testing Articles, Blog Posts, Books, Podcasts and Quotes
This article provides a detailed description on how use Pex and Moles to generate unit tests for a project having external dependency(WCF Proxy) using Visual Studio 2010 SP1. The Pex tool, which automatically generates test suites with high code coverage, will be used to generate unit tests. Moles allows to replace any .NET method with a delegate. They will be generated to isolate the external dependency (WCF proxy) and behavior will be redefined using delegates.
“As we were saying, up-front testing really isn’t testing at all. It is really up-front design through the analysis of our tests. Can we take this testing even further? When XP came out and suggested doing unit tests, many of us realized that if we combined a series of unit tests together, we could get the equivalent of automated acceptance testing.”
In those days where software tests are integrated in continuous integration cycles, it is a necessity that they run in a minimized amount of time. This article explains how through controlled memory usage, increased parallelism, transactional factory invocation, pragmatically judicious test refactoring and a few miscellaneous extras, it was possible to reduce the time needed to run the tests of a ruby on rails application in continuous-integration environments by a factor of ten.
In this blog post, Adrian Smith discusses 7 pitfalls of automating software testing. The seven sins are over indulging on propriety testing tools, too lazy to setup CI server to execute tests, loving the UI so much that all tests are executed through the UI, jealously creating tests and not collaborating, frustration with fragile tests that break intermittently, thinking automated tests will replace all manual testing, too much automated testing not matched to defined system quality.
This article presents a simple and efficient engine which produces mutations of source code written in C# with helps testing it. The novelty of this engine is that it produces mutations that do not contradict with the specifications of the program. The latter are described by a set of pre- and post-conditions and invariants. The engine comprises two parts, a static analysis and syntactic verification component and a mutation generation component. Preliminary experiments showed that the proposed engine is more efficient than a simple mutations generator in terms of producing only valid mutations according to the specifications posed, thus saving time and effort during testing activities.
This article presents a strategy for unit testing in Python, using a set of utility functions that converts to and from Roman numerals. The author discusses the benefits of a Test-Driven Development (TDD) approach and propose a detailed testing process for all the cases of the functions.
In this blog post, Jens Schauder shares some tips based on experience to improve the testing of database code. People seem to understand the need to test their code, but apparently this is not yet the case for the the database code, because database tests tend to be slow, interdependent and hard to maintain