UNIT - 4
TESTING AND MAINTENANCE
• Software Testing Fundamentals    • System Testing And Debugging
• Internal And External Views Of   • Software Implementation
   Testing                           Techniques:
• White Box Testing                • Coding Practices
• Basis Path Testing
                                   • Refactoring
• Control Structure Testing
                                   • Maintenance And Reengineering
• Black Box Testing
                                   • BPR Model
• Regression Testing
                                   • Reengineering Process Model
• Unit Testing
                                   • Reverse And Forward Engineering
• Integration Testing
• Validation Testing
    Software Testing Fundamentals
    •Testing?
    Testing is the process of evaluating a system or its
components
    •Why to Learn Software Testing?
    To evaluate the developed software
    •Applications of Software Testing
    Cost Effective Development 
    Product Improvement 
    Test Automation 
    Quality Check 
    •Who does Testing?
    It depends on the process and the associated stakeholders
of the projects.
• When to Start Testing?
Early Start
•Testing is done in different forms at every phase of SDLC −
During the requirement gathering phase
Reviewing the design in the design phase
On completion of the code
• When to Stop Testing?
It is difficult to determine when to stop testing
What is Verification and Validation?
Myth 1: Testing is Too Expensive
Myth 2: Testing is Time-Consuming
Myth 3: Only Fully Developed Products are Tested
Myth 4: Complete Testing is Possible
Myth 5: A Tested Software is Bug-Free
Myth 6: Missed Defects are due to Testers
Myth 7: Testers are Responsible for Quality of Product
Myth 8: Test Automation should be used wherever possible
to Reduce Time
Myth 9: Anyone can Test a Software Application
Myth 10: A Tester's only Task is to Find Bugs
Differences between Quality Assurance, Quality
Control and Testing
Audit and Inspection
Debugging
Black-Box Testing
Advantages
Disadvantages
White-Box Testing
Advantages
Disadvantages
Grey box Testing
Advantages
Disadvantages
STLC
•Software Testing Life Cycle
•Sequence of different activities performed by the testing
team
•Provides step-by-step process
STLC Phases
Functional Testing
•To evaluate the s/m’s fulfillment
Process of Functional Testing
•Determination of functionality
•Creation of test data
•O/P based on the test data
•Execution of test cases
•Comparison of results
Unit Testing
•Before the setup is handed over to the testing team
•Isolate each part of the program
Integration Testing
•Testing Of Combined Parts Of An Application
•Bottom-up integration testing and Top-down integration
testing are the different methods in integration testing
System Testing
Regression Testing
Acceptance Testing
Alpha Testing
Beta Testing
Non - Functional Testing
        Performance Testing
 Load Testing
 Stress Testing
 Usability Testing
 Security Testing
               Portability Testing
•Transferring an installed software from one computer
to another.
•Building executable (.exe) to run the software on
different platforms.
 Software maintenance
•Market Conditions 
•Organization Changes 
•Host Modifications 
•Client Requirements
Types of maintenance
•Corrective Maintenance  
•Corrective Maintenance 
•Adaptive Maintenance 
•Perfective Maintenance 
•Preventive Maintenance 
Cost of Maintenance 
Maintenance Activities 
Business Process Re Engineering
Business process Cycle