Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Types of Software Testing

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

Types of Software Testing

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
Unit Testing It focuses on the smallest unit of software design. In this, we test
an individual unit or group of interrelated units. It is often done by the
programmer by using sample input and observing its corresponding outputs.
Integration Testing 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
1. Black Box testing:- It is used for validation.
In this, we ignore internal working mechanisms and focus on what is the
output?.
• Implementation of code is not needed for black box testing.
• It is mostly done by software testers.
• It is a functional test of the software.
• It is least time consuming.
• It is least time consuming.
2. White box testing:- It is used for verification.
In this, we focus on internal mechanisms i.e. how the output is achieved?
• Code implementation is necessary for white box testing.
• It is mostly done by software developers.
• It is a structural test of the software.
• It is most time consuming.
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
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
Alpha Testing
This is a type of validation testing. It is a type of acceptance testing which is
done before the product is released to customers. It is typically done by QA
people.
Example:
When software testing is performed internally within the organization
Beta Testing
The beta test is conducted at one or more customer sites by the end-user of the
software. This version is released for a limited number of users for testing in a
real-time environment
Example:
When software testing is performed for the limited number of people
System Testing
This software is tested such that it works fine for the different operating
systems. It is covered under the black box testing technique. In this, we just
focus on the required input and output without focusing on internal working.
In this, we have security testing, recovery testing, stress testing, and
performance testing
Example:
This includes functional as well as nonfunctional testing
Stress Testing
In this, we give unfavorable conditions to the system and check how they
perform in those conditions.
Example:
(a) Test cases that require maximum memory or other resources are executed
(b) Test cases that may cause thrashing in a virtual operating system
(c) 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.
Example:
Checking several processor cycles.
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.
Acceptance Testing
Acceptance testing is done by the customers to check whether the delivered
products perform the desired tasks or not, as stated in requirements.
We use this OOT, for discussing test plans and for executing the projects.
Software Quality Assurance
Software Quality Assurance (SQA) is simply a way to assure quality in the software. It is the set
of activities which ensure processes, procedures as well as standards are suitable for the
project and implemented correctly.
Software Quality Assurance is a process which works parallel to development of software. It
focuses on improving the process of development of software so that problems can be
prevented before they become a major issue. Software Quality Assurance is a kind of Umbrella
activity that is applied throughout the software process.
Software Quality Assurance has:
A quality management approach
Formal technical reviews
Multi testing strategy
Effective software engineering technology
Measurement and reporting mechanism
Benefits of Software Quality Assurance (SQA):
• SQA produces high quality software.
• High quality application saves time and cost.
• SQA is beneficial for better reliability.
• SQA is beneficial in the condition of no maintenance for a long time.
• High quality commercial software increase market share of company.
• Improving the process of creating software.
• Improves the quality of the software.
Disadvantage of SQA:
• There are a number of disadvantages of quality assurance. Some of
them include adding more resources, employing more workers to help
maintain quality and so much more.
Measures of Software Quality Assurance :
There are various measures of software quality. These are given below:
1. Reliability
It includes aspects such as availability, accuracy, and recoverability of system to continue
functioning under specific use over a given period of time. For example, recoverability of system
from shut-down failure is a reliability measure.
2. Performance
It means to measure throughput of system using system response time, recovery time, and
start up time. It is a type of testing done to measure performance of system under a heavy
workload in terms of responsiveness and stability.
3. Integrity
Software integrity refers to the quality of the software's source code. And, code quality is
essential as it is a measure of how safe, secure, and reliable it is. Here, we take a closer look at
what is software integrity, why it matters, and how the right tools can help improve your software
integrity.
4. Functionality
It represents that system is satisfying main functional requirements. It simply
refers to required and specified capabilities of a system.
5. Supportability
There are a number of other requirements or attributes that software system
must satisfy. These include- testability, adaptability, maintainability, scalability,
and so on. These requirements generally enhance capability to support
software.
6. Usability
It is capability or degree to which a software system is easy to understand
and used by its specified users or customers to achieve specified goals with
effectiveness, efficiency, and satisfaction. It includes aesthetics, consistency,
documentation, and responsiveness.
7. Correctness
The ability of software products to perform their exact tasks, as defined by their specification.
8. testablity
In software, testability refers to the degree that any module, requirements, subsystem or other
component of your architecture can be verified as satisfactory or not. High testability means it is easy
to find and isolate faults as part of your team's regular testing process.
9. Efficiency
This software QA attribute indicates how well the system uses all the available resources. It is shown
by the amount of time the system needs to finish any task.
10. Portabitity
This software quality assurance attribute demonstrates the system’s ability to run effectively on
various platforms. for example, data portability, viewing, hosting, and more.
11. Maintainability
It shows how easy it is to maintain different system versions and support changes and upgrades cost-
effectively.

You might also like