Saturday, March 20, 2010

Software crisis

Software crisis was a term used in the early days of computing science. The term was used to describe the impact of rapid increases in computer power and the complexity of the problems which could be tackled. In essence, it refers to the difficulty of writing correct, understandable, and verifiable computer programs. The roots of the software crisis are complexity, expectations, and change.


The causes of the software crisis were linked to the overall complexity of hardware and the software development process. The crisis manifested itself in several ways:

* Projects running over-budget.
* Projects running over-time.
* Software was very inefficient.
* Software was of low quality.
* Software often did not meet requirements.
* Projects were unmanageable and code difficult to maintain.
* Software was never delivered.

Many of the software problems were caused by increasingly complex hardware. In his essay, Dijkstra noted that the newer computers in his day "embodied such serious flaws that [he] felt that with a single stroke the progress of computing science had been retarded by at least ten years"[2]. He also believed that the influence of hardware on software was too frequently overlooked.

Saturday, March 6, 2010

Software Testing

Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.[1] Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.

Software Testing can also be stated as the process of validating and verifying that a software program/application/product:

1. meets the business and technical requirements that guided its design and development;
2. works as expected; and
3. can be implemented with the same characteristics.

Software Testing, depending on the testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the Software Development methodology adopted.