why do we need software testing
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.
****SDLC vs STLC
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.
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.
V-Model
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.
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.
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.
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:-
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.