SlideShare a Scribd company logo
1
Testing Methodologies and
Types
Quality Assurance Department
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
© 2024 Wavenet International (Pvt) Ltd | 2
What is Testing ?
Software testing is a set of activities to discover defects and evaluate the quality of software artifacts. These
artifacts, when being tested, are known as test objects.
A common misconception about testing is that it only consists of executing tests (i.e., running the software and
checking the test results). However, software testing also includes other activities (Test Planning, Control,
Analysis, Design, Implementation, Execution, Evaluation, Reporting and Closure Activities) and must be aligned
with the software development lifecycle
3
Importance of software testing
The importance of software testing is multifaceted and essential for ensuring the quality and reliability of
software systems. Here are some key points highlighting the importance of software testing,
• Risk Mitigation
• Quality Assurance
• Cost-Effectiveness
• Customer Satisfaction
• Compliance and Regulations
• Brand Reputation
• Continuous Improvement
In summary, software testing is crucial for ensuring that software systems are reliable, high-quality, and meet
the needs of users and stakeholders. It is an integral part of the software development lifecycle and contributes
significantly to the success of software projects.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
4
Test Objectives
The typical test objectives are,
• Evaluating work products such as requirements, user stories, designs, and code
• Triggering failures and finding defects
• Ensuring required coverage of a test object
• Reducing the level of risk of inadequate software quality
• Verifying whether specified requirements have been fulfilled
• Verifying that a test object complies with contractual, legal, and regulatory requirements
• Providing information to stakeholders to allow them to make informed decisions
• Building confidence in the quality of the test object
• Validating whether the test object is complete and works as expected by the stakeholders
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
5
Testing and Quality Assurance (QA)
“Testing” and “quality assurance” (QA) interchangeably, testing and QA are not the same. Testing is a form of
quality control (QC).
• QC is a product-oriented, corrective approach that focuses on those activities supporting the achievement of
appropriate levels of quality. Testing is a major form of quality control, while others include formal methods
(model checking and proof of correctness), simulation and prototyping.
• QA is a process-oriented, preventive approach that focuses on the implementation and improvement of
processes. It works on the basis that if a good process is followed correctly, then it will generate a good product.
QA applies to both the development and testing processes and is the responsibility of everyone on a project.
Test results are used by QA and QC. In QC they are used to fix defects, while in QA they provide feedback on how
well the development and test processes are performing.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
6
Testing Principles
1. Testing shows the presence, not the absence of defects.
Testing can show that defects are present in the test object but cannot prove that there are no defects. Testing
reduces the probability of defects remaining undiscovered in the test object, but even if no defects are found,
testing cannot prove test object correctness.
2. Exhaustive testing is impossible.
Testing everything is not feasible except in trivial cases. Rather than attempting to test exhaustively, test techniques,
test case prioritization and risk-based testing, should be used to focus test efforts.
3. Early testing saves time and money.
Defects that are removed early in the process will not cause subsequent defects in derived work products. The cost
of quality will be reduced since fewer failures will occur later in the SDLC. To find defects early, both static testing
and dynamic testing should be started as early as possible.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
7
Testing Principles…
4. Defects cluster together.
A small number of system components usually contain most of the defects discovered or are responsible for most
of the operational failures. This phenomenon is an illustration of the Pareto principle. Predicted defect clusters, and
actual defect clusters observed during testing or in operation, are an important input for risk-based testing.
5. Tests wear out.
If the same tests are repeated many times, they become increasingly ineffective in detecting new defects. To
overcome this effect, existing tests and test data may need to be modified, and new tests may need to be written.
However, in some cases, repeating the same tests can have a beneficial outcome, e.g., in automated regression.
6. Testing is context dependent.
There is no single universally applicable approach to testing. Testing is done differently in different contexts.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
8
Testing Principles…
7. Absence-of-defects fallacy.
It is a fallacy (i.e., a misconception) to expect that software verification will ensure the success of a system.
Thoroughly testing all the specified requirements and fixing all the defects found could still produce a system
that does not fulfill the users’ needs and expectations, that does not help in achieving the customer’s business
goals, and that is inferior compared to other competing systems. In addition to verification, validation should
also be carried out.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
9
Test Activities and Tasks
A test process usually consists of the main groups of activities described below.
Although many of these activities may appear to follow a logical sequence, they
are often implemented iteratively or in parallel. These testing activities usually
need to be tailored to the system and the project
Test planning consists of defining the test objectives and then selecting an
approach that best achieves the objectives within the constraints imposed by the
overall context.
Test monitoring and control Test monitoring involves the ongoing checking of all
test activities and the comparison of actual progress against the plan. Test control
involves taking the actions necessary to meet the objectives of testing.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
10
Test process…
Test analysis includes analyzing the test basis to identify testable features and to define and prioritize associated test
conditions, together with the related risks and risk levels. The test basis and the test objects are also evaluated to
identify defects they may contain and to assess their testability. Test analysis is often supported by the use of test
techniques. Test analysis answers the question “what to test?” in terms of measurable coverage criteria.
Test design includes elaborating the test conditions into test cases and other testware (e.g., test charters). This
activity often involves the identification of coverage items, which serve as a guide to specify test case inputs. Test
techniques can be used to support this activity. Test design also includes defining the test data requirements,
designing the test environment and identifying any other required infrastructure and tools. Test design answers the
question “how to test?”.
Test implementation includes creating or acquiring the testware necessary for test execution (e.g., test data). Test
cases can be organized into test procedures and are often assembled into test suites. Manual and automated test
scripts are created. Test procedures are prioritized and arranged within a test execution schedule for efficient test
execution. The test environment is built and verified to be set up correctly.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
11
Test process…
Test execution includes running the tests in accordance with the test execution schedule (test runs). Test
execution may be manual or automated. Test execution can take many forms, including continuous testing or
pair testing sessions. Actual test results are compared with the expected results. The test results are logged.
Anomalies are analyzed to identify their likely causes. This analysis allows us to report the anomalies based on
the failures observed.
Test completion activities usually occur at project milestones (e.g., release, end of iteration, test level
completion) for any unresolved defects, change requests or product backlog items created. Any testware that
may be useful in the future is identified and archived or handed over to the appropriate teams. The test
environment is shut down to an agreed state. The test activities are analyzed to identify lessons learned and
improvements for future iterations, releases, or projects. A test completion report is created and
communicated to the stakeholders
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
12
Essential Skills and Good Practices in Testing
The following skills are particularly relevant for testers:
• Testing knowledge (to increase effectiveness of testing, e.g., by using test techniques)
• Thoroughness, carefulness, curiosity, attention to details, being methodical (to identify defects, especially
the ones that are difficult to find)
• Good communication skills, active listening, being a team player (to interact effectively with all
stakeholders, to convey information to others, to be understood, and to report and discuss defects)
• Analytical thinking, critical thinking, creativity (to increase effectiveness of testing)
• Technical knowledge (to increase efficiency of testing, e.g., by using appropriate test tools)
• Domain knowledge (to be able to understand and to communicate with end users/business
representatives)
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
13
Testing Methodologies
1. Waterfall Model
2. V-Model
3. Agile Testing
4. DevOps Testing
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
14
Waterfall Model
The Waterfall Model is a sequential software development process, often used in traditional project
management methodologies. It follows a linear and sequential approach, where progress is seen as flowing
steadily downwards (like a waterfall) through several phases such as requirements, design, implementation,
testing, deployment, and maintenance. Each phase must be completed before the next one begins, and there
is typically little room for changes once a phase is finished.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
15
Phases in the Waterfall Model
1. Requirements Analysis: Testing begins with the review and validation of the requirements documentation. Testers
ensure that the requirements are clear, complete, and testable. Test planning and strategy development also occur
in this phase.
2. System Design: Testing focuses on the system design documents to ensure that they accurately represent the
requirements and that the design is feasible and testable. Testers may start preparing test cases based on the
design specifications.
3. Implementation (Coding): Testing in this phase is primarily focused on unit testing, where individual components or
modules are tested in isolation to ensure they function correctly. Developers typically perform unit testing.
4. Integration and Testing: Integration testing verifies that the integrated components work together as expected.
System testing validates the entire system against the requirements. Acceptance testing may also be conducted to
ensure the system meets user expectations.
5. Deployment: After successful testing, the software is deployed to the production environment. However, some
testing may still occur in the production environment to ensure the system operates as expected in the live
environment.
6. Maintenance: Testing in the maintenance phase involves identifying and fixing defects that arise during real-world
use. Regression testing may be performed to ensure that new changes do not introduce new defects.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
16
Waterfall Model Advantages and Disadvantages
Advantages
• Clear Phases: The sequential nature of the
Waterfall Model makes it easy to understand and
manage.
• Emphasis on Documentation: Each phase
requires comprehensive documentation, aiding in
traceability and future maintenance.
• Easy to Manage: Progress can be easily tracked as
each phase has specific deliverables and
milestones.
Disadvantages
• Inflexibility: Changes are difficult to
accommodate once a phase is completed, which
can be problematic if requirements change.
• Late Testing: Testing occurs late in the
development lifecycle, which can lead to higher
costs associated with fixing defects.
• Limited Customer Involvement: Customers may
not see the product until late in the process,
potentially leading to misunderstandings or
mismatches with their expectations.
The Waterfall Model is suitable for projects with well-understood and stable requirements. However, it may not be ideal for projects
that require flexibility or frequent changes.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
17
V-Model
The V-Model is a software development model that extends the waterfall model. It is named for its V-shaped
representation of the development and testing processes. In the V-Model, each development phase has a
corresponding testing phase. The left side of the "V" represents the development phases, while the right side
represents the testing phases. This model emphasizes the importance of testing throughout the entire
software development lifecycle.
Comparison with the Waterfall Model
The V-Model is often seen as an extension of the waterfall model. While the waterfall model follows a linear
and sequential approach, the V-Model emphasizes the relationship between each development phase and its
corresponding testing phase. This means that testing activities are planned and executed in parallel with
development activities, rather than being deferred until after development is complete, as in the traditional
waterfall model.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
18
Phases in the V-Model
In the V-Model, the development and testing phases are aligned in a V-shaped manner, with each development
phase having a corresponding testing phase. Here's a breakdown of the design and testing phases in the V-Model.
1.Design Phases:
1. Requirements Analysis: Gather and analyze project requirements to understand what needs to be
developed.
2. System Design: Create the system architecture and design based on the analyzed requirements.
3. Architectural Design: Define the system's architecture, including major components and their
interactions.
4. Module Design: Create detailed designs of individual modules or components based on the
architectural design.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
19
Phases in the V-Model…
2. Testing Phases:
1. Unit Testing: Test individual modules or components in isolation to ensure they function correctly.
2. Integration Testing: Test the integrated system to ensure that the modules work together as
expected.
3. System Testing: Verify that the entire system meets the specified requirements and works as
intended.
4. User Acceptance Testing (UAT): Validate the system with end-users to ensure it meets their needs
and is ready for deployment.
Each design phase is followed by its corresponding testing phase, forming the left and right sides of the V-
Model. The V-Model emphasizes the importance of testing at each stage of development to catch defects early
and ensure that the final product meets the desired quality standards.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
20
V-Model Advantages and Disadvantages
Advantages
• Early Testing: Testing activities are integrated
throughout the development lifecycle, allowing
for early detection and correction of defects.
• Improved Communication: The V-Model
encourages collaboration between development
and testing teams, leading to better
communication and understanding of
requirements and expectations.
• Clear Traceability: The relationship between
development and testing phases provides clear
traceability between requirements, design,
implementation, and testing activities.
Disadvantages
• Inflexibility: Changes to requirements or design
can be challenging to accommodate once
development has progressed.
• Complexity: The V-Model can be more complex
and time-consuming compared to more iterative
development models.
• Late Feedback: Despite testing throughout the
development lifecycle, feedback on the software's
functionality may be delayed until the later stages
of development.
The V-Model is suitable for projects where requirements are well-understood and stable, and where a structured and systematic
approach to testing is required. However, it may not be suitable for projects that require frequent changes or where requirements
are likely to evolve significantly.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
21
Agile Testing
Agile Testing is a testing approach that aligns with the principles of Agile software development. It emphasizes
iterative and incremental development, customer collaboration, flexibility, and delivering working software in
short iterations known as sprints. Agile Testing is an integral part of the Agile development process and is
designed to adapt to changing requirements and deliver high-quality software in a dynamic environment.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
22
Key Principles of Agile Testing:
1. Continuous Testing: Testing activities are integrated throughout the development lifecycle, with a focus on continuous
feedback and improvement.
2. Collaboration: Agile Testing promotes collaboration between developers, testers, and other stakeholders, fostering a
shared understanding of requirements and objectives.
3. Adaptability: Agile Testing embraces change and is adaptable to evolving requirements, allowing for flexibility and
responsiveness to customer needs.
4. Iterative and Incremental: Testing is performed in short iterations, with each iteration delivering a potentially shippable
product increment.
5. Customer Focus: Agile Testing prioritizes delivering value to the customer, with a focus on meeting user needs and
expectations.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
23
Differences from Traditional Testing Methodologies
• Iterative Approach: Agile Testing is iterative, with testing activities occurring in each iteration, whereas
traditional testing methodologies often have separate testing phases.
• Flexibility: Agile Testing is more flexible and responsive to change compared to traditional methodologies,
which tend to be more rigid and sequential.
• Customer Involvement: Agile Testing encourages close collaboration with customers throughout the
development process, whereas traditional methodologies may have limited customer involvement until
later stages.
• Emphasis on Individuals and Interactions: Agile Testing places a strong emphasis on individuals and
interactions over processes and tools, promoting open communication and collaboration.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
24
Agile Testing Advantages and Disadvantages
Advantages
• Flexibility: Agile Testing allows for flexibility and
responsiveness to changing requirements and
priorities.
• Early and Continuous Feedback: Testing occurs
early and frequently, providing continuous feedback
on the software's functionality and quality.
• Customer Satisfaction: Agile Testing focuses on
delivering value to the customer, leading to
increased customer satisfaction.
• Reduced Risk: By testing continuously and
addressing issues early, Agile Testing helps mitigate
project risks.
Disadvantages
• Resource Intensive: Agile Testing requires close
collaboration and frequent communication, which
can be resource-intensive.
• Documentation Challenges: Agile Testing may
face challenges in documentation and traceability
compared to traditional methodologies.
• Adaptability Requirements: Teams must be
adaptable and open to change, which can be
challenging for some organizations.
Agile Testing is well-suited for projects with rapidly changing requirements, where flexibility and responsiveness are crucial for
success. However, it may not be suitable for projects with highly regulated environments or strict documentation requirements.
© 2024 Wavenet International (Pvt) Ltd | QA | (Internal)
use | Testing Methodologies and Types.|
© 2024 Wavenet International (Pvt) Ltd | 25
DevOps Testing
DevOps Testing is an approach to software testing that is integrated into the DevOps (Development and
Operations) lifecycle. DevOps is a set of practices that combines software development (Dev) and IT operations
(Ops), aiming to shorten the systems development life cycle and provide continuous delivery with high
software quality. DevOps Testing focuses on automating testing processes and integrating testing into the
continuous integration and continuous delivery (CI/CD) pipeline.
© 2024 Wavenet International (Pvt) Ltd | 26
Integration of Testing in the DevOps Lifecycle
1. Continuous Testing: In DevOps, testing is integrated throughout the software development lifecycle, from development
to deployment. This includes unit testing, integration testing, system testing, and acceptance testing, all of which are
automated as much as possible.
2. Automated Testing: DevOps emphasizes the use of automated testing tools and frameworks to enable continuous
testing. This automation helps in achieving rapid feedback on the quality of the software.
3. Collaboration: DevOps encourages collaboration between development, operations, and testing teams, leading to a
shared responsibility for quality and a culture of continuous improvement.
4. Feedback Loop: Testing in DevOps is designed to provide rapid feedback on the quality of the software, enabling quick
identification and resolution of defects.
5. Shift-Left Testing: DevOps promotes the concept of "shifting-left" testing, where testing activities are performed earlier
in the development process to catch defects as soon as possible.
© 2024 Wavenet International (Pvt) Ltd | 27
DevOps Testing Advantages and Challenges
Advantages
• Faster Time to Market: DevOps Testing helps in accelerating the
delivery of software by automating testing processes and
integrating testing into the CI/CD pipeline.
• Improved Quality: Continuous testing in DevOps ensures that
software quality is maintained throughout the development
lifecycle, leading to more reliable and robust applications.
• Increased Collaboration: DevOps Testing encourages
collaboration between development, operations, and testing
teams, fostering a culture of shared responsibility for quality.
• Continuous Feedback: Testing in DevOps provides continuous
feedback on the quality of the software, enabling quick
identification and resolution of issues.
Challenges
• Complexity: Implementing DevOps Testing can be complex,
requiring changes in processes, tools, and organizational
culture.
• Skill Set Requirements: DevOps Testing requires expertise in
both testing and DevOps practices, which may require
additional training and skill development.
• Tool Integration: Integrating testing tools with the rest of the
DevOps toolchain can be challenging, requiring compatibility
and seamless integration.
• Security and Compliance: Ensuring security and compliance
requirements are met in a DevOps environment can be
challenging, especially with rapid changes and deployments.
DevOps Testing is well-suited for organizations looking to improve their software delivery processes by adopting a more agile and
automated approach to testing. However, it requires careful planning, coordination, and a cultural shift towards collaboration and
continuous improvement.
© 2024 Wavenet International (Pvt) Ltd | 28
Test Levels, Test Types and Test Techniques
Test Levels
Test levels are groups of test activities that are organized and managed together. Each test level is an instance
of the test process, performed in relation to software at a given stage of development, from individual
components to complete systems or, where applicable, systems of systems.
Test levels are related to other activities within the SDLC. In sequential SDLC models, the test levels are often
defined such that the exit criteria of one level are part of the entry criteria for the next level. In some iterative
models, this may not apply. Development activities may span through multiple test levels. Test levels may
overlap in time.
Test types are groups of test activities related to specific quality characteristics and most of those test activities
can be performed at every test level.
© 2024 Wavenet International (Pvt) Ltd | 29
Test Levels…
• Component testing (also known as unit testing) focuses on testing components in isolation. It often requires
specific support, such as test harnesses or unit test frameworks. Component testing is normally performed
by developers in their development environments.
• Component integration testing (also known as unit integration testing) focuses on testing the interfaces
and interactions between components. Component integration testing is heavily dependent on the
integration strategy approaches like bottom-up, top-down or big-bang.
• System testing focuses on the overall behavior and capabilities of an entire system or product, often
including functional testing of end-to-end tasks and the non-functional testing of quality characteristics. For
some non-functional quality characteristics, it is preferable to test them on a complete system in a
representative test environment (e.g., usability). Using simulations of sub-systems is also possible. System
testing may be performed by an independent test team and is related to specifications for the system.
© 2024 Wavenet International (Pvt) Ltd | 30
Test Levels…
• System integration testing focuses on testing the interfaces of the system under test and other systems and
external services . System integration testing requires suitable test environments preferably similar to the
operational environment.
• Acceptance testing focuses on validation and on demonstrating readiness for deployment, which means
that the system fulfills the user’s business needs. Ideally, acceptance testing should be performed by the
intended users. The main forms of acceptance testing are user acceptance testing (UAT), operational
acceptance testing, contractual and regulatory acceptance testing, alpha testing and beta testing.
© 2024 Wavenet International (Pvt) Ltd | 31
Test Types
• Functional testing evaluates the functions that a component or system should perform. The functions are
“what” the test object should do. The main objective of functional testing is checking the functional
completeness, functional correctness and functional appropriateness.
• Non-functional testing evaluates attributes other than functional characteristics of a component or system.
Non-functional testing is the testing of “how well the system behaves”. The main objective of nonfunctional
testing is checking the non-functional software quality characteristics. The ISO/IEC 25010 standard provides
the following classification of the non-functional software quality characteristics ( Performance efficiency,
Compatibility, Usability, Reliability, Security, Maintainability, Portability) It is sometimes appropriate for non-
functional testing to start early in the life cycle (e.g., as part of reviews and component testing or system
testing). Many non-functional tests are derived from functional tests as they use the same functional tests,
but check that while performing the function, a non-functional constraint is satisfied (e.g., checking that a
function performs within a specified time, or a function can be ported to a new platform). The late
discovery of non-functional defects can pose a serious threat to the success of a project. Non-functional
testing sometimes needs a very specific test environment, such as a usability lab for usability testing.
© 2024 Wavenet International (Pvt) Ltd | 32
Test Types…
• Black-box testing is specification-based and derives tests from documentation external to the test object.
The main objective of black-box testing is checking the system's behavior against its specifications.
• White-box testing is structure-based and derives tests from the system's implementation or internal
structure (e.g., code, architecture, workflows and data flows). The main objective of white-box testing is to
cover the underlying structure by the tests to the acceptable level.
All the four above mentioned test types can be applied to all test levels, although the focus will be different at
each level. Different test techniques can be used to derive test conditions and test cases for all the mentioned
test types.
© 2024 Wavenet International (Pvt) Ltd | 33
Test Techniques
Black-box test techniques (also known as specification-based techniques) are based on an analysis of the
specified behavior of the test object without reference to its internal structure. Therefore, the test cases are
independent of how the software is implemented. Consequently, if the implementation changes, but the
required behavior stays the same, then the test cases are still useful.
White-box test techniques (also known as structure-based techniques) are based on an analysis of the test
object’s internal structure and processing. As the test cases are dependent on how the software is designed,
they can only be created after the design or implementation of the test object.
Experience-based test techniques effectively use the knowledge and experience of testers for the design and
implementation of test cases. The effectiveness of these techniques depends heavily on the tester’s skills.
Experience-based test techniques can detect defects that may be missed using the blackbox and white-box test
techniques. Hence, experience-based test techniques are complementary to the black-box and white-box test
techniques.
© 2024 Wavenet International (Pvt) Ltd | 34
Black-Box Test Techniques
Commonly used black-box test techniques are:
• Equivalence Partitioning
Equivalence Partitioning (EP) divides data into partitions (known as equivalence partitions) based on the
expectation that all the elements of a given partition are to be processed in the same way by the test
object. The theory behind this technique is that if a test case, that tests one value from an equivalence
partition, detects a defect, this defect should also be detected by test cases that test any other value from
the same partition. Therefore, one test for each partition is sufficient.
• Boundary Value Analysis
Boundary Value Analysis (BVA) is a technique based on exercising the boundaries of equivalence
partitions. Therefore, BVA can only be used for ordered partitions. The minimum and maximum values of
a partition are its boundary values. In the case of BVA, if two elements belong to the same partition, all
elements between them must also belong to that partition.
© 2024 Wavenet International (Pvt) Ltd | 35
Black-Box Test Techniques…
• Decision Table Testing
Decision tables are used for testing the implementation of system requirements that specify how different
combinations of conditions result in different outcomes. Decision tables are an effective way of recording
complex logic, such as business rules.
• State Transition Testing
A state transition diagram models the behavior of a system by showing its possible states and valid state
transitions. A transition is initiated by an event, which may be additionally qualified by a guard condition.
The transitions are assumed to be instantaneous and may sometimes result in the software taking action.
© 2024 Wavenet International (Pvt) Ltd | 36
White-Box Test Techniques
Commonly used white-box test techniques are:
• Statement testing
In statement testing, the coverage items are executable statements. The aim is to design test cases that exercise
statements in the code until an acceptable level of coverage is achieved. Coverage is measured as the number of
statements exercised by the test cases divided by the total number of executable statements in the code and is
expressed as a percentage. When 100% statement coverage is achieved, it ensures that all executable statements in
the code have been exercised at least once. In particular, this means that each statement with a defect will be
executed, which may cause a failure demonstrating the presence of the defect. However, exercising a statement with
a test case will not detect defects in all cases.
• Branch testing
A branch is a transfer of control between two nodes in the control flow graph, which shows the possible
sequences in which source code statements are executed in the test object. Each transfer of control can be
either unconditional (i.e., straight-line code) or conditional (i.e., a decision outcome). In branch testing the
coverage items are branches and the aim is to design test cases to exercise branches in the code until an
acceptable level of coverage is achieved. Coverage is measured as the number of branches exercised by the test
cases divided by the total number of branches and is expressed as a percentage.
© 2024 Wavenet International (Pvt) Ltd | 37
Experience-based Test Techniques
Commonly used experience-based test techniques are:
• Error guessing
Error guessing is a technique used to anticipate the occurrence of errors, defects, and failures, based on
the tester’s knowledge, including:
• How the application has worked in the past
• The types of errors the developers tend to make and the types of defects that result from
these errors
• The types of failures that have occurred in other, similar applications
• Exploratory testing
In exploratory testing, tests are simultaneously designed, executed, and evaluated while the tester learns
about the test object. The testing is used to learn more about the test object, to explore it more deeply
with focused tests, and to create tests for untested areas.
• Checklist-based testing
In checklist-based testing, a tester designs, implements, and executes tests to cover test conditions from a
checklist. Checklists can be built based on experience, knowledge about what is important for the user, or
an understanding of why and how software fails. Checklists should not contain items that can be checked
automatically, items better suited as entry/exit criteria, or items that are too general.
© 2024 Wavenet International (Pvt) Ltd | 38
Key areas you should focus on to build a strong foundation in software
testing and quality assurance practices
1. Understanding of Software Development Life Cycle (SDLC): Gain knowledge of different phases of the
SDLC, including requirements gathering, design, development, testing, deployment, and maintenance.
Understand how QA activities fit into each phase.
2. Fundamentals of Software Testing: Learn the basics of software testing, including its purpose, principles,
and various types of testing (e.g., functional testing, non-functional testing, regression testing).
3. Test Planning and Management: Understand the process of test planning, including test strategy, test
planning, estimation, and resource management. Learn how to create test plans and manage testing
activities effectively.
4. Test Case Design and Execution: Learn techniques for designing test cases, including equivalence
partitioning, boundary value analysis, and decision table testing. Practice writing test cases and executing
them against software applications.
5. Defect Management: Understand the process of defect management, including defect identification,
logging, tracking, prioritization, and resolution. Learn how to use defect tracking tools effectively.
6. Test Automation Basics: Familiarize yourself with the basics of test automation, including its benefits,
common automation tools, and scripting languages (e.g., Selenium, Appium, JUnit).
© 2024 Wavenet International (Pvt) Ltd | 39
Key areas you should focus on to build a strong foundation in software
testing and quality assurance practices…
7. Understanding of Agile and DevOps Practices: Gain knowledge of Agile methodologies (e.g., Scrum,
Kanban) and DevOps practices, including their impact on testing and quality assurance.
8. Communication and Collaboration Skills: Develop effective communication skills to interact with team
members, developers, and other stakeholders. Learn how to collaborate effectively in a team
environment.
9. Critical Thinking and Problem-Solving: Cultivate critical thinking skills to analyze requirements, identify
test scenarios, and troubleshoot issues. Practice problem-solving in the context of software testing
challenges.
10. Attention to Detail and Documentation: Pay attention to detail when creating test cases, documenting
test results, and reporting defects. Understand the importance of clear and concise documentation in QA
processes.
11. Continuous Learning: Stay updated with industry trends, best practices, and emerging technologies in
software testing and quality assurance. Participate in training programs, webinars, and workshops to
enhance your skills.
© 2024 Wavenet International (Pvt) Ltd | 40
QA Department.
Wavenet International (Pvt) Ltd
231, Galle Road, Colombo 04,
Sri Lanka
T : +94 11 255 4494
Web : www.globalwavenet.com

