Testing Foundation
What is Software Testing?
Objective of Testing
Why is testing necessary?
Common Terms used in Testing
Verification Vs Validations
QA Vs QC
Debugging Vs Testing
Seven Testing Principles
SDLC Vs STLC
Fundamentals of Test Process
Software quality Factors
Software Development Models
Waterfall Model
V models
Iterative Model
Test Levels
Component Testing
Integration Testing
System Testing
Acceptance Testing
Strategies for Integration Testing
Big Bang
Stubs and Driver
Top Down Testing
Bottom Up Testing
Test Types
Functional Testing
Non- Functional Testing
Structural Testing
Re-testing & Regression Testing
Static AND Dynamic Techniques
Static Technique
Dynamic Technique
Static Analysis by Tools
White Box Techniques
Statement Coverage Testing
Branch Coverage Testing
Decision Coverage Testing
Path Coverage
Black Box Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table testing
State Transition testing
Experience Based TestingTechniques
Random Testing
Exploratory Testing
Error Guessing
Functional Testing
Integration Testing
Unit Testing
System Testing
Smoke testing
Sanity testing
Regression Testing
Usability Testing
Security Testing
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Non Functional Testing
Compatibility testing
Endurance testing
Load testing
Performance testing
Recovery testing
Scalability testing
Stress testing
Volume testing
Test Planning and Estimation
Test Planning
Test Strategies Vs Test Plan
Test Approaches
Risk and Testing
Product Risks
Project Risks
Defect Management
Defect LifeCycle
Severity Vs Priority
Test levels in Software Testing
Test levels are determined on basis where the tests are added and executed in the software development process.There are four testing levels which adhere to a logical sequence in order to reduce the risk of defects .
Different testing levels progressively test the simpler components and move to bigger more complex systems.
Four Test levels are :
Unit/ Component Testing
Unit testing is a software testing method by which individual units of software are tested to determine whether they are suitable for use.
Some important points of Unit testing:
- Used to check or defects and functioning of an individual piece of code like object or class.
- Done at the time of code development. Defects are usually fixed straight away.
- Run or check of code using stubs, drivers and Simulators, Test Driven Development (Test First approach), unit test framework, debugging tool
- Unit testing mainly targets on checking functional and non functional aspects like unit code, performance, robustness, memory leakage etc.
- Performed by Developers.
Test Level | Test Basis | Components | Responsible Person |
---|---|---|---|
Unit Testing | Component requirements Detailed design Data Model Code | Components Programs Data conversion / migration programs Database modules | Developer who wrote the code |
Integration Testing
Integration means combining. Different tests interfaces between components, interactions with different parts of a system, such as the operating system, file system and hardware, and interfaces are combined and tested
The strategy employed can significantly affect the time and effort required to yield a working, higher-level element.
Note: ‘‘integration testing’’ is sometimes defined as the level of testing between unit and system..
Some features of integration testing
- Testing done to verify communication of data and actions across different systems, hardware, software or environmental components.
- It also tests nonfunctional aspects.
- Performed after integration of modules, software and external components.
- Integration techniques are used.Preferably this should be in incremental mode rather than a BIG BANG approach as it’s harder to isolate failures
- Aims to remove defects and performance issues due to integration of various systems.
There may be more than one level of integration testingÂ
- Component Integration Testing : tests the interactions between software components and is done after component testing
- System Integration Testing:Â tests the interactions between different systems or between hardware and software and may be done after system testing.
Test Level | Test Basis | Components | Responsible Person |
---|---|---|---|
Integration Testing | Software and system design Architecture Workflows Use cases | Sub-systems database implementation Infrastructure Interfaces | Testers |
System Testing
System testing tests the system as a whole which enables testers to ensure that the product meets business requirements, as well as determine that it runs smoothly within its operating It’s a black box testing.
Some Important features of System Testing are:
-
-
- Done to minimize the risk of environment related failures not found in testing.
- In this testing, the test environment mimics the production environment as much as possible.
- Appropriate black-box techniques are used to check the functionality of the system
- It aims to check functional and non-functional requirements of the system, and data quality characteristics.
-
Test Level | Test Basis | Components | Responsible Person |
---|---|---|---|
System Testing | System and software requirement specification Use cases Functional specification Risk analysis reports | System, user and operation manuals System configuration Configuration data | Independent Testing team |
Acceptance Testing
Testing process where a system is tested for acceptability by stakeholders/users. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.
Some features of Acceptance testing are :
-
-
- Done to gain confidence in the system ,specific non-functional characteristics of the system. Assess the system’s readiness for deployment and use.
- Acceptance is usually the last stage of testing
- Performed by end users and other stakeholders against the business scenarios.
- It aims to verify functional and non-functional requirements of the system, and data quality characteristics.
- It is one of the most important types of testing, as it confirms that application meets the intended specifications and satisfies the client’s requirement.
- The QA team will have a set of pre-written scenarios and test cases that will be used to test the application.
-
Types of Acceptance Testing:Â
User acceptance testing :
This type of testing verifies if a system is fit for use by business users.
Operational (acceptance) testing :
Done by system administrators, which includes activities like:
-
-
- backup/restore testing
- Disaster recovery
- Maintenance tests
- Data loading and migration
- Check of security vulnerabilities
-
Contract and Regulation Acceptance Testing:
This type of testing is to verify that the produced software satisfies the contractual agreement. Acceptance criteria should be defined when the parties agree to the contract.Such as government, legal or safety regulations.
Alpha Testing :
Alpha testing is performed at the developing organization’s site but not by the developing team.
Beta testing, or field-testing:
It is performed by customers or potential customers at their own locations.Beta testing is done by a limited number of end users before delivery, the change request would be fixed if the user gives feedback or reports defects.
Test Level | Test Basis | Components | Responsible Person |
---|---|---|---|
Acceptance Testing | User requirements System requirements Use cases Business processes Risk analysis reports | Fully integrated system Operational and maintenance processes User procedures Forms Reports Configuration data | Customers or potential customers |
Testing Foundation
What is Software Testing?
Objective of Testing
Why is testing necessary?
Common Terms used in Testing
Verification Vs Validations
QA Vs QC
Debugging Vs Testing
Seven Testing Principles
SDLC Vs STLC
Fundamentals of Test Process
Software quality Factors
Software Development Models
Waterfall Model
V models
Iterative Model
Test Levels
Component Testing
Integration Testing
System Testing
Acceptance Testing
Strategies for Integration Testing
Big Bang
Stubs and Driver
Top Down Testing
Bottom Up Testing
Test Types
Functional Testing
Non- Functional Testing
Structural Testing
Re-testing & Regression Testing
Static AND Dynamic Techniques
Static Technique
Dynamic Technique
Static Analysis by Tools
White Box Techniques
Statement Coverage Testing
Branch Coverage Testing
Decision Coverage Testing
Path Coverage
Black Box Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table testing
State Transition testing
Experience Based TestingTechniques
Random Testing
Exploratory Testing
Error Guessing
Functional Testing
Integration Testing
Unit Testing
System Testing
Smoke testing
Sanity testing
Regression Testing
Usability Testing
Security Testing
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing
Non Functional Testing
Compatibility testing
Endurance testing
Load testing
Performance testing
Recovery testing
Scalability testing
Stress testing
Volume testing
Test Planning and Estimation
Test Planning
Test Strategies Vs Test Plan
Test Approaches
Risk and Testing
Product Risks
Project Risks
Defect Management
Defect LifeCycle
Severity Vs Priority