Using main memory databases in test driven development

Test-driven development is a software development process that forms the basis of several development methodologies. The idea is the elimination of problems caused by rapidly changing requirements and shared code ownership. The process is based on a method called unit testing that makes possible to create reproducible tests that verify functionalities of the software components.

Making such tests for data-driven applications is circuitous, because they depend on a complex outer component, called database. The difficulty is caused by its distributed behavior and its limited capabilities of controlling its inner state. Test-driven development of data-driven applications would be simpler, if the functionalities of the database were served by a component that is located in the scope of the testing process.

This thesis reviews the basics, some methods and tools of test driven development, and introduces a framework specific solution for the problem described previously. Alternative solutions are also reviewed to present the significance of the described problem. Technology novelties, related to the solution, are also reviewed.

The found solution makes provides a convenient way for testing such data-driven applications that are based on the Entity Framework object-relational mapping framework. The solution is heavily based on an in-memory database engine, called MMDB.