More Related Content

PDF
Chapter 1 - Fundamentals of Testing V4.0
PPTX
Full Certified Tester 4 ISTQB Foundational
PDF
PPTX
Software testing and process
PPTX
Fundamentals_of_Software_testing.pptx
PDF
Introduction-Software-Testing-for Developers.pdf
PPTX
Software testing & Quality Assurance
PPTX
ISTQB - What's testing
Chapter 1 - Fundamentals of Testing V4.0
Full Certified Tester 4 ISTQB Foundational
Software testing and process
Fundamentals_of_Software_testing.pptx
Introduction-Software-Testing-for Developers.pdf
Software testing & Quality Assurance
ISTQB - What's testing

Similar to Testing Methodologies and Types (MCQ 12) (20)

PPT
Chap1 Istqb presentation Foundation level in QA
PPTX
Fundamentals of testing
PPTX
Quality Assurance and Testing services
PPSX
Introduction to Software Testing
PPTX
1651003086422.pptx
PPTX
Fundamentals of testing
PDF
MIT521 software testing (2012) v2
DOC
Ôn tập kiến thức ISTQB
DOC
Question ISTQB foundation 3
PPTX
Introduction to Software Testing - Part 2
PPTX
Introduction to Software Testing Part 2
PPTX
Introduction to Quality Assurance Part 2
PPTX
1 testing fundamentals
PDF
Software testing for project report system.
PDF
Interview questions and answers for quality assurance
PDF
Software testing for project report .pdf
ODP
Testing Software
PPSX
DISE - Software Testing and Quality Management
Chap1 Istqb presentation Foundation level in QA
Fundamentals of testing
Quality Assurance and Testing services
Introduction to Software Testing
1651003086422.pptx
Fundamentals of testing
MIT521 software testing (2012) v2
Ôn tập kiến thức ISTQB
Question ISTQB foundation 3
Introduction to Software Testing - Part 2
Introduction to Software Testing Part 2
Introduction to Quality Assurance Part 2
1 testing fundamentals
Software testing for project report system.
Interview questions and answers for quality assurance
Software testing for project report .pdf
Testing Software
DISE - Software Testing and Quality Management
Ad

