Вы находитесь на странице: 1из 19

BITP 3213:

Software Testing &


Quality Assurance
Week 8: Tool Support For Testing

Fakulti Teknologi Maklumat dan Komunikasi


Overview

• Type of test tools


• Effective use of tools
• Benefits and risks
• Introduction a tool into organization

Fakulti Teknologi Maklumat dan Komunikasi


Test Tool Classification
• Tools can be classified by the primary testing activities
that they support
• For most classification of tool, there are both
commercial and freeware options available
• Tools automate repetitive tasks, make testing more
efficient
• Tools improve the reliability of testing; e.g. automating
large data comparisons, generating load
• Tools can be either intrusive or non-intrusive
• Intrusive tools have probe effects
• Non-intrusive tools are generally more expensive
• Some tools are primarily for developers
Fakulti Teknologi Maklumat dan Komunikasi
Type of Tools
Tools Type Criteria

Test Management Tools •Provide traceability of tests, test results and incidents to the test basis
e.G Silk Central Testing •Allow logging of test results, and generation of progress reports
•Help manage test and testing
•Interface to test execution, bug tracking and requirement
management tools
•Provide version control interface with an external configuration
management tool
•Perform quantitative analysis related to the tests

Requirements Management Tools •Store requirements statements


•Check for consistency and undefined requirements
•Allow requirements to be prioritized
•Enable individual tests to be traceable to requirements, functions,
and/or features
Bug Tracking Tools •Store and manage bug reports
e.g. Rational Clear quest, etc •Facilitate bug prioritization/classification
•Provide state based workflow, including assignment of actions to
people
•Enable monitoring a project’s bug and bug status over time.
•Provide support for statistical analysis
Configuration Management Tools •Store information about versions and builds of software and testwate
e.g. MKS, ClearCase •Enable traceability between testware and software work products and
product variants
•Help with developing and testing on multiple configurations of
hardware/software environments
Fakulti Teknologi Maklumat dan Komunikasi
Tools Type Criteria

Review Process Support Tools •Store information about review processes


•Store and communicate review comments
•Report on defects and effort
•Manage references to review rules and/or checklists
•Provide aid for online reviews
•Track traceability between documents and source code
Static Analysis Tools •Primarily used by developers
e.G Jlint, IntelliJ IDEA •Find defects before dynamic testing
•Enforce coding standards
•Analyze structures and dependencies
•Aid in understanding source code

Test Design Tools •Generate test inputs or the actual tests from
•Requirements
•Graphical user interface
•Design models
•Code
•Generate expected results (though the reliability of such test oracles is
often limited)
•Generate test frameworks, templates and stubs
Test Data Tools •Manipulate or create databases, files or data for use during test
execution
•Create large volumes of useful test data
•Validate test data according to specific rules
•Analyze the data for frequency of conditions, etc.
•Scramble or anonymize live or customer data

Fakulti Teknologi Maklumat dan Komunikasi


Tools Types Criteria

Test Execution Tools •Run tests


e.G Rational robot, IBM Rational Functional •Produce analyzable logs
Tester •Work at GUI, API, CLI

Test Frameworks, Harness, Simulators •Replace or substitute for missing and/or potentially troublesome
e.H JUnit pieces of hardware or software
•Facilitate testing of units by generating and/or supporting drivers,
stubs, and/or mock objects that replace portions of the system, which
are unavailable or removed to isolate the unit
•Provide execution frameworks in middleware to test languages,
operating systems or hardware
Coverage Measurement Tools •Primarily used by developers
•Either intrusive or non intrusive
•Measure the percentage of specific types of code structure that have
been exercised (e.g. Statements, Branches/decisions, Objects,
Function calls)
•Check how thoroughly a set of tests has executed the measured type
of structure
Performance, Monitoring, Dynamic Analysis •Primarily used by developers, though many testers use performance
and monitoring tools
•Dynamic analysis tools often are used to check for time dependencies
or memory leaks
•Monitor and report on how a system behaves under simulated usage
conditions
•Generate various load conditions for the application, a database,
network or server, often per some script or programmed procedure
•Monitor, analyze, verify and report on usage of specific system
resources, and give warnings of possible problems
Fakulti Teknologi Maklumat dan Komunikasi
• Some tools are focused on particular
applications
• Web-based performance testing tools
• Language specific static analysis tools
• Some target specific application areas like
embedded systems
• Of course, testers also use spreadsheets and
databases
• Many developers use debugging tools

Fakulti Teknologi Maklumat dan Komunikasi


Potential Benefits of Tool Support

• Reduced repetitive work


