Software Testing
Author : Kunal Paliwal
Package Structure
The first company founded to provide software products and services was Computer Usage Company in 1955. Since then, software has become an intrinsic part of business over the last decade. Business in almost all sectors depends on it, to aid in the development, marketing and support of its productand services. According to industry analyst Gartner, the size of the worldwide software industry in 2013 was US$407.3 billion, an increase of 4.8% over 2012. As in past years, the largest four software vendors were Microsoft, Oracle Corporation, IBM, and SAP respectively.This has led to reliability becoming an important factor alongside costs while designing software. Most bugs arise from mistakes and errors made in either a program's source code or its design, or in components and operating system used by such programs.For example, bugs in code that controls the Therac-25 radiation therapy machine were directly responsible for patient deaths in the 1980s. In 1996, the European Space Agency's US$1 billion prototype Ariane 5 rocket had to be destroyed less than a minute after launch due to a bug in the on-board guidance computer program.This makes testing an important tool to prevent such unexpected outcomes as well as increasing reliability of the software. Many critical issues will be discussed in this document which will summarize the key issues and their solutions in the design of the test harness.This system will be implemented in C# using the facilities of .Net framework class libraries and Visual Studio 2015. Test harness will be divided into separate modules in which each module performs specific tasks. The project should provide capability to: 1) Execute test requests after obtaining them from a XML file. 2) Handle each test request by isolating it with an app domain. 3) Create a log file with time stamp for each activity that takes place in the test harness. 4) Support all client queries from the log file. 5) Fetch DLL files from the specified directory and inject it to the app domain. 6) Assert module which displays the status of the test harness. Important issues to be solved during implementation of this system are: 1) Unloading exception – solved by making sure unloading happens b4 loading a new DLL. 2) Stub doesn’t work – solved by providing exception 3) App domain plugging 4) Third party dependencies – solved by accessing meta data Thus Test Harness can handle almost all kinds of tests and such a system can be implemented using the available resources provided by the .Net framework.Read more