Recently uploaded (20)

PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
composite construction of structures.pdf
PPTX
Sustainable Sites - Green Building Construction
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
Construction Project Organization Group 2.pptx
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
DOCX
573137875-Attendance-Management-System-original
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Digital Logic Computer Design lecture notes
PDF
PPT on Performance Review to get promotions
PPTX
Lecture Notes Electrical Wiring System Components
CH1 Production IntroductoryConcepts.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
composite construction of structures.pdf
Sustainable Sites - Green Building Construction
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
bas. eng. economics group 4 presentation 1.pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Construction Project Organization Group 2.pptx
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
573137875-Attendance-Management-System-original
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
R24 SURVEYING LAB MANUAL for civil enggi
Digital Logic Computer Design lecture notes
PPT on Performance Review to get promotions
Lecture Notes Electrical Wiring System Components
Ad

Testing Methodologies and Types (MCQ 12)

  • 1. 1 Testing Methodologies and Types Quality Assurance Department © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 2. © 2024 Wavenet International (Pvt) Ltd | 2 What is Testing ? Software testing is a set of activities to discover defects and evaluate the quality of software artifacts. These artifacts, when being tested, are known as test objects. A common misconception about testing is that it only consists of executing tests (i.e., running the software and checking the test results). However, software testing also includes other activities (Test Planning, Control, Analysis, Design, Implementation, Execution, Evaluation, Reporting and Closure Activities) and must be aligned with the software development lifecycle
  • 3. 3 Importance of software testing The importance of software testing is multifaceted and essential for ensuring the quality and reliability of software systems. Here are some key points highlighting the importance of software testing, • Risk Mitigation • Quality Assurance • Cost-Effectiveness • Customer Satisfaction • Compliance and Regulations • Brand Reputation • Continuous Improvement In summary, software testing is crucial for ensuring that software systems are reliable, high-quality, and meet the needs of users and stakeholders. It is an integral part of the software development lifecycle and contributes significantly to the success of software projects. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 4. 4 Test Objectives The typical test objectives are, • Evaluating work products such as requirements, user stories, designs, and code • Triggering failures and finding defects • Ensuring required coverage of a test object • Reducing the level of risk of inadequate software quality • Verifying whether specified requirements have been fulfilled • Verifying that a test object complies with contractual, legal, and regulatory requirements • Providing information to stakeholders to allow them to make informed decisions • Building confidence in the quality of the test object • Validating whether the test object is complete and works as expected by the stakeholders © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 5. 5 Testing and Quality Assurance (QA) “Testing” and “quality assurance” (QA) interchangeably, testing and QA are not the same. Testing is a form of quality control (QC). • QC is a product-oriented, corrective approach that focuses on those activities supporting the achievement of appropriate levels of quality. Testing is a major form of quality control, while others include formal methods (model checking and proof of correctness), simulation and prototyping. • QA is a process-oriented, preventive approach that focuses on the implementation and improvement of processes. It works on the basis that if a good process is followed correctly, then it will generate a good product. QA applies to both the development and testing processes and is the responsibility of everyone on a project. Test results are used by QA and QC. In QC they are used to fix defects, while in QA they provide feedback on how well the development and test processes are performing. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 6. 6 Testing Principles 1. Testing shows the presence, not the absence of defects. Testing can show that defects are present in the test object but cannot prove that there are no defects. Testing reduces the probability of defects remaining undiscovered in the test object, but even if no defects are found, testing cannot prove test object correctness. 2. Exhaustive testing is impossible. Testing everything is not feasible except in trivial cases. Rather than attempting to test exhaustively, test techniques, test case prioritization and risk-based testing, should be used to focus test efforts. 3. Early testing saves time and money. Defects that are removed early in the process will not cause subsequent defects in derived work products. The cost of quality will be reduced since fewer failures will occur later in the SDLC. To find defects early, both static testing and dynamic testing should be started as early as possible. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 7. 7 Testing Principles… 4. Defects cluster together. A small number of system components usually contain most of the defects discovered or are responsible for most of the operational failures. This phenomenon is an illustration of the Pareto principle. Predicted defect clusters, and actual defect clusters observed during testing or in operation, are an important input for risk-based testing. 5. Tests wear out. If the same tests are repeated many times, they become increasingly ineffective in detecting new defects. To overcome this effect, existing tests and test data may need to be modified, and new tests may need to be written. However, in some cases, repeating the same tests can have a beneficial outcome, e.g., in automated regression. 6. Testing is context dependent. There is no single universally applicable approach to testing. Testing is done differently in different contexts. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 8. 8 Testing Principles… 7. Absence-of-defects fallacy. It is a fallacy (i.e., a misconception) to expect that software verification will ensure the success of a system. Thoroughly testing all the specified requirements and fixing all the defects found could still produce a system that does not fulfill the users’ needs and expectations, that does not help in achieving the customer’s business goals, and that is inferior compared to other competing systems. In addition to verification, validation should also be carried out. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 9. 9 Test Activities and Tasks A test process usually consists of the main groups of activities described below. Although many of these activities may appear to follow a logical sequence, they are often implemented iteratively or in parallel. These testing activities usually need to be tailored to the system and the project Test planning consists of defining the test objectives and then selecting an approach that best achieves the objectives within the constraints imposed by the overall context. Test monitoring and control Test monitoring involves the ongoing checking of all test activities and the comparison of actual progress against the plan. Test control involves taking the actions necessary to meet the objectives of testing. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 10. 10 Test process… Test analysis includes analyzing the test basis to identify testable features and to define and prioritize associated test conditions, together with the related risks and risk levels. The test basis and the test objects are also evaluated to identify defects they may contain and to assess their testability. Test analysis is often supported by the use of test techniques. Test analysis answers the question “what to test?” in terms of measurable coverage criteria. Test design includes elaborating the test conditions into test cases and other testware (e.g., test charters). This activity often involves the identification of coverage items, which serve as a guide to specify test case inputs. Test techniques can be used to support this activity. Test design also includes defining the test data requirements, designing the test environment and identifying any other required infrastructure and tools. Test design answers the question “how to test?”. Test implementation includes creating or acquiring the testware necessary for test execution (e.g., test data). Test cases can be organized into test procedures and are often assembled into test suites. Manual and automated test scripts are created. Test procedures are prioritized and arranged within a test execution schedule for efficient test execution. The test environment is built and verified to be set up correctly. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 11. 11 Test process… Test execution includes running the tests in accordance with the test execution schedule (test runs). Test execution may be manual or automated. Test execution can take many forms, including continuous testing or pair testing sessions. Actual test results are compared with the expected results. The test results are logged. Anomalies are analyzed to identify their likely causes. This analysis allows us to report the anomalies based on the failures observed. Test completion activities usually occur at project milestones (e.g., release, end of iteration, test level completion) for any unresolved defects, change requests or product backlog items created. Any testware that may be useful in the future is identified and archived or handed over to the appropriate teams. The test environment is shut down to an agreed state. The test activities are analyzed to identify lessons learned and improvements for future iterations, releases, or projects. A test completion report is created and communicated to the stakeholders © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 12. 12 Essential Skills and Good Practices in Testing The following skills are particularly relevant for testers: • Testing knowledge (to increase effectiveness of testing, e.g., by using test techniques) • Thoroughness, carefulness, curiosity, attention to details, being methodical (to identify defects, especially the ones that are difficult to find) • Good communication skills, active listening, being a team player (to interact effectively with all stakeholders, to convey information to others, to be understood, and to report and discuss defects) • Analytical thinking, critical thinking, creativity (to increase effectiveness of testing) • Technical knowledge (to increase efficiency of testing, e.g., by using appropriate test tools) • Domain knowledge (to be able to understand and to communicate with end users/business representatives) © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 13. 13 Testing Methodologies 1. Waterfall Model 2. V-Model 3. Agile Testing 4. DevOps Testing © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 14. 14 Waterfall Model The Waterfall Model is a sequential software development process, often used in traditional project management methodologies. It follows a linear and sequential approach, where progress is seen as flowing steadily downwards (like a waterfall) through several phases such as requirements, design, implementation, testing, deployment, and maintenance. Each phase must be completed before the next one begins, and there is typically little room for changes once a phase is finished. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 15. 15 Phases in the Waterfall Model 1. Requirements Analysis: Testing begins with the review and validation of the requirements documentation. Testers ensure that the requirements are clear, complete, and testable. Test planning and strategy development also occur in this phase. 2. System Design: Testing focuses on the system design documents to ensure that they accurately represent the requirements and that the design is feasible and testable. Testers may start preparing test cases based on the design specifications. 3. Implementation (Coding): Testing in this phase is primarily focused on unit testing, where individual components or modules are tested in isolation to ensure they function correctly. Developers typically perform unit testing. 4. Integration and Testing: Integration testing verifies that the integrated components work together as expected. System testing validates the entire system against the requirements. Acceptance testing may also be conducted to ensure the system meets user expectations. 5. Deployment: After successful testing, the software is deployed to the production environment. However, some testing may still occur in the production environment to ensure the system operates as expected in the live environment. 6. Maintenance: Testing in the maintenance phase involves identifying and fixing defects that arise during real-world use. Regression testing may be performed to ensure that new changes do not introduce new defects. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 16. 16 Waterfall Model Advantages and Disadvantages Advantages • Clear Phases: The sequential nature of the Waterfall Model makes it easy to understand and manage. • Emphasis on Documentation: Each phase requires comprehensive documentation, aiding in traceability and future maintenance. • Easy to Manage: Progress can be easily tracked as each phase has specific deliverables and milestones. Disadvantages • Inflexibility: Changes are difficult to accommodate once a phase is completed, which can be problematic if requirements change. • Late Testing: Testing occurs late in the development lifecycle, which can lead to higher costs associated with fixing defects. • Limited Customer Involvement: Customers may not see the product until late in the process, potentially leading to misunderstandings or mismatches with their expectations. The Waterfall Model is suitable for projects with well-understood and stable requirements. However, it may not be ideal for projects that require flexibility or frequent changes. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 17. 17 V-Model The V-Model is a software development model that extends the waterfall model. It is named for its V-shaped representation of the development and testing processes. In the V-Model, each development phase has a corresponding testing phase. The left side of the "V" represents the development phases, while the right side represents the testing phases. This model emphasizes the importance of testing throughout the entire software development lifecycle. Comparison with the Waterfall Model The V-Model is often seen as an extension of the waterfall model. While the waterfall model follows a linear and sequential approach, the V-Model emphasizes the relationship between each development phase and its corresponding testing phase. This means that testing activities are planned and executed in parallel with development activities, rather than being deferred until after development is complete, as in the traditional waterfall model. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 18. 18 Phases in the V-Model In the V-Model, the development and testing phases are aligned in a V-shaped manner, with each development phase having a corresponding testing phase. Here's a breakdown of the design and testing phases in the V-Model. 1.Design Phases: 1. Requirements Analysis: Gather and analyze project requirements to understand what needs to be developed. 2. System Design: Create the system architecture and design based on the analyzed requirements. 3. Architectural Design: Define the system's architecture, including major components and their interactions. 4. Module Design: Create detailed designs of individual modules or components based on the architectural design. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 19. 19 Phases in the V-Model… 2. Testing Phases: 1. Unit Testing: Test individual modules or components in isolation to ensure they function correctly. 2. Integration Testing: Test the integrated system to ensure that the modules work together as expected. 3. System Testing: Verify that the entire system meets the specified requirements and works as intended. 4. User Acceptance Testing (UAT): Validate the system with end-users to ensure it meets their needs and is ready for deployment. Each design phase is followed by its corresponding testing phase, forming the left and right sides of the V- Model. The V-Model emphasizes the importance of testing at each stage of development to catch defects early and ensure that the final product meets the desired quality standards. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 20. 20 V-Model Advantages and Disadvantages Advantages • Early Testing: Testing activities are integrated throughout the development lifecycle, allowing for early detection and correction of defects. • Improved Communication: The V-Model encourages collaboration between development and testing teams, leading to better communication and understanding of requirements and expectations. • Clear Traceability: The relationship between development and testing phases provides clear traceability between requirements, design, implementation, and testing activities. Disadvantages • Inflexibility: Changes to requirements or design can be challenging to accommodate once development has progressed. • Complexity: The V-Model can be more complex and time-consuming compared to more iterative development models. • Late Feedback: Despite testing throughout the development lifecycle, feedback on the software's functionality may be delayed until the later stages of development. The V-Model is suitable for projects where requirements are well-understood and stable, and where a structured and systematic approach to testing is required. However, it may not be suitable for projects that require frequent changes or where requirements are likely to evolve significantly. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 21. 21 Agile Testing Agile Testing is a testing approach that aligns with the principles of Agile software development. It emphasizes iterative and incremental development, customer collaboration, flexibility, and delivering working software in short iterations known as sprints. Agile Testing is an integral part of the Agile development process and is designed to adapt to changing requirements and deliver high-quality software in a dynamic environment. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 22. 22 Key Principles of Agile Testing: 1. Continuous Testing: Testing activities are integrated throughout the development lifecycle, with a focus on continuous feedback and improvement. 2. Collaboration: Agile Testing promotes collaboration between developers, testers, and other stakeholders, fostering a shared understanding of requirements and objectives. 3. Adaptability: Agile Testing embraces change and is adaptable to evolving requirements, allowing for flexibility and responsiveness to customer needs. 4. Iterative and Incremental: Testing is performed in short iterations, with each iteration delivering a potentially shippable product increment. 5. Customer Focus: Agile Testing prioritizes delivering value to the customer, with a focus on meeting user needs and expectations. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 23. 23 Differences from Traditional Testing Methodologies • Iterative Approach: Agile Testing is iterative, with testing activities occurring in each iteration, whereas traditional testing methodologies often have separate testing phases. • Flexibility: Agile Testing is more flexible and responsive to change compared to traditional methodologies, which tend to be more rigid and sequential. • Customer Involvement: Agile Testing encourages close collaboration with customers throughout the development process, whereas traditional methodologies may have limited customer involvement until later stages. • Emphasis on Individuals and Interactions: Agile Testing places a strong emphasis on individuals and interactions over processes and tools, promoting open communication and collaboration. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 24. 24 Agile Testing Advantages and Disadvantages Advantages • Flexibility: Agile Testing allows for flexibility and responsiveness to changing requirements and priorities. • Early and Continuous Feedback: Testing occurs early and frequently, providing continuous feedback on the software's functionality and quality. • Customer Satisfaction: Agile Testing focuses on delivering value to the customer, leading to increased customer satisfaction. • Reduced Risk: By testing continuously and addressing issues early, Agile Testing helps mitigate project risks. Disadvantages • Resource Intensive: Agile Testing requires close collaboration and frequent communication, which can be resource-intensive. • Documentation Challenges: Agile Testing may face challenges in documentation and traceability compared to traditional methodologies. • Adaptability Requirements: Teams must be adaptable and open to change, which can be challenging for some organizations. Agile Testing is well-suited for projects with rapidly changing requirements, where flexibility and responsiveness are crucial for success. However, it may not be suitable for projects with highly regulated environments or strict documentation requirements. © 2024 Wavenet International (Pvt) Ltd | QA | (Internal) use | Testing Methodologies and Types.|
  • 25. © 2024 Wavenet International (Pvt) Ltd | 25 DevOps Testing DevOps Testing is an approach to software testing that is integrated into the DevOps (Development and Operations) lifecycle. DevOps is a set of practices that combines software development (Dev) and IT operations (Ops), aiming to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps Testing focuses on automating testing processes and integrating testing into the continuous integration and continuous delivery (CI/CD) pipeline.
  • 26. © 2024 Wavenet International (Pvt) Ltd | 26 Integration of Testing in the DevOps Lifecycle 1. Continuous Testing: In DevOps, testing is integrated throughout the software development lifecycle, from development to deployment. This includes unit testing, integration testing, system testing, and acceptance testing, all of which are automated as much as possible. 2. Automated Testing: DevOps emphasizes the use of automated testing tools and frameworks to enable continuous testing. This automation helps in achieving rapid feedback on the quality of the software. 3. Collaboration: DevOps encourages collaboration between development, operations, and testing teams, leading to a shared responsibility for quality and a culture of continuous improvement. 4. Feedback Loop: Testing in DevOps is designed to provide rapid feedback on the quality of the software, enabling quick identification and resolution of defects. 5. Shift-Left Testing: DevOps promotes the concept of "shifting-left" testing, where testing activities are performed earlier in the development process to catch defects as soon as possible.
  • 27. © 2024 Wavenet International (Pvt) Ltd | 27 DevOps Testing Advantages and Challenges Advantages • Faster Time to Market: DevOps Testing helps in accelerating the delivery of software by automating testing processes and integrating testing into the CI/CD pipeline. • Improved Quality: Continuous testing in DevOps ensures that software quality is maintained throughout the development lifecycle, leading to more reliable and robust applications. • Increased Collaboration: DevOps Testing encourages collaboration between development, operations, and testing teams, fostering a culture of shared responsibility for quality. • Continuous Feedback: Testing in DevOps provides continuous feedback on the quality of the software, enabling quick identification and resolution of issues. Challenges • Complexity: Implementing DevOps Testing can be complex, requiring changes in processes, tools, and organizational culture. • Skill Set Requirements: DevOps Testing requires expertise in both testing and DevOps practices, which may require additional training and skill development. • Tool Integration: Integrating testing tools with the rest of the DevOps toolchain can be challenging, requiring compatibility and seamless integration. • Security and Compliance: Ensuring security and compliance requirements are met in a DevOps environment can be challenging, especially with rapid changes and deployments. DevOps Testing is well-suited for organizations looking to improve their software delivery processes by adopting a more agile and automated approach to testing. However, it requires careful planning, coordination, and a cultural shift towards collaboration and continuous improvement.
  • 28. © 2024 Wavenet International (Pvt) Ltd | 28 Test Levels, Test Types and Test Techniques Test Levels Test levels are groups of test activities that are organized and managed together. Each test level is an instance of the test process, performed in relation to software at a given stage of development, from individual components to complete systems or, where applicable, systems of systems. Test levels are related to other activities within the SDLC. In sequential SDLC models, the test levels are often defined such that the exit criteria of one level are part of the entry criteria for the next level. In some iterative models, this may not apply. Development activities may span through multiple test levels. Test levels may overlap in time. Test types are groups of test activities related to specific quality characteristics and most of those test activities can be performed at every test level.
  • 29. © 2024 Wavenet International (Pvt) Ltd | 29 Test Levels… • Component testing (also known as unit testing) focuses on testing components in isolation. It often requires specific support, such as test harnesses or unit test frameworks. Component testing is normally performed by developers in their development environments. • Component integration testing (also known as unit integration testing) focuses on testing the interfaces and interactions between components. Component integration testing is heavily dependent on the integration strategy approaches like bottom-up, top-down or big-bang. • System testing focuses on the overall behavior and capabilities of an entire system or product, often including functional testing of end-to-end tasks and the non-functional testing of quality characteristics. For some non-functional quality characteristics, it is preferable to test them on a complete system in a representative test environment (e.g., usability). Using simulations of sub-systems is also possible. System testing may be performed by an independent test team and is related to specifications for the system.
  • 30. © 2024 Wavenet International (Pvt) Ltd | 30 Test Levels… • System integration testing focuses on testing the interfaces of the system under test and other systems and external services . System integration testing requires suitable test environments preferably similar to the operational environment. • Acceptance testing focuses on validation and on demonstrating readiness for deployment, which means that the system fulfills the user’s business needs. Ideally, acceptance testing should be performed by the intended users. The main forms of acceptance testing are user acceptance testing (UAT), operational acceptance testing, contractual and regulatory acceptance testing, alpha testing and beta testing.
  • 31. © 2024 Wavenet International (Pvt) Ltd | 31 Test Types • Functional testing evaluates the functions that a component or system should perform. The functions are “what” the test object should do. The main objective of functional testing is checking the functional completeness, functional correctness and functional appropriateness. • Non-functional testing evaluates attributes other than functional characteristics of a component or system. Non-functional testing is the testing of “how well the system behaves”. The main objective of nonfunctional testing is checking the non-functional software quality characteristics. The ISO/IEC 25010 standard provides the following classification of the non-functional software quality characteristics ( Performance efficiency, Compatibility, Usability, Reliability, Security, Maintainability, Portability) It is sometimes appropriate for non- functional testing to start early in the life cycle (e.g., as part of reviews and component testing or system testing). Many non-functional tests are derived from functional tests as they use the same functional tests, but check that while performing the function, a non-functional constraint is satisfied (e.g., checking that a function performs within a specified time, or a function can be ported to a new platform). The late discovery of non-functional defects can pose a serious threat to the success of a project. Non-functional testing sometimes needs a very specific test environment, such as a usability lab for usability testing.
  • 32. © 2024 Wavenet International (Pvt) Ltd | 32 Test Types… • Black-box testing is specification-based and derives tests from documentation external to the test object. The main objective of black-box testing is checking the system's behavior against its specifications. • White-box testing is structure-based and derives tests from the system's implementation or internal structure (e.g., code, architecture, workflows and data flows). The main objective of white-box testing is to cover the underlying structure by the tests to the acceptable level. All the four above mentioned test types can be applied to all test levels, although the focus will be different at each level. Different test techniques can be used to derive test conditions and test cases for all the mentioned test types.
  • 33. © 2024 Wavenet International (Pvt) Ltd | 33 Test Techniques Black-box test techniques (also known as specification-based techniques) are based on an analysis of the specified behavior of the test object without reference to its internal structure. Therefore, the test cases are independent of how the software is implemented. Consequently, if the implementation changes, but the required behavior stays the same, then the test cases are still useful. White-box test techniques (also known as structure-based techniques) are based on an analysis of the test object’s internal structure and processing. As the test cases are dependent on how the software is designed, they can only be created after the design or implementation of the test object. Experience-based test techniques effectively use the knowledge and experience of testers for the design and implementation of test cases. The effectiveness of these techniques depends heavily on the tester’s skills. Experience-based test techniques can detect defects that may be missed using the blackbox and white-box test techniques. Hence, experience-based test techniques are complementary to the black-box and white-box test techniques.
  • 34. © 2024 Wavenet International (Pvt) Ltd | 34 Black-Box Test Techniques Commonly used black-box test techniques are: • Equivalence Partitioning Equivalence Partitioning (EP) divides data into partitions (known as equivalence partitions) based on the expectation that all the elements of a given partition are to be processed in the same way by the test object. The theory behind this technique is that if a test case, that tests one value from an equivalence partition, detects a defect, this defect should also be detected by test cases that test any other value from the same partition. Therefore, one test for each partition is sufficient. • Boundary Value Analysis Boundary Value Analysis (BVA) is a technique based on exercising the boundaries of equivalence partitions. Therefore, BVA can only be used for ordered partitions. The minimum and maximum values of a partition are its boundary values. In the case of BVA, if two elements belong to the same partition, all elements between them must also belong to that partition.
  • 35. © 2024 Wavenet International (Pvt) Ltd | 35 Black-Box Test Techniques… • Decision Table Testing Decision tables are used for testing the implementation of system requirements that specify how different combinations of conditions result in different outcomes. Decision tables are an effective way of recording complex logic, such as business rules. • State Transition Testing A state transition diagram models the behavior of a system by showing its possible states and valid state transitions. A transition is initiated by an event, which may be additionally qualified by a guard condition. The transitions are assumed to be instantaneous and may sometimes result in the software taking action.
  • 36. © 2024 Wavenet International (Pvt) Ltd | 36 White-Box Test Techniques Commonly used white-box test techniques are: • Statement testing In statement testing, the coverage items are executable statements. The aim is to design test cases that exercise statements in the code until an acceptable level of coverage is achieved. Coverage is measured as the number of statements exercised by the test cases divided by the total number of executable statements in the code and is expressed as a percentage. When 100% statement coverage is achieved, it ensures that all executable statements in the code have been exercised at least once. In particular, this means that each statement with a defect will be executed, which may cause a failure demonstrating the presence of the defect. However, exercising a statement with a test case will not detect defects in all cases. • Branch testing A branch is a transfer of control between two nodes in the control flow graph, which shows the possible sequences in which source code statements are executed in the test object. Each transfer of control can be either unconditional (i.e., straight-line code) or conditional (i.e., a decision outcome). In branch testing the coverage items are branches and the aim is to design test cases to exercise branches in the code until an acceptable level of coverage is achieved. Coverage is measured as the number of branches exercised by the test cases divided by the total number of branches and is expressed as a percentage.
  • 37. © 2024 Wavenet International (Pvt) Ltd | 37 Experience-based Test Techniques Commonly used experience-based test techniques are: • Error guessing Error guessing is a technique used to anticipate the occurrence of errors, defects, and failures, based on the tester’s knowledge, including: • How the application has worked in the past • The types of errors the developers tend to make and the types of defects that result from these errors • The types of failures that have occurred in other, similar applications • Exploratory testing In exploratory testing, tests are simultaneously designed, executed, and evaluated while the tester learns about the test object. The testing is used to learn more about the test object, to explore it more deeply with focused tests, and to create tests for untested areas. • Checklist-based testing In checklist-based testing, a tester designs, implements, and executes tests to cover test conditions from a checklist. Checklists can be built based on experience, knowledge about what is important for the user, or an understanding of why and how software fails. Checklists should not contain items that can be checked automatically, items better suited as entry/exit criteria, or items that are too general.
  • 38. © 2024 Wavenet International (Pvt) Ltd | 38 Key areas you should focus on to build a strong foundation in software testing and quality assurance practices 1. Understanding of Software Development Life Cycle (SDLC): Gain knowledge of different phases of the SDLC, including requirements gathering, design, development, testing, deployment, and maintenance. Understand how QA activities fit into each phase. 2. Fundamentals of Software Testing: Learn the basics of software testing, including its purpose, principles, and various types of testing (e.g., functional testing, non-functional testing, regression testing). 3. Test Planning and Management: Understand the process of test planning, including test strategy, test planning, estimation, and resource management. Learn how to create test plans and manage testing activities effectively. 4. Test Case Design and Execution: Learn techniques for designing test cases, including equivalence partitioning, boundary value analysis, and decision table testing. Practice writing test cases and executing them against software applications. 5. Defect Management: Understand the process of defect management, including defect identification, logging, tracking, prioritization, and resolution. Learn how to use defect tracking tools effectively. 6. Test Automation Basics: Familiarize yourself with the basics of test automation, including its benefits, common automation tools, and scripting languages (e.g., Selenium, Appium, JUnit).
  • 39. © 2024 Wavenet International (Pvt) Ltd | 39 Key areas you should focus on to build a strong foundation in software testing and quality assurance practices… 7. Understanding of Agile and DevOps Practices: Gain knowledge of Agile methodologies (e.g., Scrum, Kanban) and DevOps practices, including their impact on testing and quality assurance. 8. Communication and Collaboration Skills: Develop effective communication skills to interact with team members, developers, and other stakeholders. Learn how to collaborate effectively in a team environment. 9. Critical Thinking and Problem-Solving: Cultivate critical thinking skills to analyze requirements, identify test scenarios, and troubleshoot issues. Practice problem-solving in the context of software testing challenges. 10. Attention to Detail and Documentation: Pay attention to detail when creating test cases, documenting test results, and reporting defects. Understand the importance of clear and concise documentation in QA processes. 11. Continuous Learning: Stay updated with industry trends, best practices, and emerging technologies in software testing and quality assurance. Participate in training programs, webinars, and workshops to enhance your skills.
  • 40. © 2024 Wavenet International (Pvt) Ltd | 40 QA Department. Wavenet International (Pvt) Ltd 231, Galle Road, Colombo 04, Sri Lanka T : +94 11 255 4494 Web : www.globalwavenet.com