0% found this document useful (0 votes)
16 views9 pages

SE CH - 6 Software Testing

Testing is the process of executing a program to find errors. The document discusses different types of software testing including unit testing, integration testing, regression testing, smoke testing, and performance testing. It also covers verification and validation of software, comparing black box and white box testing, and the software configuration management process.

Uploaded by

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

SE CH - 6 Software Testing

Testing is the process of executing a program to find errors. The document discusses different types of software testing including unit testing, integration testing, regression testing, smoke testing, and performance testing. It also covers verification and validation of software, comparing black box and white box testing, and the software configuration management process.

Uploaded by

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

Software Testing

Testing is the process of executing a program to find errors. To make our software
perform well it should be error-free. If testing is done successfully it will remove all the
errors from the software.

Principles of Testing:-

(i) All the tests should meet the customer requirements.


(ii) To make our software testing should be performed by a third party.
(iii) Exhaustive testing is not possible. As we need the optimal amount of testing based
on the risk assessment of the application.
(iv) All the tests to be conducted should be planned before implementing it
(v) It follows the Pareto rule(80/20 rule) which states that 80% of errors come from
20% of program components.
(vi) Start testing with small parts and extend it to large parts.

Types of Testing or Strategy of Testing:-

1. Unit Testing
2. Integration Testing
3. Regression Testing
4. Smoke Testing
5. Object-Oriented Testing
6. Performance Testing

1) Unit Testing:

Unit testing is a type of software testing where individual software components are
tested.
Unit testing of the software product is carried out during the development of an
application.
An individual component may be either an individual function or a procedure. Unit
testing is typically performed by the developer. It is a testing method using which every
independent module are tested to determine if there is any issue by the developer
himself.

Objective of Unit Testing:


The objective of Unit Testing is:
1. To isolate a section of code.
2. To verify the correctness of the code.
3. To test every function and procedure.
4. To fix bugs early in the development cycle and to save costs.
5. To help the developers to understand the code base and enable them to make
changes quickly.
6. To help with code reuse.

Advantages of Unit Testing:

1. 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.
2. Unit testing allows the programmer to refine code and make sure the module works
properly.
3. Unit testing enables testing parts of the project without waiting for others to be
completed.

Disadvantages of Unit Testing:

1. The process is time-consuming for writing the unit test cases.


2. 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.
3. Unit Testing is not efficient for checking the errors in the UI(User Interface) part of
the module.
4. It requires more time for maintenance when the source code is changed frequently.
5. It cannot cover the non-functional testing parameters such as scalability, the
performance of the system, etc.

Example: a) In a program we are checking if the loop, method, or function is working


fine
b) Misunderstood or incorrect, arithmetic precedence.
c) Incorrect initialization

2) Integration Testing:

Integration testing is the process of testing the interface between two software units or
modules.
Its focus is on determining the correctness of the interface.
Integration testing aims to expose faults in the interaction between integrated units.
Once all the modules have been unit tested, integration testing is performed.

Example: White box testing: - It is used for verification. In this, we focus on internal
mechanisms. Such as “How the output is achieved?”

Difference between Unit and Integration Testing:

S.
No. Unit Testing Integration Testing

In unit testing, each module of the In integration testing, all modules of


1. software is tested separately. the software are tested combined.

In unit testing tester knows the internal Integration testing doesn’t know the
2. design of the software. internal design of the software.

Unit testing is performed first of all Integration testing is performed after


3. testing processes. unit testing and before system testing.

4. Unit testing is white box testing. Integration testing is black box testing.

Unit testing is performed by the Integration testing is performed by the


5. developer. tester.

Detection of defects in unit testing is Detection of defects in integration


6. easy. testing is difficult.

It tests parts of the project without It tests only after the completion of all
7. waiting for others to be completed. parts.

8. Unit testing is less costly. Integration testing is more costly.

Unit testing is responsible to observe Error detection takes place when


only the functionality of the individual modules are integrated to create an
9. units. overall system.
S.
No. Unit Testing Integration Testing

10. Module specification is done initially. Interface specification is done initially.

The proper working of your code with The proper working of your code with
the external dependencies is not the external dependencies is ensured by
11. ensured by unit testing. integration testing.

