Monday, January 12, 2009
Understanding Software Testing Concepts
By- Goutam Kumar Saha
Software testing concepts have been briefly described in this article. Readers would find it easier to understand fundamental concepts of software testing by going through a concept map thereof. Software testing is itself a discipline as well as a process. Software development is nothing but a process of coding functionality in order to meet the defined end-user requirements. We can think of software testing as an iterative process, which consists of Tests Designing, Tests Execution,
Problems Identifying and Problem Fixing, for validating functionality and as well as for attempting the software break. Software testing aims to find problems and to fix them for improving software quality. Software testing may represent 40% of a software development budget. Basic methods of performing software testing include Manual Testing and Automated Testing. Manual software testing is the process of manually testing software (having the possible forms for example, user
interfaces navigation, information submission, or attempt to hack the software or database etc.), carried out by an individual or individuals. Manual software testing is labor-intensive and slow. On the other hand, automated software testing is a process of creating test scripts, which can be run
then automatically, repetitively, and through a number of iterations. Automated software testing helps us to minimize the variability of results, speed up the testing process, increase test coverage (that is, the number of different things tested), and ultimately provide greater confidence in the
quality of the software being tested.
Software testing can be based on a strategy like White Box Testing or Black Box Testing. Black Box testing is carried out against the functional specifications in order to check for any abnormal system behavior. Black box testing includes various types of testing like Functional Testing, Stress Testing, Load Testing, Ad-hoc Testing, Exploratory Testing, Usability Testing, Smoke Testing, Recovery Testing, Volume Testing, User Acceptance Testing, Alpha, and Beta Testing. White box testing deals with program’s internal logic and code structure. White box testing includes various types of testing like Unit Testing, Static & Dynamic Analysis, Mutation Testing, Statement Coverage, Branch Coverage, and Security Testing. All these testing concepts and their interrelationships have been visually described for our easy understanding of this important topic.
A Concept Map comprises of concepts and propositions. Concept Maps are the graphical representations of knowledge that are comprised of concepts and the relationships among them. Concept maps are 2- dimensional representations of cognitive structures showing the hierarchies and interconnections of concepts involved in a discipline or a sub-discipline. Concept map is an important tool for developing our both sensing and intuitive skills. Concept maps are useful as a means for representing the emerging science knowledge and for increasing meaningful learning in sciences in contrast to simply memorizing the text. Representing the expert knowledge of individuals and teams in government, business and in education becomes easier by this useful tool. It stimulates our idea generation and creativity. It is carving out a strong position for brainstorming, complex ideas communication, and formal argument representation. Formalized concept maps are
being used in software design or in UML. It is a first step in ontology building. This article is a brief primer of this huge topic of software testing.