CIR 206 Group 5

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

CIR 206: SOFTWARE ENGINEERING GROUP WORK

TESTING
Testing is the process of evaluating a system or its components with the intent to find whether it satisfies
the specified requirements or not.
2. Importance of Testing:

Ensures the quality and reliability of the software.


Helps in identifying and fixing defects early in the development cycle.
Enhances the user experience by ensuring the software meets user expectations.
3. Testing Metrics:

-Defect Density: Number of defects identified per line of code.


-Test Coverage: Percentage of code covered by tests.
-Defect Removal Efficiency: Percentage of defects found before release.
-Test Execution Efficiency: Number of test cases executed per hour/day.
-Customer Satisfaction Index: Feedback from customers/users on software quality.
Testing Process:
1. Test Planning:

Define test objectives, scope, and resources required.


2. Test Development:

Develop test cases based on requirements and design.


3. Test Execution:

Execute test cases and report defects.


4. Test Reporting:

Generate test reports and metrics for analysis.


5. Test Closure:

Evaluate the testing process and prepare for the next phase.
Black-box Testing:
a) Definition: Testing based on external expectations without knowledge of internal code structure.
Black-box testing is a type of software testing in which the tester is not concerned with the
internal knowledge or implementation details of the software but rather focuses on validating the
functionality based on the provided specifications or requirements.

Advantages of Black Box Testing:


1. The tester does not need to have more functional knowledge or programming skills to implement
the Black Box Testing.
2. It is efficient for implementing the tests in the larger system.
3. Tests are executed from the user’s or client’s point of view.
4. Test cases are easily reproducible.
5. It is used to find the ambiguity and contradictions in the functional specifications.

b) Techniques:

1. Equivalence Partitioning: Dividing input data into valid and invalid partitions.
2. Boundary Value Analysis: Testing at the boundaries of input ranges.
3. State Transition Testing: Testing different states of the system.

c) Advantages:

1. Tester does not need knowledge of internal code.


2. Tests functionality from the user's perspective.
White-box Testing:
a) Definition:- White box testing is a software testing technique that involves testing the internal
structure and workings of a software application. The tester has access to the source code and
uses this knowledge to design test cases that can verify the correctness of the software at the code
level. Testing based on the knowledge of internal code structure and logic.

Advantages of White-box Testing:


i. Thorough Testing: White box testing is thorough as the entire code and structures are tested.
ii. ii. Code Optimization: It results in the optimization of code removing errors and helps in
removing extra lines of code.
iii. Early Detection of Defects: It can start at an earlier stage as it doesn’t require any interface as
in the case of black box testing.
iv. iv. Integration with SDLC: White box testing can be easily started in the Software
Development Life Cycle.
b) Techniques:

i. Statement Coverage: Ensuring each line of code is executed at least once.


ii. Branch Coverage: Ensuring each branch of control flow is executed.
iii. Path Coverage: Ensuring every possible path from start to end is executed.
c) Advantages:

1. Tests internal logic and code paths.


2. Helps in improving code quality and maintainability.
Types of Testing:
1. Unit Testing:
Unit testing is a method of testing individual units or components of a software application. It is
typically done by developers and is used to ensure that the individual units of the software are
working as intended. Unit tests are usually automated and are designed to test specific parts of the
code, such as a particular function or method. Unit testing is done at the lowest level of the software
development process, where individual units of code are tested in isolation. Testing individual units
or components of the software.

Advantages of Unit Testing:


Some of the advantages of Unit Testing are listed below.

i. It helps to identify bugs early in the development process before they become more difficult and
expensive to fix.
ii. It helps to ensure that changes to the code do not introduce new bugs.
iii. It makes the code more modular and easier to understand and maintain.
iv. It helps to improve the overall quality and reliability of the software.

2. Integration Testing:
Testing the integration of different modules or components.
Integration testing is a method of testing how different units or components of a software application
interact with each other. It is used to identify and resolve any issues that may arise when different units of
the software are combined. Integration testing is typically done after unit testing and before functional
testing and is used to verify that the different units of the software work together as intended.

Different Ways of Performing Integration Testing:

Different ways of Integration Testing are discussed below.


-Top-down integration testing: It starts with the highest-level modules and differentiates them from
lower-level modules.
-Bottom-up integration testing: It starts with the lowest-level modules and integrates them with higher-
level modules.
-Big-Bang integration testing: It combines all the modules and integrates them all at once.
-Incremental integration testing: It integrates the modules in small groups, testing each
group as it is added.
Advantages of Integrating Testing
i. It helps to identify and resolve issues that may arise when different units of the software are
combined.
ii. It helps to ensure that the different units of the software work together as intended.
iii. It helps to improve the overall reliability and stability of the software.
iv. It’s important to keep in mind that Integration testing is essential for complex systems where
different components are integrated.
As with unit testing, integration testing is only one aspect of software testing and it should be used in
combination with other types of testing such as unit testing, functional testing, and acceptance testing to
ensure that the software meets the needs of its users.
The objective is to take unit-tested components and build a program structure that has been dictated by
design. Integration testing is testing in which a group of components is combined to produce output.

Integration testing is of four types: (i) Top-down (ii) Bottom-up (iii) Sandwich (iv) Big-Bang
3. Stress Testing:
In Stress Testing, we give unfavorable conditions to the system and check how it perform in those
conditions.

Example:
Test cases that require maximum memory or other resources are executed.
Test cases that may cause thrashing in a virtual operating system.
Test cases that may cause excessive disk requirement Performance Testing.
It is designed to test the run-time performance of software within the context of an integrated system. It is
used to test the speed and effectiveness of the program. It is also called load testing. In it, we check, what
is the performance of the system in the given load.

Testing the software under extreme conditions to evaluate its robustness.


4. Full-scale Operational Testing:

Testing the software in a simulated real-world environment.


5. Acceptance Testing:
Testing to ensure the software meets user requirements and is ready for deployment.
Acceptance testing is done by the customers to check whether the delivered products perform the desired
tasks or not, as stated in the requirements. We use Object-Oriented Testing for discussing test plans and
for executing the projects.

Advantages of Acceptance Testing:


i. This testing helps the project team to know the further requirements of the users directly as it
involves the users for testing.
ii. Automated test execution.
iii. It brings confidence and satisfaction to the clients as they are directly involved in the testing
process.
iv. It is easier for the user to describe their requirement.
v. It covers only the Black-Box testing process and hence the entire functionality of the
product will be tested.

You might also like