Software Engineering what is software testing?

Software testing basics

 
Today in this software testing tutorial we will study about software testing basics. This tutorial covers the following contents.
 
       (1) What is software testing ?
       (2)   Basic Terminology used in  during software testing
       (3)   Who does the software testing ?
       (4)   When to start  software testing
       (5)   When to stop software testing
       (6)   Verification and validation
 
All the above contents are software testing basics, which are described as follows:
 

What is Software Testing?

 
At first in this software testing tutorial we will cover introduction of software testing.A software is developed by following a SDLC model. Each and every phase of SDLC model takes some input and provides some output. So after completion of each phase during the software development we check the correctness of the output of that particular phase. This checking is known as testing.
 
Now the question is what is software testing? How will you define the term software testing. There is no fixed definition of software testing. It may be defined in several ways.
Sometimes
      
      (1)   Software testing is defined as a process of demonstrating that error are present.
      (2)   Objective point of view Software testing is a process in which we test that a program performs its intended function correctly.
 
More appropriate definition of software testing is “ Testing the process of executing a program with the intent of finding the faults”
 
Software testing is very important but it is an effort consuming activity.

difference between verification and validation

 

 
Basic Terminology Used in Software Testing
 
In this section of software testing tutorial Before going in depth we should know about some basic terms used in software testing. So here in this section we will see these terms and these definition.
 
(i)                 Program: Program is a set of instructions written in a particular programming language to do some task.
 
(ii)               Software: Software is a set of programs as well as documentation. This documentation are of two type internal and external. Internal documentation  useful  for the person involved in software development team. This documentation is like SRS, SDD, Source Code. External documentation is useful for the end user or customer. This tell about the how doses software works or how to operate the software.
(iii)             Error: Error , mistake and defect are synonyms in software testing terminology.
 
(iv)             Bug: Error in coding is known as bug.
(v)               Fault : A fault is defined as the representation of error . Fault is any incorrect step due which error has occurred. For example Semicolon missing, use of any wrong notation in UML Diagram. Etc.
  
(vi)             Failure: Failure is the result of execution of a faulty program. In context to software Failure  is the inability of software  to perform its function.
(vii)           Test case: A test case consist of input given to the program and its expected output. Input are nothing but data value some times input also conations pre condition( circumstances to be be hold before execution of test case) . Output is the result and post condition ( circumstances after execution of a test case)
Different parameters  to be used during designing of a test case are as follow
Parameters Used Before Execution of Test case
(a)    Purpose of Test case
(b)   Precondition
(c)    Input
(d)   Expected Output
(e)    Post Conditions
(f)    Written By
(g)    Date of Design
                    Parameters used after execution of Test Case
 
                  (a)    Actual Output
                  (b)   Post Condition
                  (c)    Pass/Fail
                  (d)   If fail any possible reason for failur
                  (e)    Suggestions
                  (f)    Run By
                  (g)    Date of Suggestion
(viii)         Test Case Suite: Set of test cases is known as test suite. We may have test suite of all tests cases, successful test cases, unsuccessful test cases.
(ix)             SRS: SRS is known as Software requirement specification. All the functional and non functional requirements of the software are properly listed in SRS. SRS is the output of the Requirements and analysis phase.
(x)               Source Code Documentation : Document that contain the source code of the software.
(xi)             SDD: SDD is known as software design documentation . This documents works as blue print of the software. It contain the design part of the software. This is the output of the design phase.
    Who does Software Testing?
 
       Most of the time we think that software testers  it means members of testing team performs the           software testing but this is not true at all, then who does the testing ?  Generally it depends on             process and the associated stakeholders of the project.
        In this software testing tutorial let us see this example in the Software industry, large companies have a team with responsibilities to evaluate the developed software in context of the given requirements. Moreover, developers also conduct the testing during the implementation or coding phase, this type of testing is called Unit Testing.
 
     There are some other cases also where, the apart from the software tester or developer ,Project Manager or Lead and End users  are involved in testing a system within their respective capacities:
Some software companies also  have different designations for people who test the software.
 
 This designation depends on their experience and knowledge. These designation are Software Tester,  Software Quality Assurance Engineer, QA Analyst, etc.
When to Start SoftwareTesting?
 
Generally we think that software testing is an activity after the coding phase but this is not true at all. Testing perform after the coding is actually the dynamic testing.
 
Testing is performs at every stage of the SDLC. An early start to testing reduces the cost and time to rework and produce error-free software that is delivered to the customer. During Software Development Life Cycle (SDLC), testing can be started from the Requirements Gathering phase and continued till the deployment or installation of the software at client site.
 
Sometimes it  also depends on the development model that is being used. For example, in the Waterfall model, formal testing is conducted in the testing phase, but in the incremental model, testing is performed at the end of every increment/iteration and the whole application is tested at the end.
 
At requirement Analysis and specification  phase, the analysis and verification of requirements are also considered as testing. SRS is verified by the audit team.During the design phase SDD Design document is need to be tested or verified to ensure that all the diagrams are made as per specific notations.
 
Testing performed by a developer during the coding phase in order to ensure the working of the individual class/unit.During the Testing Phase of SDLC. Testing of whole software is perform by software testers.
When to Stop Software Testing?
 
It is difficult to say when to stop software testing because  testing is a never-ending process and no one can claim that a software is 100% tested.
 
There are some following aspects are to be considered  to stop the testing process:
      
       (a)    Completion of test case execution
     
       (b)   Completion of functional and code coverage to a certain point
        
( c )  Some time Management decision

Verification and Validation

 
Verification and validation terms  are very confusing sometime for most people. But these two terms are not same . Verification and validation are two different activities. The difference between verification and validation are as follows:
 
Verification
Validation
          Verification is a development process oriented activity  which ensure  the concern: “Are you building the product  right?”
           Validation is product oriented. It means Validation ensure that “ Are we building the right product ?”
           It basically a type of static testing
          It is a type of dynamic testing
          It is perform during the early phases of sdlc such as srs verification, design verification and source code review
           Validation is performed at the end of the implementation
           Done by Audit team and Developer
           Done by testers
          Verification ensure that software meet all the functionalities
          Validation ensures that all the functionalities perform its intended behavior
I hope that this software testing basics tutorial will be helpful to you for understanding the basic concept of software testing . Your comments are valuable for us. Please provide your feedback so that we can improve the quality.

Leave a Reply

Your email address will not be published. Required fields are marked *