12. Maintenance is cost effective. Maintenance is expensive.

Fast execution as compared to Its speed is slow because of the


13. integration testing. integration of modules.

Integration testing results in the


Unit testing results in in- integration structure’s detailed
14. depth exposure to the code. visibility.

3) Regression Testing:

Every time a new module is added leads to changes in the program. This type of testing
makes sure that the whole component works properly even after adding components to
the complete program.

Example: In school, record suppose we have module staff, students and finance
combining these modules and checking if on integration of these modules works fine in
regression testing.

4) Smoke Testing:

This test is done to make sure that the software under testing is ready or stable for
further testing. It is called a smoke test as the testing of an initial pass is done to check
if it did not catch the fire or smoke in the initial switch on.
Example: If the project has 2 modules so before going to the module make sure that
module 1 works properly

5) Object-Oriented Testing:

This testing is a combination of various testing techniques that help to verify and
validate object-oriented software. This testing is done in the following manner:
 Testing of Requirements,
 Design and Analysis of Testing,
 Testing of Code,
 Integration testing,
 System testing,
 User Testing.

6) 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 the performance of the system is in the given
load.
Example: Checking several processor cycles.
Verification and Validation of Software

Verification and Validation is the process of investigating that a software system


satisfies specifications and standards and it fulfills the required purpose.
Verification: Are we building the product right?
Validation: Are we building the right product?

Verification:

Verification is the process of checking that software achieves its goal without any bugs.
It is the process to ensure whether the product that is developed is right or not.
It verifies whether the developed product fulfills the requirements that we have.
Verification is Static Testing.

Activities involved in verification:


1. Inspections
2. Reviews
3. Walkthroughs

Validation:

Validation is the process of checking whether the software product is up to the mark or
in other words product has high level requirements.
It is the process of checking the validation of product i.e. it checks what we are
developing is the right product. It is validation of actual and expected product.
Validation is the Dynamic Testing.

Activities involved in validation:


1. Black box testing
2. White box testing
3. Unit testing
4. Integration testing

Note: Verification is followed by Validation


Black box and White Box Testing

1. The Black Box Test is a test that only considers the external behavior of the
system; the internal workings of the software is not taken into account.

There are three types of black-box testing: functional testing, Non-Functional


testing, and Regression testing.

Black box testing involves testing a system with no prior knowledge of its
internal workings. A tester provides an input, and observes the output generated
by the system under test.

2. The White Box Test is a method used to test a software taking into consideration
its internal functioning. It is carried out by testers.

The types of white box testing are – Path testing, Loop testing, and Condition
testing.

White-box testing is also known as clear box testing, glass box testing,
transparent box testing, and structural testing.
Software Configuration Management Process

It uses the tools which keep that the necessary change has been implemented adequately
to the appropriate component. The SCM process defines a number of tasks:
o Identification of objects in the software configuration
o Version Control
o Change Control
o Configuration Audit
o Status Reporting

Identification

 Basic Object: Unit of Text created by a software engineer during analysis,


design, code, or test.
 Aggregate Object: A collection of essential objects and other aggregate objects.
Design Specification is an aggregate object.

Version Control

 Version Control combines procedures and tools to handle different version of


configuration objects that are generated during the software process.
Change Control

 A change request is submitted and calculated to assess technical merit; potential


side effects, the overall impact on other configuration objects and system
functions, and projected cost of the change.
 The results of the evaluations are presented as a change report, which is used by a
change control authority (CCA) - a person or a group who makes a final decision
on the status and priority of the change.
 Access Control governs which software engineers have the authority to access
and modify a particular configuration object.
 Synchronization Control helps to ensure that parallel changes, performed by two
different people, don't overwrite one another.

Configuration Audit

 SCM audits to verify that the software product satisfies the baselines requirements
and ensures that what is built and what is delivered.
 SCM audits also ensure that traceability is maintained between all CIs and that all
work requests are associated with one or more CI modification.

Status Reporting

 Configuration Status reporting (sometimes also called status accounting) providing


accurate status and current configuration data to developers, testers, end users,
customers and stakeholders

You might also like