0% found this document useful (0 votes)
24 views14 pages

Level of Testing Slides eMvO54ziWH

Uploaded by

jovialdarwin8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views14 pages

Level of Testing Slides eMvO54ziWH

Uploaded by

jovialdarwin8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Testing in Datawarehouse

• Data Warehouse stores huge amount of data, which is typically


collected from multiple heterogeneous source like files, DBMS, etc to
produce statistical result that help in decision making.
• Testing is very important for data warehouse systems for data
validation and to make them work correctly and efficiently.

• There are three basic levels of testing performed on data warehouse


which are as follows
a) Unit Testing
b) Integration Testing
c) System Testing and Acceptance Testing
Unit Testing
• Unit testing is a type of software testing that focuses on individual units
or components of a software system. The purpose of unit testing is to
validate that each unit of the software works as intended and meets the
requirements.
• Unit testing is typically performed by developers, and it is performed
early in the development process before the code is integrated and
tested as a whole system.
• Unit tests are automated and are run each time the code is changed to
ensure that new code does not break existing functionality.
• Unit tests are designed to validate the smallest possible unit of code,
such as a function or a method, and test it in isolation from the rest of
the system.
Objective of Unit Testing

• To isolate a section of code.


• To verify the correctness of the code.
• To test every function and procedure.
• To fix bugs early in the development cycle and to save costs.
• To help the developers to understand the code base and enable them
to make changes quickly.
• To help with code reuse.
Advantages
• Unit Testing allows developers to learn what functionality is provided by
a unit and how to use it to gain a basic understanding of the unit API.
• Unit testing allows the programmer to refine code and make sure the
module works properly.
• Unit testing enables testing parts of the project without waiting for
others to be completed.
• Early Detection of Issues: Unit testing allows developers to detect and
fix issues early in the development process, before they become larger
and more difficult to fix.
• Improved Code Quality: Unit testing helps to ensure that each unit of
code works as intended and meets the requirements, improving the
overall quality of the software.
Disadvantages
• The process is time-consuming for writing the unit test cases.
• Unit Testing will not cover all the errors in the module because there is a
chance of having errors in the modules while doing integration testing.
• Unit Testing is not efficient for checking the errors in the UI(User
Interface) part of the module.
• It requires more time for maintenance when the source code is changed
frequently.
• It cannot cover the non-functional testing parameters such as scalability,
the performance of the system, etc.
• Time and Effort: Unit testing requires a significant investment of time
and effort to create and maintain the test cases, especially for complex
systems.
Integration testing
• Integration testing is the process of testing the interface between two
software units or modules. It focuses on determining the correctness of the
interface.
• The purpose of integration testing is to expose faults in the interaction
between integrated units. Once all the modules have been unit tested,
integration testing is performed.
• The goal of integration testing is to identify any problems or bugs that arise
when different components are combined and interact with each other.
Integration testing is typically performed after unit testing and before
system testing.
• Integration testing can be done by picking module by module. This can be
done so that there should be a proper sequence to be followed. And also if
you don’t want to miss out on any integration scenarios then you have to
follow the proper sequence.
Integration test approaches
• Big-Bang Integration Testing – It is the simplest integration testing
approach, where all the modules are combined and the functionality
is verified after the completion of individual module testing. In simple
words, all the modules of the system are simply put together and
tested.
• This approach is practicable only for very small systems. If an error is
found during the integration testing, it is very difficult to localize the
error as the error may potentially belong to any of the modules being
integrated.
• Big-Bang integration testing is a software testing approach in which all
components or modules of a software application are combined and
tested at once.
Advantages:
• It is convenient for small systems.
• Simple and straightforward approach.
• Can be completed quickly.
• Does not require a lot of planning or coordination.
• May be suitable for small systems or projects with a low degree of interdependence
between components.
Disadvantages:
• There will be quite a lot of delay because you would have to wait for all the modules to
be integrated.
• High-risk critical modules are not isolated and tested on priority since all modules are
tested at once.
• Not Good for long projects.
• High risk of integration problems that are difficult to identify and diagnose.
• This can result in long and complex debugging and troubleshooting efforts.
• Bottom-Up Integration Testing – In bottom-up testing, each module at lower levels are
tested with higher modules until all modules are tested. The primary purpose of this
integration testing is that each subsystem tests the interfaces among various modules
making up the subsystem.
• Advantages:
• In bottom-up testing, no stubs are required.
• A principal advantage of this integration testing is that several disjoint subsystems can
be tested simultaneously.
• It is easy to create the test conditions.
• Best for applications that uses bottom up design approach.
• Disadvantages:
• Driver modules must be produced.
• In this testing, the complexity that occurs when the system is made up of a large
number of small subsystems.
• As Far modules have been created, there is no working model can be represented.
• Top-Down Integration Testing – Top-down integration testing technique is used in
order to simulate the behaviour of the lower-level modules that are not yet
integrated. In this integration testing, testing takes place from top to bottom.
• Advantages:
• Separately debugged module.
• Few or no drivers needed.
• It is more stable and accurate at the aggregate level.
• Easier isolation of interface errors.
• In this, design defects can be found in the early stages.
• Disadvantages:
• Needs many Stubs.
• Modules at lower level are tested inadequately.
• It is difficult to observe the test output.
• It is difficult to stub design.
System testing
• System Testing is a type of software testing that is performed on a
complete integrated system to evaluate the compliance of the system
with the corresponding requirements.
• In system testing, integration testing passed components are taken as
input. System testing detects defects within both the integrated units
and the whole system. The result of system testing is the observed
behavior of a component or a system when it is tested.
• System Testing is carried out on the whole system in the context of
either system requirement specifications or functional requirement
specifications or in the context of both. System testing tests the
design and behavior of the system and also the expectations of the
customer.
System Testing Process
System Testing Process steps
• System Testing Process: System Testing is performed in the following steps:
• Test Environment Setup: Create testing environment for the better quality testing.
• Create Test Case: Generate test case for the testing process.
• Create Test Data: Generate the data that is to be tested.
• Execute Test Case: After the generation of the test case and the test data, test
cases are executed.
• Defect Reporting: Defects in the system are detected.
• Regression Testing: It is carried out to test the side effects of the testing process.
• Log Defects: Defects are fixed in this step.
• Retest: If the test is not successful then again test is performed.
Types of System Testing

• Performance Testing: Performance Testing is a type of software


testing that is carried out to test the speed, scalability, stability and
reliability of the software product or application.
• Load Testing: Load Testing is a type of software Testing which is
carried out to determine the behavior of a system or software
product under extreme load.
• Stress Testing: Stress Testing is a type of software testing performed
to check the robustness of the system under the varying loads.
• Scalability Testing: Scalability Testing is a type of software testing
which is carried out to check the performance of a software
application or system in terms of its capability to scale up or scale
down the number of user request load.

You might also like