Software Testing Unit-5
Software Testing Unit-5
⮚ • Manual test do not scale well- As the complexity of the s/w increases,
the complexity of testing problem grows exponentially. This leads to the
increase in total time required for testing as well as total cost of testing.
• Using any automation tool for testing to execute the test case is called as
automation testing.
• It is the use of strategies, tools and artifacts that augment or reduce the need of
manual or human involvement or interaction in unskilled, repetitive tasks.
• Test engineers strive to catch the defects before the product is released but the
defects do reappear, even with the best manual testing process.
• Automated s/w testing is the best way to increase the effectiveness, efficiency and
coverage of your s/w testing.
Automation Testing
• It is also called as Test automation where the tester writes scripts and uses
s/w to test the s/w. This process involves automation of a manual process.
• It increases the test coverage, improve accuracy, saves time and money in
comparison to manual testing.
• It is able to playback pre recorded and pre defined actions, compare the
results to the expected behavior and report the success or failure of these
manual tests to a test engineer.
Automation Testing
• Process Automation Testing:
• Following are the phases of automated testing process—
• Test automation feasibility analysis-
• First step is to check if the application can be automated or not.
• Test automation feasibility analysis is a crucial step in determining whether test
automation is a viable and cost-effective solution for a particular project or application.
• It helps you make an informed decision about whether to invest in test automation or
continue with manual testing.
• Appropriate tool selection- Select the tools. It depends on the technology in which
the application is built, its features and usage.
• Evaluate the suitable framework- Upon selecting the tool, select a suitable
framework.
Automation Testing
• Built the proof of concept(POC)- POC is developed with an end to end
scenario to evaluate if the tool can support the automation of the
application.
• Check that the bugs found in previous test are indeed fixed and that no new
bugs were introduced. This process of rerunning your tests is known as
regression testing.
• If a small project had several thousand test cases to run there might be
rarely enough time to execute them just once. Running them numerous
times might be impossible. So automation will be more efficient than
manual testing.
Features of Test Tools
• Test automation is the use of s/w and h/w combination as the case may be to
create test plans, test cases, definition of test iterations, setting precondition,
test reporting functions.
• Each and every testing tool has some capabilities as well as some drawbacks
also.
• Some features of tool are listed below:
• Each tool has a specific purpose, knowing the tools technique is very
important while using the tool.
• The same tool may be used differently depending upon the technique
selecting for using it.
• Tools can be used in an entire SDLC for all verification and validation activities.
• A tool improves the efficiency and effectiveness of a testing process.
• A tool enhances a defect visualization process effectively.
Features of Test Tools
• Testing tools are of following types:
• 1. Static Testing Tools
• 2. Dynamic Testing Tools
⮚ 2. Developing in-house tools takes time. Even though these tools can be less
expensive and can meet needs better, they are often developed by the
personal interest. They tend to have poor documentation and thus it may
be unusable if the person who developed leaves the organization.
⮚ 3. Test tools sold by vendors are expensive. Most organizations small and
medium enterprises will have to carefully evaluate the economic impact
before making investment.
Selecting a Testing Tool
⮚ 4. Test tools require strong training. Test automation cannot be successful
unless the people using the tools are properly trained. Such training usually
involves getting familiar with the scripting languages that come with the tool,
customizing tool for use. The effort involved in using the tools even after such
training is quite high.
⮚ 5. Test tools generally do not meet all the requirements for automation. Since
tools are meant to be generic, they may not fully satisfy the needs of a
particular customer. That is why customization and extensibility become key
issues.
⮚ 6. Not all test tools run on all platforms. Portability of the tool and the scripts
to multiple platforms is therefore a key factor in deciding the test automation
tool.
Criteria for selecting test tools
❑The categories are-
⮚ 1. Meeting requirements
⮚ 2. Technology expectations.
⮚ 3. Training/skills and
⮚ 4. Management aspects
Criteria for selecting test tools
⮚ 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
Criteria for selecting test tools
⮚ 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.
When to use Automated test Tool
• For example, in a business context, metrics might include things like sales
revenue, customer satisfaction scores, or website traffic. These metrics help
businesses analyze their performance and make data-driven decisions to
achieve their goals.
What are Metrics and Measurements
⮚ What is a Metric?
▪Metrics can be defined as standards of measurement.
▪Metric is unit used for describing or measuring an attribute.
▪Test metrics are means by which the s/w quality can be measured. E.g. how
many defects are existed within the module, what is test coverage %?
❑Metric is a standard unit of measurement that quantifies results. Metric
used for evaluating the s/w processes, products and services is termed as
s/w metrics.
What are Metrics and Measurements
⮚ Even if these metrics are simple, they are useful in knowing the
progress of testing and may supply significant data to the testers as well
as to the project manager.
Object-Oriented Metrics
• Method Metrics:
• Cyclomatic Complexity: Measures the complexity of a method by
counting the number of linearly independent paths through its
control flow.
• Depth of Inheritance Tree (DIT): The length of the longest path from a
class to the root class in the inheritance hierarchy.
Object-Oriented Metrics
• Inheritance Metrics:
• Afferent Couplings (Ca): The number of classes that depend on a particular
class.
• Efferent Couplings (Ce): The number of classes that a particular class
depends on.
• Coupling and Cohesion Metrics:
• Lack of Cohesion in Methods (LCOM): Measures the lack of cohesion
between methods in a class. High LCOM values indicate that a class may be
doing too much and should be split.
• Coupling Between Objects (CBO): The number of other classes a class is
directly connected to.
• Size Metrics:
• Lines of Code (LOC): The number of lines of code in a class or method.
• Number of Attributes (NOA): The count of attributes (fields) in a class
Object-Oriented Metrics
• Conclusion:
• These metrics help in identifying areas of code that may need
improvement, such as refactoring to reduce complexity,
enhancing cohesion, and minimizing coupling.
• However, it's essential to use these metrics in conjunction with
qualitative analysis and not rely solely on them for software
evaluation.
• Additionally, different organizations may have their own
variations or customized metrics based on their specific needs
and coding standards.
Chapter 5 End…!!!