Unit-5 SED
Unit-5 SED
4. Delphi Technique
This technique is a group estimation technique and
is one of the most popular where estimates are
derived after multiple rounds of questionnaires
sent to a panel of experts. It has the following
steps -
1.An expert panel makes forecasts, with reasons,
based on the results of multiple rounds of
questionnaires regarding how many hours a
certain task or project will take under the
guidance of the manager.
2.After the first round, the experts are allowed to
revise their estimates based on how they
interpret group responses, accounting for other
experts’ judgment.
3.Rounds are repeated till the range of forecasts
decrease and an average value is reached.
4.This method is simple and reliable as the
experts are highly experienced in the subject
area. The resulting estimates from this
technique reflect the consensus estimation of
the group of experts.
5. Agile Estimation
In the previous techniques, details and
requirements are defined before we plan the
schedule and budget. This has some drawbacks
because the software industry is constantly
changing and hence the use of the previous
techniques is decreasing. The test estimation
techniques in agile support continuous delivery.
In these techniques, the currently available data
and prior experience are used for estimation and
new information is continuously integrated into the
project to refine the process of estimation. Some of
the widely used agile estimation techniques are -
1.Planning Poker: It is a consensus-based
technique for estimating, mostly used to
estimate the effort or relative size of testing by
breaking project work into sprints. At the start
of each sprint, estimates are done for the user
stories (smallest measurable user requirement)
and priorities are defined. The team members
use a deck of cards with numbers on them
from 0 to 21 in the Fibonacci sequence (0, 1,
2, 3, 5, 8, 13, 21). These numbers represent
‘Story Points’. The meeting moderator
describes a story and asks agile team members
to estimate the effort privately without
consulting any other team member. Estimates
are done on the story-pointing scale. Members
then asked to hold up the card at the same time
showing the effort they think is required for
the story. This consensus repeats with
discussion until all the votes are accounted for
and reasoned for.
2.T-Shirt Sizing: Sometimes, the story-pointing
scale is overwhelming for the team members
to estimate. In such cases it is more efficient to
switch to a non-numerical system like T-shirt
sizes: XS, S, M, L, XL, and so on, with these
sizes corresponding to the story size that the
member estimates a story to have. This
presents a simple yet accurate way to estimate
testing efforts.
modules
Also Read: How Impact Analysis in Testing can
Fasten Release Cycles
password to be checked
All the modules are to be categorized according to
the complexity and given a functional point
Module Complexity Functional P
Recreation or Medium 2
changing of
password to be
checked
= 30 days,
And in the worst case, it may take 50 days,
so w = 50 days.
How to Calculate Estimation
The effort to complete the task is calculated using
the double-triangular distribution formula –
E = (b+4m+w)/6
E is the value for the estimate
SD = (w – b)/6
SD stands for standard deviation which measures
the variability or uncertainty in the estimate. So,
taking values assumed to complete testing for an e-
commerce website:
E = (20+4(30)50)/6 = 31.67 days
SD = (50 – 20)/6 = 5 days
Therefore, the nearest approximation for the
testing estimate can be considered to vary within
the range of E+SD to E-SD days. For the above
example, the estimate will vary from 36.67 to
26.67 days.
Advantages of Software Estimation Test
Can help in getting a more precise estimation
Minimizes the chances of failures
Backward Traceability
Backward traceability involves tracing test cases
back to the originating requirements. It ensures
that every test case has a clear association with one
or more requirements. This type of traceability
helps in validating the necessity of each test case
and identifying any redundant or obsolete ones.
Bidirectional Traceability
Bidirectional traceability combines both forward
and backward traceability, establishing a two-way
mapping between requirements and test cases.
It ensures not only that each requirement has
corresponding test cases but also that each test
case is linked back to the originating requirements.
This comprehensive approach provides a thorough
understanding of the testing coverage and its
alignment with the project requirements.
Vertical Traceability
Vertical traceability extends beyond requirements
and test cases to encompass other artifacts
throughout the software development lifecycle,
such as design documents, code modules, and user
manuals.
It enables stakeholders to trace the evolution of
various elements across different phases of
development, ensuring consistency and coherence
in the final product.
Horizontal Traceability
Horizontal traceability focuses on establishing
relationships between artifacts within the same
development phase. For example, it may involve
linking test cases to each other based on shared
test objectives or dependencies.
This type of traceability enhances collaboration
and coordination among testing teams, ensuring
that efforts are synchronized and aligned toward
common goals.
Automation Testing
The testing pyramid includes a model for how tests
should distribute across different levels. The three
main levels are unit, integration, and end-to-end
tests.
Unit tests are the foundation of the pyramid. They
test individual units of code, such as classes and
methods. These tests are fast to write and run, and
they provide a high degree of confidence that the
units under test behave as expected.
Integration tests build on top of unit tests by
testing how different units work together. These
tests are more complex than unit tests, and they
take longer to run. But they can give you
confidence that your units will work together as
intended when they are integrated.
End-to-end tests complete the pyramid by testing
the system as a whole. These tests simulate how a
real user would interact with the system. They are
the most complex and time-consuming tests to
write, but they can give you confidence that the
system works end-to-end.
The pyramid is not a strict model; there is no right
or wrong way to distribute your tests across the
levels. The important thing is to have a good mix
of tests at all levels to have confidence in your
system.
Test Design
Designing an effective test automation strategy
requires taking a number of factors into
consideration. These include the types of tests to
be automated, the tools to be used, the team’s
skills and experience, and the project’s timeline
and budget.
The first step in designing a test automation
strategy is identifying which tests should be
automated. This can be done using the testing
pyramid framework discussed earlier. The tests
that should be given priority are the ones that are
most likely to find bugs.
The next step is to choose the right tools for the
job. Many different test automation tools are
available, each with its strengths and weaknesses.
The right tool for the job will depend on the nature
of the project and the team’s skills and experience.
Once the tools have been chosen, the team needs
to be trained to use them. This is important
because the architecture of test automation is only
as effective as the team using it. The team should
have a clear understanding of the process and be
able to use the tools effectively.
Finally, the project’s timeline and budget need to
be considered. Test automation can be a time-
consuming and expensive process. It is important
to make sure that there is enough time and money
allocated to the project to get the desired results.
Type of application that needs to be tested: It could be web, mobile, API or a desktop
application.
Platforms that need to be tested: If yours is a desktop application, list down the
operating systems that should be tested. If yours is a mobile application, then list
down the supported mobile operating systems. If yours is a web application, then list
down the supported browsers.
Language your application is built in: This can help if you are planning to use a
programming language for automation.
Need for cross-browser testing/cross-device testing: If yours is a web application or a
mobile application then you will, most probably, need this.
If yours is a team that already has people that are skilled in some programming language then
you can think of using an automation tool in that programming language. Or, if you plan to
hire skilled people for automation then you don’t need to consider this point.
But, if you are planning to have an automation tool that will not need you to look for people
with the required skillset, going for codeless automation tools will be a good idea. These
tools allow the automation of test cases without the need for knowing a programming
language.
Check this guide to know about Codeless Testing in detail.
3. Budget:
This is a very important criteria for selection of testing tool. You might easily say that you
will want a free tool because you don’t want to spend on automation if you can avoid it.
But, you also need to consider that the amount of time being spent on automation, the number
of people working on the tool and the machines being used for automation also constitute the
amount you spend on automation. So, consider below points before deciding on the budget:
Cost of human resources being used for automation: If there is a tool that does not
need you to hire new resources, especially for automation, consider it a saving.
Time spent on learning the tool: If there is a tool that has a low learning curve, that is
an indirect saving in the cost you might have spent in terms of the time the resources
spend on learning the tool. Or hiring resources that are skilled in that particular tool.
Time being spent on automation: If there is a tool that makes it easy to create and
maintain test cases, thereby saving time, consider it a saving in cost.
Cost of infrastructure: Talking about cloud and hosting, you can go for an ideal PHP
hosting that gives an amazing managed hosting experience.