Saturday, April 23, 2016

Software Testing

                                                       
                                                     Manual Testing

SOFTWARE TESTING

       It is a process used to identify Correctness, Completeness, and Quality of developed Software application.
       Objectives of software testing are to be identifying defects, when those defects resolved software application quality improves.

DEFECT:  
              It is a derivation between expect result to actual result in AUT (Application under Test) which are identifying in test environment.

       Defect can also call as Bug / Issue / Incident / Fault.
       Note: Defects will presents due to human mistakes which developing application i.e., Syntax error & logical error

Correctness: Validate implemented components or functionalities are working as per expectations (While performing operation)

Completeness:  Verify all the client business needs are covered or not in terms of functionality.

Software Quality: In general software quality depends on following factors
   1) Budget / cost    [Non Tech Factors] [Responsible by BA]
   2) In Time release [Non Tech Factors] [Responsible by BA
   3) Reliability
   4)  Technical Factors: Responsible by QA Tester.
         a) Meet Client Requirements in terms of   functionality.
         b) Meet Client Expectations performance, compatibility and ease of usage.

Software Testing Methods:
           In general organization follows two types of methods to test the application
      Manual Testing:  Whereas test engineer is responsible to verify actual behavior of application while performing operation based on test cases.
       Automation Testing : Automating human activities in order to validate application is called automation testing ( i.e., Test Case Execution)

      Automation testing can be performed using programming languages or scripting languages or 3rd  party tools like QTP, WR, Silk….etc.,


    Skill Set Required for QA Tester:  (Functional Testing)

       Manual Testing concepts
       Any one of the functionality testing tool like QTP, Selenium , Rational Robot
       Any one of the defect reporting tool
       DB knowledge ( Oracle / SQL Server)
       Domain knowledge like Banking, Insurance, finance….etc.,

Software Development Life Cycle:

   Software :  It’s  a set of programs document to perform particular task based on requirement

•    Software can be categorized in to two types:
          a) System software          b) Application Software
•     A) System Software:   The software which provides interface between system components (booting). Those are called system software. System s/w also called BIOS (basic input & output system)
    Ex: All the Operating systems like windows, Linux, UNIX…. 

  B) Application Software:    Software which is developed based on user business needs application s/w also called as front – end application.
          In general application s/w has front- end (User Interface) and possible associated back end (DB).
Front end is used by client to manipulate data into DB.


Application Software have two types:-

a)    Product based application:  When we develop application based on standard  requirement after developing application which can sell to any customer in the market.

b)    Project based application: When we develop the application based on specific client requirement, after developing application has to deliver that particular client only.


• Exhaustive Testing: -- Testing the application with all possible ways is called exhaustive testing.

Particularly exhaustive testing is not possible.

     Optimal Testing: --   Testing the application with best possible ways is called optimal testing.

In general we perform optimal testing only.


Testing Methodologies:

    Using testing methodologies we can derive best possible test cases to achieve the completeness of testing in application source code or functionality.
There are 3 types of testing methodologies:

 1. White Box Testing(WBT):
    It is also called as clear box testing/ glass box testing/ open box testing/ structural testing.
   WBT techniques are used to validate application source code with help of programming    knowledge.
   The WBT techniques are used by developers.
   Following WBT techniques we use to derive test cases.
a)    Statements coverage
b)    Loops Coverage
c)    Conditional Statement coverage
d)    Path or branch coverage

2. Black Box Testing(BBT):
  Black box testing is used to test the external functionality of the application.
  Black box testing is also known as Functionality Testing or Skin testing.
 Without having any programming knowledge we validate application functionality based on client     requirements.
 Test Engineer will use BBT techniques to derive the test cases.
 Black box testing techniques are:
a)    Boundary Value Analysis
b)    Equivalence Class Partition
c)    Error guessing

White Box Testing
Glass  Box Testing
It is internal logic driven testing
It is business transaction driven testing
Tests are based on design and coding
Tests are based on user requirements
It is performed for code coverage
It is performed for requirements coverage

3. Gray Box Testing(GBT): 
  
It is combination of White Box Testing and Black Box Testing
To perform gray box testing we should have programming knowledge and complete functionality knowledge.


IQ)  Why separate testing team is required when developer performing testing?
Developers they perform only code coverage, where as they are not responsible for requirement coverage.
Due to that organization maintains separate testing team for requirement coverage.

















No comments:

Post a Comment