• Improved consistency and repeatability
• Objective assessment (especially coverage,
performance, etc)
• Simplified reporting

Fakulti Teknologi Maklumat dan Komunikasi


Risks of Using Tool Support

• Unrealistic expectations
• Underestimate the time, cost, and effort of
development, execution and maintenance
• Over-reliance on the tool
• Use of the tool for unsuitable tests

Fakulti Teknologi Maklumat dan Komunikasi


Automated Testing Theory and
Practice
• Test automation is typically software
development
• A non-trial process requiring significant time, skill,
money
• Automation ROI typically takes longer than 1 project
• Usually, what’s automated is only test execution.
Not result analysis
• Automation can complicate analysis (and increase
number) of failed tests

Fakulti Teknologi Maklumat dan Komunikasi


Choosing Manual or Automated
Testing
• Test well-suited for manual Test well suited for automated
• Operations and maintenance • Regression and confirmation
• Configuration and compatibility • Load, volume, and capacity
• Error handling and recovery • Performance and reliability
• Usability • Standards and compliance
• Installation and setup • White box, especially API based
• Documentation and help unit, component, integration
• Combined • Static complexity and code
• Functional analysis
• Use cases/scenarios
• User interface

Fakulti Teknologi Maklumat dan Komunikasi


Special Consideration for Specific
Tools
Test Execution Tools
• Capture replay seems to lower development

costs, but execution and maintenance costs for


large number of test are high
• Data driven tests separate inputs from
procedures that use the data
• Non automation experts can create test data
• Technical expertise in the scripting language is
needed

Fakulti Teknologi Maklumat dan Komunikasi


Special Consideration for Specific
Tools
Performance Testing Tools
• Require expertise in performance to design the tests
and interpret the result
Static Analysis Tools
• When applied to source code can enforce coding
standards, but a phased roll out for existing code is
needed to manage the volume or error founds
Test Management Tools
• Often have poor reporting facilities, so exporting data to
a spreadsheet is ussually the best way to produce the
desired reports
Fakulti Teknologi Maklumat dan Komunikasi
Introduction a tool into
organization : Barriers to
Automation
• The following problems should be rectified before
starting automation effort
• Chaotic, reactive, time crunched test process..Get the manual
testing process under control first, then automate
• Insufficient skilled staff..hire or train
• Unstable, rapidly changing system..stabalize the system-
especially at tested interfaces like GUI and APIs first
• Unrealistic management expectations…effectively communicate
automation benefits, limitations, business case(ROI) and costs
• No appropriate tool or practical oracle available for the
important quality risks..build own tool or oracle-or wait
• When these problems remain, automation ussually fails,
creating Fakulti Teknologi Maklumat dan Komunikasi
Main Consideration in Selecting A
Tool
• Assessment of organization maturity, strengths and
weakness and identification of opportunities for an
improvement test process supported by the tools
• Evaluation against clear requirements and objective
criteria
• A POC to test the required functionality and determine
whether the product meets its objectives
• Evaluation of the vendor including training support and
commercial aspects
• Identification of internal requirements for coaching and
mentoring in the use of the tool
Fakulti Teknologi Maklumat dan Komunikasi
Goals of a Proof-of Concept (POC)
for Tool Evaluation
• Learn more about the tool and how to use it
• Evaluate how the tool fits with existing processes
and practices, and determine what would need to
change
• Decide on standard ways of using , managing,
storing and maintaining the tool and test assets
• Assess whether the benefits will be achieved at
reasonable costs

Fakulti Teknologi Maklumat dan Komunikasi


Success Factor for Tool
Deployment
• Deploy the tool to the rest of the organization
incrementally
• Adapt and improve the test process to fit use of the
tool
• Provide training, coaching and mentoring for new
users
• Define tool usage guidelines
• Learn ways to improve use of the tool continuously
• Monitor tool use and benefits

Fakulti Teknologi Maklumat dan Komunikasi


Test Tool Traps
• No clear strategy • Unstable system under
• Unrealistic expectations test
• Lack of stakeholder buy • Doing too much, too
in soon
• Inadequate or poor • Underestimating time
quality tool training and resources needed
• Automating wrong thing • Inadequate or unique
test environment
• Choosing wrong tool
• Right approach wrong
• Usability problems with
time
tool
• Excessive cost
• Choosing wrong vendor **Reference Rick Craig and Stefan Jaskiel’s Systematic
Software Testing, Chapter 6
Fakulti Teknologi Maklumat dan Komunikasi
Thank You

Fakulti Teknologi Maklumat dan Komunikasi

Вам также может понравиться