0% found this document useful (0 votes)
9 views

why do we need software testing

H
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

why do we need software testing

H
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

****why do we need software testing?

To Improves product quality. it identifies any issues and defects with the written
code so they can be fixed before the software product is delivered.

****error bug defect failure

We can say that a mistake made by a programmer during coding is called an


error, an error found during the unit testing in the development phase is called
a defect, an error found during the testing phase is called a bug and when an
error is found at an end user's end is called as the failure.

****why software has bugs?


Oversight or misunderstanding by a software team during specification, design,
coding, configuration, data entry or documentation is the reason for software
having bugs.

****why do we need software testing?


To Improves product quality. it identifies any issues and defects with the written
code so they can be fixed before the software product is delivered.

****error bug defect failure


We can say that a mistake made by a programmer during coding is called an
error, an error found during the unit testing in the development phase is called
a defect, an error found during the testing phase is called a bug and when an
error is found at an end user's end is called as the failure.

****why software has bugs?


Oversight or misunderstanding by a software team during specification, design,
coding, configuration, data entry or documentation is the reason for software
having bugs.

****SDLC vs STLC

Software Development Life Cycle (SDLC) is a sequence of different activities


performed during the software development process.
Software Testing Life Cycle (STLC) is a sequence of different activities
performed during the software testing process.
Find the difference between STLC and SDLC below:
**** Waterfall Model

The Waterfall Model was the first Process Model to be introduced. It is also
referred to as a linear-sequential life cycle model. It is very simple to
understand and use. In a waterfall model, each phase must be completed
before the next phase can begin and there is no overlapping in the phase.In this
Waterfall model, typically, the outcome of one phase acts as the input for the
next phase sequentially.
The following illustration is a representation of the different phases of the
Waterfall Model.

Advantages and disadvantages of Waterfall Model:-


Advantages Dis-Advantages
Before the next phase of Error can be fixed only during the
development, each phase must be phase
completed
Suited for smaller projects where It is not desirable for complex
requirements are well defined project where requirement
changes frequently
They should perform quality Testing period comes quite late in
assurance test (Verification and the developmental process
Validation) before completing each
stage
Elaborate documentation is done Documentation occupies a lot of
at every phase of the software’s time of developers and testers
development cycle
Project is completely dependent Clients valuable feedback cannot
on project team with minimum be included with ongoing
client intervention development phase
Any changes in software is made Small changes or errors that arise
during the process of the in the completed software may
development cause a lot of problems

****What is the Spiral Model?


The Spiral Model is a Software Development Life Cycle (SDLC) model that
provides a systematic and iterative approach to software development. In its
diagrammatic representation, looks like a spiral with many loops. The exact
number of loops of the spiral is unknown and can vary from project to project.
Each loop of the spiral is called a Phase of the software development process.

What Are the Phases of Spiral Model?


The Spiral Model is a risk-driven model, meaning that the focus is on managing
risk through multiple iterations of the software development process. It
consists of the following phases:
1. Planning
The first phase of the Spiral Model is the planning phase, where the scope of
the project is determined and a plan is created for the next iteration of the
spiral.

2. Risk Analysis
In the risk analysis phase, the risks associated with the project are identified
and evaluated.
3. Engineering
In the engineering phase, the software is developed based on the requirements
gathered in the previous iteration.
4. Evaluation
In the evaluation phase, the software is evaluated to determine if it meets the
customer’s requirements and if it is of high quality.
5. Planning
The next iteration of the spiral begins with a new planning phase, based on the
results of the evaluation.
The Spiral Model is often used for complex and large software development
projects, as it allows for a more flexible and adaptable approach to software
development . It is also well-suited to projects with significant uncertainty or
high levels of risk.
The Radius of the spiral at any point represents the expenses(cost) of the
project so far, and the angular dimension represents the progress made so far
in the current phase.

Spiral Model.

Advantages & Disadvantages of spiral model

Advantages of Spiral Model:

. Software is produced early in the software life cycle.


. Risk handling is one of important advantages of the Spiral model, it is
best development model to follow due to the risk analysis and risk
handling at every phase.
. Flexibility in requirements. In this model, we can easily change
requirements at later phases and can be incorporated accurately. Also,
additional Functionality can be added at a later date.
. It is good for large and complex projects.
. It is good for customer satisfaction. We can involve customers in the
development of products at early phase of the software development.
Also, software is produced early in the software life cycle.
. Strong approval and documentation control.
. It is suitable for high risk projects, where business needs may be
unstable. A highly customised product can be developed using this.
Disadvantages of Spiral Model:
. It is not suitable for small projects as it is expensive.
. It is much more complex than other SDLC models. Process is complex.
. Too much dependable on Risk Analysis and requires highly specific
expertise.
. Difficulty in time management. As the number of phases is unknown at
the start of the project, so time estimation is very difficult.
. Spiral may go on indefinitely.
. End of the project may not be known early.
. It is not suitable for low risk projects.
. May be hard to define objective, verifiable milestones. Large numbers
of intermediate stages require excessive documentation.

