Unit-5-Testing-Tools-And-Measurements Final To Send
Unit-5-Testing-Tools-And-Measurements Final To Send
CO5 :
testing tools.
1) Software Testing
Manual Testing
• Manual testing is a testing process that is carried out manually in order to find
defectswithout the usage of tools or automation scripting.
• A test plan document is prepared that acts as a guide to the testing process in order
to havethe complete test coverage.
• Requirement Analysis
• Defect Logging
Automation Testing
• Automation testing is a technique uses an application to implement entire life
cycle of thesoftware in less time and provides efficiency and effectiveness to the
testing software.
• The main goal of Automation testing is to increase the test efficiency and develop
software value.
Test automation is the use of special software to control the execution of tests and the
comparison of actual outcomes with predicted outcomes. The objective of automated testing
is to simplify as much of the testing effort as possible with a minimum set of scripts. Test
automation can automate some repetitive but necessary tasks in a formalized testing process
already in place, or addadditional testing that would be difficult to perform manually.
i. Software tests have to be repeated often during development cycles to ensure quality.
Every time source code is modified software tests should be repeated.
ii. For each release of the software it may be tested on all supported operating systems
and hardware configurations.
iii. Manually repeating these tests is costly and time consuming. Once created, automated
tests can be run over and over again at no additional cost and they are much faster than
manual tests.
iv. Automated software testing can reduce the time to run repetitive tests from days to
hours. v. A time savings that translates directly into cost savings
i. Even the most conscientious tester will make mistakes during monotonous manual
testing.
ii. Automated tests perform the same steps precisely every time they are executed and
never forget to record detailed results.
i. Automated software testing can increase the depth and scope of tests to help improve
software quality.
ii. Lengthy tests that are often avoided during manual testing can be run unattended.
iii. They can even be run on multiple computers with different configurations.
iv. Automated software testing can look inside an application and see memory contents,
data tables, file contents, and internal program states to determine if the product is
behaving as expected.
v. Automated software tests can easily execute thousands of different complex test cases
during every test run providing coverage that is impossible with manual tests.
vi. Testers freed from repetitive manual tests have more time to create new automated
software tests and deal with complex features.
i. Even the largest software departments cannot perform a controlled web application test
with thousands of users.
ii. Automated testing can simulate tens, hundreds or thousands of virtual users interacting
with network or web software and applications.
i. Shared automated tests can be used by developers to catch problems quickly before
sending to QA.
ii. Tests can run automatically whenever source code changes are checked in and notify
the team or the developer if they fail.
iii. Features like these save developers time and increase their confidence.
ii. Automating repetitive tasks with automated software testing gives your team time to
spend on more challenging and rewarding projects. iii. Team members improve their skill
sets and confidence and, in turn, pass those gains on to their organization.
i. Test Complete addresses a full range of software testing challenges facing corporate IT
departments, product developers, QA engineers, and consultants.
ii. Test Complete enhances the software testing process by increasing efficiency,
removing complexity and lowering costs
These tools are used throughout a software development lifecycle, e.g. tools used
for verification purposes.
There are many varieties of static testing tools used by different people as per the
type of system being developed.
These tools do notinvolve actual input and output. Rather, they take a symbolic
approach to testing, i.e. they do not test the actual execution of the software. e.g.
Flow analyzers, Coverage analyzers, Interface analyzer Code complexity
measurement tools can be used to measure the complexity of a given code.
They are used at different levels of testing starting from unit testing & which may go
up to system testing & performance testing.
These tools test the software system with live data. e.g. Test driver, Test beds,
Emulators
1. Static analysis tools are generally used by developers as part of the development and
component testing process. The key aspect is that the code (or other artefact) is not executed
or run but the tool itself is executed, and the source code we are interested in is the input data
to the tool.
2. These tools are mostly used by developers.
3. Static analysis tools are an extension of compiler technology – in fact some compilers do
offer static analysis features. It is worth checking what is available from existing compilers or
development environments before looking at purchasing a more sophisticated static analysis
tool.
4. Other than software code, static analysis can also be carried out on things like, static analysis
of requirements or static analysis of websites (for example, to assess for proper use of
accessibility tags or the following of HTML standards).
5. Static analysis tools for code can help the developers to understand the structure of the code,
and can also be used to enforce coding standards.
ii. Let us take an example of a car to understand it in a better way. If you go to a showroom of
a car to buy it, you might sit in the car to see if is comfortable and see what sound the doors
make – this would be static analysis because the car is not being driven. If you take a test
drive, then you would check that how the car performs when it is in the running mode e.g. the
car turns right when you turn the steering wheel clockwise or when you press the break then
how the car will respond and can also check the oil pressure or the brake fluid, this would be
dynamic analysis, it can only be done while the engine is running.
Advantages using Tools
1. Speed. The automation tools tests the software under tests with the very faster speed. There
is a vast difference between the speed of user entering the data and the automated tools
generating and entering the data required for the testing of the software. Speed of this software
also completes the work faster.
2. Efficiency. While testers are busy running test cases, testers can't be doing anything else.
If the tester have a test tool that reduces the time it takes for him to run his tests, he has
more time fortest planning and thinking up new tests.
3. Accuracy and Precision. A test tool will perform the same test and check the results
perfectly, each and every time.
4. Resource Reduction. Sometimes it can be physically impossible to perform a certain test
case. The number of people or the amount of equipment required to create the test condition
could be prohibitive. A test tool can be used to simulate the real world and greatly reduce the
physical resources necessary to perform the testing.
5. Simulation and Emulation. Test tools are often used to replace hardware or software that
would normally interface to your product. This "fake" device or application can then be used
to drive or respond to your software in ways that you choose and ways that might otherwise
be difficult to achieve.
6. Relentlessness. Test tools and automation never tire or give up. They can keep going and
going and on and on without any problem; whereas the tester gets tired to test again and again.
OR
Disadvantage
1) Unrealistic expectations from the tool: Unrealistic expectations may be one of the greatest
risks to success with tools. The tools are just software and we all know that there are many
problems associated with any kind of software. It is very important to have clear and realistic
objectives for what the tool can do.
2) People often make mistakes by underestimating the time, cost and effort for the initial
introduction of a tool: Introducing something new into an organization is hardly
straightforward. Once you purchase a tool, you want to have a number of people being able
to use the tool in a way that will be beneficial. There will be some technical issues to
overcome, but there will also be resistance from other people – both need to be handled in
such a way that the tool will be of great success.
3) People frequently miscalculate the time and effort needed to achieve significant and
continuing benefits from the tool: Mostly in the initial phase when the tool is new to the
people, they miscalculate the time and Software Testing effort needed to achieve significant
and continuing benefits from the tool. Just think back to the last time you tried something
new for the very first time (learning to drive, riding a bike, skiing). Your first attempts were
unlikely to be very good but with more experience and practice you became much better.
Using a testing tool for the first time will not be your best use of the tool either. It takes time
to develop ways of using the tool in order to achieve what is expected.
4) Mostly people underestimate the effort required to maintain the test assets generated by
the tool: Generally, people underestimate the effort required to maintain the test assets
generated by the tool. Because of the insufficient planning for maintenance of the assets that
the tool produces there are chances that the tool might end up as ‘shelf-ware’, along with the
previously listed risks.
5) People depend on the tool a lot (over-reliance on the tool): Since there are many benefits
that can be gained by using tools to support testing like reduction of repetitive work, greater
consistency and repeatability, etc. people started to depend on the tool a lot. But the tools are
just a software they can do only what they have been designed to do (at least a good quality
tool can), but they cannot do everything. A tool can definitely help, but it cannot replace the
intelligence needed to know how best to use it, and how to evaluate current and future uses of
the tool. For example, a test execution tool does not replace the need for good test design and
should not be used for every test – some tests are still better executed manually. A test that
takes a very long time to automate and will not be run very often is better done manually.
1. Meeting requirements
There are plenty of tools available in the market but rarely do they meet all the requirements
of a given product or a given organization. Evaluating different tools for different
requirements involve significant effort, money, and time. Given of the plethora of choice
available, huge delay is involved in selecting and implementing test tools.
2. Technology expectations
Test tools in general may not allow test developers to extends/modify the functionality of the
framework. So extending the functionality requires going back to the tool vendor and involves
additional cost and effort. A good number of test tools require their libraries to be linked with
product binaries.
3. Training/skills
While test tools require plenty of training, very few vendors provide the training to the
required level. Organization level training is needed to deploy the test tools, as the user of the
test suite are not only the test team but also the development team and other areas like
configuration management.
4. Management aspects
A test tool increases the system requirement and requires the hardware and software to be
upgraded. This increases the cost of the already- expensive test tool.
In software testing there are three main areas which needs to be considered while
thinking about metrics and measurement.
“How many issues are found in thousand lines of code?”, here No. of issues is one
measurement & No. of lines of code is another measurement. Metric is defined from these
two measurements.
i. As explained above, Test Metrics are the most important to measure the
quality of the software.
ii. Now, how can we measure the quality of the software by using Metrics?
iii. Suppose, if a project does not have any metrics, then how the quality of
the work done by a Test analyst will be measured?
In above scenario, if metrics are not followed, then the work completed by the
test analyst will be subjective i.e. the test report will not have the proper
information to know the status of his work/project.
If Metrics are involved in the project, then the exact status of his/her work with
proper numbers/data can be published.
Based on the project needs we can have more metrics than above mentioned list, to
know the status of the project in detail.
Based on the above metrics, test lead/manager will get the understanding of thebelow mentioned key points.
a) %ge of work completed
b) %ge of work yet to be completed
c) Time to complete the remaining work
d) Whether the project is going as per the schedule or lagging? etc.
Based on the metrics, if the project is not going to complete as per the schedule,
then the manager will raise the alarm to the client and other stake holders by
providing the reasons for lagging to avoid the last minute surprises.
3. Metrics Life Cycle
2. Calculated Metrics
➢ Calculated Metrics are derived from the data gathered in Base Metrics.
These Metrics are generally tracked by the test lead/manager for Test
Reporting purpose.
Unit 5: Testing Tools and Measurements
➢ Examples of Software Testing Metrics:
Let’s take an example to calculate various test metrics used in software test reports:
Below is the table format for the data retrieved from the test analyst who is actually
involved in testing:
Unit 5: Testing Tools and Measurements
5. Importance of metrics and measurement in SDLC
i. During all the software development life cycle it is very important to apply metrics
and measurement because metrics and measurement set expectations. If there are
well established metrics and measurements in project then the test analyst can
easily track and report quality results to the management.
ii. If the metrics & measurements are not established properly then the assessment of
software quality is purely subjective which arises disputes at the end of
development life cycle. You can consider some the following
areas where you can apply metrics and measurement. This list is not
exhaustive, you can have metrics for lot more things.
➢ Schedule of project
➢ Coverage
➢ Planned & actual cost
➢ Workload & resource usage
➢ Product risk & project risk
➢ Defects
iii. While doing test planning we set the expectations for the stakeholders or we set the
baselines for them. If you have established the baselines the test reporting is
consistent to the management and you can avoid subjective assessment of testing