Unit 5 notes
Unit 5 notes
5.1 Introduction
1. Today, rigorous application testing is a critical part of virtually all software
development projects. As more organizations develop mission- critical systems
to support their business activities, the need is greatly increased for testing
methods that support business objectives.
2. It is necessary to ensure that these systems are reliable, built according to
specification and have the ability to spoon business processes. Many internal and
external factors are forcing organisations to ensure a High level of software
quality and reliability.
2. Limited Support for Regression Testing: When one portion of software is changed
then regression testing is performed to ensure that other portions are not infected by the
recent change. In this process entire testing is repeated which takes more time.
3. Error Prone Testing: As test process is repeated several times test engineers become
bored which may results in missing some important test cases and leads to release
defective software.
4. Impractical Performance Testing: In doing performance testing of any client server
application resources like people and computers are required.
5. Non consistent: Manual testing process is not consistent as testing methods and
approaches applied by every person are not remaining same. This produces different
results on same test.
6. Limited Scope: Considering large scale projects, scope of manual testing is very
limited compare to automated testing. As the size of software increases, its complexity
also increases thus the problems in testing occurs exponentially that is why the Manual
Testing doesn't scale well. This increases the time of testing and cost of testing to.
Which are features for selecting static test tools? Also list any two available test tools (static).
What are different static and dynamic Testing tools? Explain any one tool in detail
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 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 for code can help the developers to understand the structure
of the code and can also be used to enforce coding standards
1. Dynamic analysis tools are 'dynamic because they require the code to be in a
running state. They are 'analysis rather than testing tools because they analyze
what is happening "behind the scenes that is in the code while the software is
running (whether being executed with test cases or being used in operation),
2. 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
3. If you take a test drive, then you would check that how the car performs when it
is in the running mode eg 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
1. Once the software is ready for testing the functionality of the software can be
tested repeatedly to improve the quality and reliability.
2. Testing can be done unattended, for example, during nighttime and during
holidays
3. When the software has to be tested in different environments (different hardware
platform, different operating systems, using different browsers etc.), the labour
involved can be reduced.
4. Performance testing can be done without the need for many computers and many
test engineers. The test tools simulate multiple users on a single machine. As
compared to manual testing, finding out transaction response times when
multiple users access the same application will be very easy
5. Testing process can be planned and managed effectively using these tools.
6. Test reports can be generated automatically for later analysis and corrective
action
7. Hence, using automated test tools results in
i. Improvement in the quality and reliability of the software.
ii. Drastic reduction in time, effort, and money spent on testing
iii. A systematic approach to the testing process
iv. Efficient management of the testing process even if the teams are at different
geographical locations.
Which different benefits help to recommend automated testing? Write advantages of switching
to automated
i. Efficient Testing
ii. Consistency in testing
iii. Better Quality Software
iv. Automated testing is faster
v. Automated testing is more reliable
vi. Automated testing reduces human and technical risks
vii. Automated testing is more powerful and versatile
Code-driven testing : This approach is used to test public interfaces to objects, classes,
modules or libraries are tested using different types of inputs to validate the result with
return results
2 Graphical user interface testing: This approach is used testing frameworks for
generating testing different user Interface events like keystrokes and mouse clicks and
notices the changes in that user interface. To validates the noticed change behavior of
the system.
It is carried out manually where a tester It is carried out with the help of various
himself executes all the steps, eg. in a test automation tools QTP, Selenium etc. There
case are many available in the marie Based on
factors like requirement and budget, one
needs to choose one
Manual testing is the most basic step. Automation testing can be said to be an
Without carrying out manual testing, one integral and continuous part of manual
cannot proceed towards automation testing testing
Time consumed is more in this case Time consumed is less as expected
More testers are required in Manual Testing Fewer testers are required in Automation
on the grounds that in this test cases should Testing on the grounds that in this test cases
be executed manually should be executed by utilizing Automation
Tools
investment is required for human Resources Investment is required for testing tools.
Automation eliminates the required "think time" or "read time” necessary for the
manual interpretation of when or where to click the Mouse.
An automated test allows test to be completed many times faster than the fastest
individual. Automated test also perform load/stress testing very effectively.
Computers can execute instructions many times faster and with fewer errors than
individuals
Many automated testing tools can replicate the activity of a large number of using a
single computer.
Therefore, load/stress testing using automated methods requires only a fraction of the
computer hardware that would be necessary to complete a manual test.
Automation allows the testing organization to perform consistent and repeatable test.
5) Results reporting
Full-featured automated testing systems also produce convenient test reporting and
analysis.
These reports provide a standardized measure of test status and results, thus allowing
more accurate interpretation of testing outcomes. Manual methods require the user to
self-document test procedures and test results.
Repetitive work is very boring if it is done manually. People tend to make mistakes
when doing the same task over and over.
Examples of this type of repetitive work Include running regression tests, entering the
same test data again and again [can be done by a test execution tool), checking against
coding standards (which can be done by a static analysis tool or creating a specific test
database (which can be done by a test data preparation tool).
3. Objective assessment
If a person calculates a value from the software or incident reports, by mistake they
may omit something, or their own one-sided preconceived judgments or convictions
may lead them to interpret that data incorrectly. Using a towel means that subjective
preconceived notion is removed and the assessment is more repeatable and
consistently calculated.
Information presented visually is much easier for the human mind to understand and
interpret. For example, a chart or graph is a better way to show information than a
long list of numbers - this is why charts and graphs in spreadsheets are so useful.
Special purpose tools give these features directly for the information they process.
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:
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.
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.
The tool should help in building the strengths of the organization and should also
address its weaknesses. The organization needs to be ready for the changes that will
come along with the new tool.
Here are the criteria you need to consider before selecting any testing tool
Adtomated tests are a very useful and impressive tool used ta make testing more
efficient. However, automated tests are not suited to all projects - this may be due to
lack of time available, or due to technical limitations Automated tests take time to
create. Depending on the testers, it can take 3-10 times the amount of time to create an
automated test as it takes to run the same test manually. Therefore, automated tests
will only start to be valuable when they are run more than 3-10 times.
Regression testing for a stable system that will be run ana regular basis
Fast data creation in test systems where the database must be wiped on a regular bass
Testing new functionality this should be done manually before automated tests are
created,
Regression testing systems that are expected to have significant user interface
changes. Large changes to the user interface require a lot of maintenance for
automated tests When automating tests, it is wise to only automate as many tests as
your team can easily maintain. If some tests are becoming difficult to maintain, it may
be worth considering retiring those tests,
Above all, remember that automated tests will never detect as many bugs as a human
tester executing the same steps This is because the human tester's eyes can pick up
many things, whereas the test will only notice what it is programmed to notice.
Software Test automation makes use of specialized tools to control the execution of
tests and compares the actual results against the expected result. Usually regression
tests, which are repetitive actions are automated.
Testing Tools not only help us to perform regression tests but also helps us to
automate data set up generation
Platform independence
E-mail Notifications
Types of frameworks
Typically, there are 4 test automation frameworks that are adopted while automating
the applications
Product
Rational Robot
Coded UI
Selenium
Auto IT
Popular Tools that are used for Non-Functional automation
Vendor
HP
IBM
Microsoft
Open Source
Open Source
Product
Load Runner
Imeter
Burp Suite
Acunetix
Vendor
HP
Apache
PortSwigger
Acunetix
Software Testing Metric is defined as a quantitative measure that helps to estimate the
progress, quality, and health of a software testing effort.
Test metrics example: How many defects exist within the module? How many test
cases are executed per person?
Software metric and measure offer moet into the effectiveness of the software process
and the projects that are conducted using the process as a framework
Mese
Seconde
Meme
Kmh
mis
Q. Give any two advantages and any two limitations of Function Test matrix
Gain an understanding of processes, products. resources, and environments
Take the decision for next phase of activities such as estimate the cost and schedule of
future projects.
Importance of metrics
"We cannot improve what we cannot measure. We cannot control what we cannot
measure
Metrics is used to improve the quality and productivity of products and services thus
achieving Customer Satisfaction
Easy for management to digest one number and drill down, if required.
Different Metrics) trend act an meinitor when the process is going out-of-control.
Metrics Lifecyole
Analysis
Define matics) Identified Dolina paramotor(s) for evaluating the matric(s) identified.
Explain the need of metric lo stakeholder and the testing team. Educate testing team
about the data points need to De caplured lor processing the metric
Verily the data - Calculating the metric(s) value using the data captured
• Develope the report with effective conclusion Distribution report to the stakeholder
and their representative Taka to back trom the stak holder
Advantages
1.
3.
1 it becomes time consuming in many of the cases where requirements are more.
3 it will lead to miss some bugs in earlier test cycles which may arise in later test
cycles. Then a lot of discussion arguments with other teams and managers before
release
Types of Metrics
1. Process metrics
For example, the process metric 'Defect Rate- the amount of defects reaching the
customer can be used to improve the efficiency of the Development and the
Testing team if Defect rate is less, we know that the efficiency of the Development
and the Testing team is improving
2 Product metrics
level.
The product metrics are those metrics which has more meaning in the perspective
of the software product being developed. One of the example is, quality of the
developed product. Considering the fact that quality is a subjective attribute, one
needs a very good understanding of the measures based on which the quality
metrics are computed
3. Project metrics
This metrics describe the project characteristics and execution Examples include
the number of software developers, the staffing pattern over the life cycle of the
software, cost, schedule, and productivity
The project metrics are those metrics which are more relevant to a project team.
They can be used to measur
the efficiency of a project team or any other tools being used by the team
members. One example of a projec metric is 'Errors found per engineer month'
which was mentioned before. This is a relevant project metric for
test team
Evaluate the project team's ability to control quality of software work products:
Many of the same metrics are used in both the process and project domain. Project
metrics are used for mak/ tactical decisions. They are used to adapt project
workflow and technical activities
Metrics from past projects are used as a basis for estimating time and effort
As a project proceed the amount of time and effort expended are compared to
original estimates
Assess product quality on an ongoing basis and when necessary modify the
technical approach to Improve quality
in summary
As quality improves, defects are minimized.
As defects go down, the amount of rework required during the project is also
reduced.
5.6.3
Product metrics
Process metrics
Product metrics
the software,
4. They help software engineers to gain insight into the design and construction of
the software
Which are features for selecting static test tools ? Also list any two available test
tools (static),
State Limitations of manual testing. Write any tour. (Section 5.2.1)
What is the difference between static and dynamic testing tool (Section 5.2.2.1)
State and explain any four benefits of automation in testing (Section 5.2.3)
Define software metrics. Describe product Vs process metrics (Sections 5.6 and
5.6.3)
How to select a testing tool ? Explain in detail (Section 5.4)
Give any four difference between Manual and Automated testing. (Section 5.2.6)
Ο Give any two advantages and any two disadvantages of using testing tools.
(Sections 5.3.1 and 5.3.2) What do you mean by Software Metrics ? List any three
types of metrics (Sections 5.6 and 5.6.2)
Q. State any eight limitations of manual testing. (Section 5.2.1)
What are different static and dynamic testing tools ? Explain any one tool in detail.
(Section 5.2.2.1)
Enlist factors considered for selecting a testing tool for test automation. (Section
5.4) Define the term metrics and measurements Explain need of software
measurement