0% found this document useful (0 votes)
86 views

Software Testing Principles and Concepts: By: Abel Almeida

The document discusses principles of software testing including using a maturity model to reduce defects, factors that affect testing such as requirements and scope, and types of testing like unit, integration, and acceptance testing. It also covers testing techniques, levels of testing from verification to validation, and concepts like static versus dynamic testing and the "V" model of testing.

Uploaded by

avanianand542
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views

Software Testing Principles and Concepts: By: Abel Almeida

The document discusses principles of software testing including using a maturity model to reduce defects, factors that affect testing such as requirements and scope, and types of testing like unit, integration, and acceptance testing. It also covers testing techniques, levels of testing from verification to validation, and concepts like static versus dynamic testing and the "V" model of testing.

Uploaded by

avanianand542
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Software Testing Principles and

Concepts

By: Abel Almeida


How to reduce the frequency of
defects in software?
 Use the maturity model1
 There are five levels1
 One is AD Hoc – unstructured.
 Two Control – Discipline, training and leadership.
 Three – Core Competency -communication,
hardware and software selection.
 Four –Predictable- management can become coaches
to help people address their day-to-day challenges in
performing work processes in a predictable manner.
 Innovative
What are the Factors Affecting Software Testing?

 People relationships - several variables that affect the


testing process including: the development process itself,
software risk, customer/user participation, the testing process, a
tester’s skill set, use of tools, testing budget and resource
constraints, management support, and morale and motivation of
the testers.
 Scope of Testing- A narrow scope may be limited to determining
whether or not the software specifications were correctly implemented
 Misunderstanding Life Cycle Testing – Testing after
coding is the only method used to determine the adequacy of the
system. When testing is constrained to a single phase and confined to
the later stages of development, severe consequences can develop.
 Requirements- Both product requirements and validation requirements
should be established.
 Design- During detailed design, validation support tools should be acquired
or developed and the test procedures themselves should be produced.
 Program (Build/Construction) - Actual testing occurs during
the construction stage of development. Many testing tools and techniques exist
for this stage of system development.
 Test Process- During the test process, careful control and management
of test information is critical
 Installation- The process of placing tested programs into production is an
important phase normally executed within a narrow time span.
 Maintenance- Test cases generated during system development
are reused or used after appropriate modifications. The quality of the
test documentation generated during system development and modified
during maintenance will affect the cost of regression testing.
What are some Testing Constraints?
 Budget and Schedule Constraints
 Lacking or Poorly Written Requirements
 Changes in Technology
 Limited Tester Skills
Life Cycle Testing?
 Life cycle testing involves continuous testing of the
solution even after software plans are complete and the
tested system is implemented
 IT must provide and agree to a strict schedule for
completing various phases of the process for proper life
cycle testing to occur.
Test Matrices
 The test matrix shows the interrelationship
between functional events and tests.
 The completed test matrix defines the
conditions that must be tested during the test
process to verify the proper functioning of the
application system.
Cascading Test Matrices
 In the creation of the test plan, IT people
sometimes lose track of the interrelationship
of functional events.
 The creation of the cascading test matrix
reinforces the interrelationship of functional
events and enables that aspect of systems to
be better tested.
Independent Testing ?
 Where an independent test team exists, they
are usually responsible for system testing, the
oversight of acceptance testing, and
providing an unbiased assessment of the
quality of an application. The team may also
support or participate in other phases of
testing as well as executing special test types
such as performance and load testing.
Tester’s Workbench
 a pictorial representation of how a specific
test task is performed. (Need to understand
work process).
 Process - a set of activities that represent the
way work is performed. The outcome from a
process is usually a product or service.
 Work bench built on:
 1. Objective – States why the process exists, or its purpose
 2. People Skills - The roles, responsibilities, and associated skill
sets needed to execute a process.
 Workbench components –
 Inputs – The entrance criteria or deliverables needed to perform
testing.
 Procedures – Describe how work must be done; how methods,
tools, techniques, and people are applied to perform a process.
 Deliverables – Any product or service produced by a process.
 Standards – Measures used to evaluate products and identify
nonconformance.
 Tools – Aids to performing the process.
Levels of Testing?
 • Verification Testing -Static testing of development interim
deliverables (Examples? Ask the class!)
 • Unit Testing -These tests verify that the system functions
properly; for example, pressing a function key to complete an
action. (Examples? Ask the class!)
 • Integration Testing -The system runs tasks that involve more
than one application or database to verify that it performed the
tasks accurately. (Examples? Ask the class!)
 • System Testing - These tests simulate operation of the entire
system, and verify that it ran correctly. (Examples? Ask the
class!)
 • User Acceptance Testing - This real-world test means the
most to your business; and, unfortunately, there’s no way to
conduct it in isolation. Once your organization staff, customers,
or vendors begin to interact with your system, they’ll verify that it
functions properly for you (Examples? Ask the class!)
Verification versus Validation?
 Verification ensures that the system
(software, hardware, documentation, and
personnel) complies with an organization’s
standards and processes, relying on review
or non-executable methods. (“Did we build
the right system”)
 Validation physically ensures that the system
operates according to plan by executing the
system functions through a series of tests that
can be observed and evaluated.(“Did we build
the system right?”)
Static versus Dynamic Testing
 Static testing is performed using the software
documentation.
 Dynamic testing requires the code to be in an
executable state to perform the tests.
The “V” Concept of Testing
Testing Techniques
 Structural VS Functional Technique
Categories.
 Functional testing ensures that the
requirements are properly satisfied by the
application system.
 Structural testing ensures sufficient testing of
the implementation of a function

You might also like