SOFTWARE TESTING SHORT NOTES
THE PSYCHOLOGY OF TESTING
Testing is the process of executing a program with the intent of finding errors.
You test a software to add value to it. Adding value means raising reliability. Raising
reliability means finding and removing errors.
An unsuccessful test is the one that causes the program to produce correct results without
finding errors.
Software testing is a process of no end since it is impossible to find all the errors within a
software, for the reason when to stop testing a software?
1. When a predefined number of errors have been detected
2. When a certain level of confidence in software quality is reached.
CATEGORIES OF SOFTWARE TESTING
1. Manual testing
2. Automation test
MANUAL TESTING
STEPS
1. Analyse the requirements
2. Test planning
3. Test case creation
4. Test execution
5. Test report
MANUAL TESTING
1. Analyze the requirements
2. Test planning
3. Test case creation
4. Test execution
5. Test report
OBJECTIVES OF SOFTWARE TESTING
1. Finding defects
2. Ensuring good quality product
3. Making sure that it meets product requirement
4. Making sure that the software is fit for use.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
Phases in software development life cycle
1. Requirement gathering & analysis
2. Design
3. Development
4. Test
5. Deploy
6. Maintenance
SOFTWARE TESTING LIFE CYCLE (STLC)
Phases in software testing lifecycle
1. Requirement analysis
2. Test planning
3. Test case design and development
4. Test involvement setup
5. Test execution
6. Test report
7. Test closure
SOFTWARE TESTING MODELS
a. WATERFALL MODEL
Phases in waterfall model
1. Requirement phase
2. Global design
3. Detail design
4. Coding phase
5. Test
6. Deploy
7. maintanance
In the waterfall model you can't start the next phase until the current phase is complete.
The test is only done in the testing phase which brings a lot of disadvantages e.g
The cost of defects is very late and high.
b. V-MODEL
Phases in V-model
1. Requirement
1. User acceptance (user acceptance test)
2. System analysis and design
2. System test (system test cases)
3. Global design
3. Integration testing (integration test)
4. Detailed design
[Link] test (unit test)
5. coding
C. ITERATIVE DEVELOPMENT MODEL
In iterative module has smaller phases/ iterations in repetitive cycle to develop and test the
software.
LEVELS OF SOFTWARE TESTING
1. Unit testing
Testing each standby component with a software
2. Integration testing
All the tested stand by components are put in one module
3. System testing
After unit and integration testing is done, a system test comes in. In a system test
there could be a system test or systems integration test depending on the types of software
you are building.
4. User acceptance testing
This is done by the customers or system users
WHAT IS A UNIT TESTING
A unit is a stand alone part in a software that can be tested independently.
WHAT IS INTERGRATION TESTING
This is a test of all the tested units within a software in one module.
WHAT IS SYSTEM TESTING
This is testing the system as a whole. In a system testing, if the system is designed to
integrate with other third party systems then you’ll do a system integration test except if it is
a stand alone system you’ll do a system test.
WHAT IS ACCEPTANCE TESTING
This is the last part of testing in software testing. Done by the end users of the system,
clients or customers.
TYPES OF SOFTWARE TESTING
Types of testing can be categorised into either function testing and Non functional testing
category. A functional test is basically about the functionality of the system. A non functional
testing tests the non functional areas of the system. For example;
Provided an e-commerce app to be tested and you want to start with the registration area
first. To test the functionality you’ll test whether the unit is doing what it was supposed to be
doing like logging in while as a non functional test you’ll test the performance of it for
example how long is it taking to log in.
WHATS FUNCTIONAL TESTING
Process of verifying the functionality of a software.
WHATS BLACK BOX TESTING
Process of testing the system by providing the inputs and expecting certain output without
knowing the internal code.
WHATS WHITE BOX TESTING
Process of testing a system with knowledge about the internal code. Also known as glass
box testing.
BLACK BOX VS WHITE BOX
1. Done by software 1. Mostly done by
testers developers
2. Internal code not 2. Internal code
known known
3. Types: 3. Types:
A. Acceptance A. Statement
B. System B. Condition
C. Regression C. Branch
WHATS NON FUNCTIONAL TESTING
Test the responsiveness and stability of the system.
In functional testing you test to verify its functionality while in non functional testing you test
to verify how responsive and stable the functionality is.
TYPES OF NON FUNCTIONAL TESTING
A. Load testing
Verifying as per customers requirement the responsive time should be within the
limit.
B. Stress testing
How Much load is is the system going to handle when you increase the load and at
what point is it going to crush.
C. Soak testing
Running the test for extended period of time on the peak load.
D. Volume testing
Verifying the behaviour of the application when you overload the database.
E. Spike testing
Verifying the behaviour of the system when there is spiking in the system.
WHATS REGRESSION TESTING
Is the testing which is performed to ensure that the existing functionality of the software or
application works as expected if there is any new code introduction or new functionality is
added in the application.
WHEN TO DO REGRESSION TESTING
1. When new functionality is added
2. When defects are fixed
3. Code refactoring
4. config changes
TECHNIQUES OF REGRESSION TESTING
1. Select all the test cases
2. Regression test selection
3. Prioritse test cases
HOW TO SELECT REGRESSION TEST CASES
1. Frequently used functionalities
2. High priority
3. Integration cases
4. Select test cases as per module
REGRESSION TEST IN AGILE DEVELOPMENT
A SCRAM is a 2 to 4 weeks development cycle.
A SPRINT is a set of stories or features that are carried out in the scram.
STORIES are the requirements in the agile development or scram.
RETESTING VS REGRESSION TESTING
Retesting is testing same failed test cases again.
SMOKE TESTING VS SANITY TESTING
VERIFICATION(Static) AND VALIDATION(Dynamic) IN SOFTWARE TESTING
1. VERIFICATION
Verification is the process of checking the document manually(srs, plans, design, code…)
Finding Bugs/Defects early in cycle.
Cost of defects is less
TYPES: a. Reviews
b. Tech reviews
c. Inspection
d. Code reviews
2. VALIDATION
Testing the produc functionality by executing.
Involves code execution to validate the functionality.
Finding bugs/defects during dynamic test
Cost of defects is high
TYPES: a. Unit testing
b. Integration testing
c. System test
d. Acceptance
e. Regression test
END TO END SOFTWARE TESTING
Testing all the integrated functionalities within the system.
WHAT IS A TEST CASE
Set of step you write to verify the functionality of a system meet the requirements.
KEY FEATURES OF A TEST CASE
[Link] a Title.
2. Contains description
3. Contain prerequisite
4. Contain test data
5. Contain test steps
6. Expected result