understanding software testing concepts

5
ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008 Understanding Software Testing Concepts Goutam Kumar Saha [email protected] 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

Upload: softwarecentral

Post on 14-Jul-2015

576 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Understanding Software Testing Concepts

ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008

Understanding Software Testing Concepts

Goutam Kumar Saha

[email protected]

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

Page 2: Understanding Software Testing Concepts

ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008

Coverage, Branch Coverage, and Security Testing. All these testing concepts and their inter-

relationships 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.

Further Readings:

[1] Rob Pirozzi, “Introduction to Software Testing.”

http://www.logigear.com/newsletter/introduction_to_software_testing.asp

[2] Nilesh Parekh, “Software Testing - Black Box Testing Strategy.”

http://www.buzzle.com/editorials/7-15-2006-102441.asp

[3] Jiantao Pan, “Software Testing,” CMU, 1999.

http://www.ece.cmu.edu/~koopman/des_s99/sw_testing/

[4] Goutam Kumar Saha, “Software Fault Avoidance Issues,” ACM Ubiquity, Vol.7, Issue 46,

November 2006, ACM Press, USA.

[5] Goutam Kumar Saha, “Understanding Dependable Computing Concepts,” ACM Ubiquity, Vol.8,

Issue 44, November 2007, ACM Press, USA.

Page 3: Understanding Software Testing Concepts

ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008

[6] Goutam Kumar Saha, “Software-Based, Low-Cost Fault Detection for Microprocessors,” IEEE

Potentials, Vol. 27, No. 1, pp. 37-41, 2008, IEEE Press, USA.

[7] Ian Sommerville, “Software Engineering,” 6th Ed. Pearson Education.

Author's Biography:

In his last nearly twenty years’ R&D and teaching experience, Goutam Kumar Saha has worked as a

scientist in LRDE, Defence Research & Development Organisation, Bangalore and at the Electronics

Research & Development Centre of India, Calcutta. At present, he is with the Centre for

Development of Advanced Computing, Kolkata, India, as a Scientist-F. He is a fellow in IETE and

senior member in IEEE, Computer Society of India, and ACM Fellow nominee etc. He has received

various awards, scholarships and grants from national and international organizations. He is a

referee of CSI Journal, AMSE Journal (France), IJCPOL (USA), IJCIS (Canada) and of an IEEE

Journal / Magazine (USA). He is an associate editor of the ACM Ubiquity (USA), International

Journal of the Latin American Center for Informatics Studies (CLEIEJ) and of the International

Journal of Computing and Information Sciences (Canada). He was a Chair and Member of the

Program Committee of the WSNEXT / UBICOMM 2007 (French Polynesia), UBICOMM 2008

(France), IEEE Computer Society Press, CONFENIS2007 (Beijing) etc. His fields of interest

include software based fault tolerance, web technology, EIS, Knowledge Modeling and Natural

Language Processing. He can be reached via <sahagk@ gmail.com>.

Page 4: Understanding Software Testing Concepts

ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008

Page 5: Understanding Software Testing Concepts

ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008