V-Model

It is also known as the Verification and Validation model. It is based on the


association of a testing phase for each corresponding development stage.
Difference between Verification and validation:-
Verification means checking the documents, designs, and other programming
things.
Validation means testing the actual product.

Advantages and Disadvantages of V& V


Difference between QA, QC and QE:-
QQA primarily focuses on the processes and procedures that improve quality,
including training, documentation, monitoring and audits. QC focuses on the
product to find defects that remain after development. QC professionals find
these issues in a variety of ways, including software testing and beta or canary
testing. QE involves the use of different tools and techniques to prevent defects
and enhance the software development process.

Types of Software Testing


There are basically 10 -11 types of Testing.
● Unit Testing
● Integration Testing
● System Testing
● Functional Testing
● Acceptance Testing
● Smoke Testing
● Sanity Testing
● Regression Testing
● Performance Testing
● Security Testing
● User Acceptance Testing

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.

Integration Testing
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.

Regression Testing
Regression testing is a method of testing that is used to ensure that changes
made to the software do not introduce new bugs or cause existing functionality
to break

Smoke Testing
Smoke Testing is done to make sure that the software under testing is ready or
stable for further testing

Monkey Testing:-
monkey testing is a technique where the user tests the application or system by
providing random inputs and checking the behaviour, or seeing whether the
application or system will crash.

Gorilla Testing:-
Gorilla Testing is similar to monkey testing, the only difference being that it
tests particular modules, whereas monkey testing tests the system as a whole.

Adhoc Testing:-
Ad hoc testing is a software testing technique performed without any specific
test plan or predefined set of steps.

Exploratory testing:-
Exploratory testing typically involves some test planning, even though it may be
“minor” and adaptable. So, there is an idea of the areas to explore, targets to
achieve, and potential risks to consider.

Alpha Testing
Alpha testing is a type of validation testing. It is a type of acceptance
testing that is done before the product is released to customers. It is typically
done by QA people.

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.
System Testing
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. The 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 work

Stress Testing
In Stress Testing, we give unfavourable conditions to the system and check how
they perform in those conditions.

Acceptance Testing
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.

What is the difference between whitebox and blackbox?

Black box testing is a software testing methodology in which the tester


analyses the functionality of an application without a thorough knowledge of its
internal design. Conversely, in white box testing, the tester is knowledgeable of
the internal design of the application and analyses it during testing

Gray box testing:-


Gray-box testing is a combination of white-box testing and black-box testing.
The aim of this testing is to search for the defects, if any, due to improper
structure or improper usage of applications.

What is static and dynamic testing?

Static testing will analyse the code, requirements documents and design
documents, while dynamic testing will look at the functional behaviour of
software systems such as memory usage and performance. Static testing
essentially gives an assessment of code, while dynamic testing will try to find
active bugs.

Types of system testing:-


There are 2 types of system testing:-

. Functional Testing:-verifies how an application is working. Is it meeting


the software requirements and specifications. Verify all the
functionalities of the software are working as expected.
Types of functional testing:-
. Unit Testing
. Integration Testing.
. UAT
. Smoke Testing
. Regression testing

. Non-functional Testing:- Verify how application behaves. Focus of non


functional testing is to examin product performance.

Types of Non Functional testing:-


. Performance Testing:-It is carried out to test speed, scalability,
stability and reliability of the software.
. Load testing:- it is carried out to determine the behaviour of a system
or software under extreme load.
. Stress testing:- It performed to check the robustness of the system
under varying loads.
. Stability testing:- it is carried out to check the performance of a
software application or system in terms of its capacity to scale up
other scale downtime number of user request loads.

Test Design Technique:-

Used to prepare data for testing.


It helps to design better cases.
Reduces the number of test cases to be executed.

Advantages of Test design technique:-


. Reduce data
. More coverage

Types of Test Design technique:-


Equivalence Class partitioning
Boundary Value Analysis
Decision Table based testing
State Transition
Error Guessing

Test Plan:- A test plan can be defined as a document for a software project that
defines the approach, scope, and intensity of the effort of software testing.

Test Strategy:- The test strategy is a set of instructions or protocols that


explain the test design and determine how the test should be performed.
Use Case, Test Case and test Scenario:-
Use case:- It describes the requirement. (User will perform an action that
action will have an outcome. That action and out come is a use case).

Test Case:- Step by step action to be performed to validate functionality of


AUT(How to test).
It contains Test step, expected result & actual result.

Test Scenario:- A possible area to be tested.(what to test.)

Requirement Traceability Matrix:- it describes the mappings of requirement


with test cases

The main purpose of this is to see that all test cases are covered so that no
functionality should miss while doing software testing.

Test Environment:-

It is an environment set up of hardware and software required to execute test


cases.

Test execution:-
In this process testing team will testing based on test plan, test cases which
were prepared.

Criteria to perform test execution:- Test cases, test plan and test data to be
ready to start test execution.

defect Life cycle:

You might also like