Understanding Software Testing Concepts

  • Published on
    14-Jul-2015

  • View
    558

  • Download
    5

Transcript

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

    Understanding Software Testing Concepts

    Goutam Kumar Saha

    gsaha@acm.org

    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 programs internal logic and code structure. White box testing includes various

    types of testing like Unit Testing, Static & Dynamic Analysis, Mutation Testing, Statement

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

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

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

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