its an important process in SDLC, that checks whether the actual software matches the expected requirements and ensures the software is bug-free user experience
process of evaluating a software application to ensure it meets specified requirements and is free from defects
checks whether the actual software matches the expected requirements
ensures the software is bug-free
It involves
identifying bugs
verifying functionality
validating that the software performs as expected
under various conditions.
method for assessment the functionality of the software program
purpose : to identify errors, faults or missing requirements in contrast to actual requirements
Advantages
Identifies bugs early.
Ensures quality and user satisfaction.
Reduces development costs (long-term).
Disadvantages
Time-consuming (manual testing).
Initial cost for automation tools.
Requires skilled testers for complex systems.
Characteristics
1. Product quality
ensures the delivery of a high quality product
the errors are discovered and fixed early in the development cycle
2. Customer satisfaction
Usability testing : checks the application for how easily usable it is for the users to use the app
3. Cost effective
Testing any object on time helps to save money and time for the long term
If the bugs are caught in the early phases of software testing, it costs less to fix those errors.
4. Security
Security testing : focused on testing the application for security attacks from internal or external sources
Principles of Software Testing
All the tests should meet the customer’s requirements.
To make our software testing should be performed by a third party.
Exhaustive testing is not possible. We need the optimal amount of testing based on the risk assessment of the application.
All the tests to be conducted should be planned before implementing it
Start testing with small parts and extend it to large parts.
Types of testing
Automation Testing
AKA Test automation
tester write scripts and uses another software to test the product
used to re-run the test scenarios quickly and repeatedly
Common auto testing software : JUnit, Selenium
Manual Testing :
testing software manually
without using any automation tool
Testers use test plans, test cases or test scenarios to test software to ensure the completeness of testing.
Common manual testing tools : JIRA, Test-Link
different stages for manual testing :-
White box
tester is aware of the internal workings of the product and has access to its source code
conducted by making sure that all internal operations are performed according to the specifications
It includes
unit Testing
individual units/components of a software/system are tested
to validate that each unit of the software performs as designed
integration Testing
individual units are combined and tested as a group
to expose faults in the interaction between integrated unit
system
Black box
tester doesn’t have access to the source code of the software
conducted at the software interface without any concern with the internal logical structure of the software
It Includes :
Functional : verifying software functionality against requirements
Unit
Integrated
Incremental
Top-down
Bottom-Up
Non-Incremental
System
Non-Functional : Tests non functional aspects like performance, usability, and security.