Testing is an important step in software development life cycle. The process of testing takes place at various stages of development in programming. This is a vital step in development life cycle because the process of testing helps to identify the mistakes and sends the program for correction. This process, while seen by some as tedious, tiresome and unnecessary, plays a vital role in software development.
Software is useful in Human Lives. For Eg: Software has infiltrated almost all areas in the industry and has over the years become more and more wide spread as a crucial component of many systems. System failure in any industry can be very costly and in the case of critical systems (fight control, nuclear reactor monitoring, medical applications, etc.) it can mean lost human lives. These "cost" factors call for some kind of system failure prevention. One way to ensure system's reliability is to extensively test the system. Since software is a system component, it requires a testing process also.
Basic Theory of Testing:-
The process of software testing involves creating test cases to "break the system" but before these can be designed, a few principles have to be followed.
1.Testing should be based on user requirements. This is in order to uncover any defects that might cause the program or system to fail to meet the client's requirements.
2.Testing time and resources are limited. Avoid redundant tests.
3.It is impossible to test everything. Exhaustive tests of all possible scenarios are impossible; simple because of the many different variables affecting the system and the number of paths a program flow might take.
4.Use effective resources to test. This represents use of the most suitable tools, procedures and individuals to conduct the tests. The test team should use tools that they are confident and familiar with. Testing procedures should be clearly defined and it should be based on client’s requirement.
5.Test planning should be done early. This is because test planning can begin independently of coding and as soon as the client requirements are set.
6.Testing should begin at the module. The focus of testing should be concentrated on the smallest programming units first and then expand to other parts of the Project.
7.Equal importance for functional and non functional attributes. Traditionally testing should focuses on functional attributes (ex: Correct calculations) only, but non functional attributes (ex: reliability, availability, timeliness) are equally important.
We look at software testing in the traditional (procedural) sense and then describe some testing strategies and methods used in Object Oriented environment. We also introduce some issues with software testing in both environments.
Thursday, January 10, 2008
Subscribe to:
Comments (Atom)
