Software testing
INTRODUCTION
It is the process used to identify the correctness,
completeness and quality of developed computer
software.
It is the process of executing a program/application
under positive and negative conditions by manual or
automated means. It checks for the :-
 Specification
 Functionality
 Performance
3
Software testing
“ Testing is the process of
executing a program with the
intent of finding errors.”
Glen Myers
Error, Bug, Fault & Failure
Error : It is a human action that produces the
incorrect result that produces a fault.
Bug : The presence of error at the time of execution
of the software.
Fault : State of software caused by an error.
Failure : Deviation of the software from its expected
result. It is an event.
5
Understands the
system
but, will test “gently”
and, is driven by
“delivery”
Must learn about the
system, but, will attempt
to break it and, is driven
by quality
developer independent tester
Who tests the software better??
6
Testability = developing a program be tested easily
 Operability - “The better it works, the more efficiently it can be tested”
 Observability - the results are easy to see, distinct output is generated
for each input, incorrect output is easily identified
 Controllability - processing can be controlled, tests can be automated
& reproduced
 Decomposability - software modules can be tested independently
 Simplicity - no complex architecture and logic
 Stability - few changes are requested during testing
 Understandability - program is easy to understand
7
Test case design
 Test case design is the process of creating a set of conditions
or steps (called test cases) to verify that a piece of software
works correctly.
 Each test case usually includes:
 What you're testing (e.g., a login form)
 The input data (e.g., username = "user", password = "1234")
 The steps to take (e.g., "Click the login button")
 The expected result (e.g., "User successfully logs in")
8
Why is Test Case Design Important?
 It helps ensure:
 The software does what it's supposed to do.
 Errors and bugs are caught early.
 Each part of the software is tested thoroughly (especially
“corners” and “boundaries,”).
• Verification: The software should confirm to its
specification (Are we building the product right?)
• Validation: The software should do what the user really
requires (Are we building the right product?)
Verification vs Validation
Types of Testing
01/08/2025
11
Manual Testing
Errors
Manual Testing
 Manual testing is testing of the software where tests are executed manually by a
QAAnalyst.
 It is performed to discover bugs in software under development.
 In Manual testing, the tester checks all the essential features of the given
application or software.
 In this process, the software testers execute the test cases and generate the test
reports without the help of any automation software testing tools.
 It is a classical/traditional method of all testing types and helps find bugs in
software systems.
 It is generally conducted by an experienced tester to accomplish the software
testing process.
1. Manually Testing Tests From a Human Perspective
Human testers can quickly identify when something looks “off.” Automated
test scripts don’t pick up these visual issues.
2. Investigative Testing Can Only Be Done Manually
Investigative testing gives us the opportunity to answer questions like, “what
happens if I do this?” It enables us to carve our own path throughout the test
with little to no boundaries.
3. Automated Tests Can Contain Errors and Holes
Just like code can have bugs, automated test scripts can also have bugs. This
means that automated testing has the potential to report false positives and
false negatives. By including a human touch throughout the testing process,
these errors are avoided.
Reasons Why Manual Testing Is Still Very
Important
4. Complex Scenarios
Some test cases involve complex scenarios, real-world behaviors, or non-standard
workflows that are difficult to automate effectively.
5. Manual Testing Helps Us Understand the Whole Problem
Over time, automated testing can save time. It is great for getting quick results on
a broad level, but manual testing allows us to understand the problem on a
conceptual and emotional level. It connects us with the end-user and introduces
us to a level of sympathy automated testing doesn’t provide.
6. Cost-Effectiveness for Small Projects:
In small-scale projects, setting up automation might be more time-consuming and
expensive than manual testing.
How to perform Manual Testing
 First, tester examines all documents related to software, to
select testing areas.
 Tester analyses requirement document to cover all
requirements stated by the customer.
 Tester develops the test cases according to the requirement
document.
 All test cases are executed manually by using Black box
testing and white box testing.
 If bugs occurred then the testing team informs to the
development team.
 Development team fixes bugs and handed software to the
testing team for retesting.
Advantages of Manual Testing
 It does not require programming knowledge while
using the Black box method.
 It is used to test dynamically changing GUI designs.
 Tester interacts with software as a real user so that they
are able to discover usability and user interface issues.
 It ensures that the software is a hundred percent bug-
free.
 It is cost effective.
 Easy to learn for new testers.
Disadvantages of Manual Testing
 It requires a large number of human resources.
 It is very time-consuming.
 Tester develops test cases based on their skills and experience.
There is no evidence that they have covered all functions or
not.
 Test cases cannot be used again. Need to develop separate test
cases for each new software.
 It does not provide testing on all aspects of testing.
 Since two teams work together, sometimes it is difficult to
understand each other's motives, it can mislead the process.
Types of Manual Testing/ Testing Methodologies
 White Box Testing
 Black Box Testing
 Gray Box Testing
White box testing
 Knowledge of the internal program design
and code required.
 Tests are based on coverage of code
statements, branches, paths, conditions.
Black box testing
 No knowledge of internal program design or code
required.
 Tests are based on requirements and functionality.
Testing Levels
 Unit testing
 Integration testing
 System testing
21
Logical Organization of Testing
Unit
test
Unit
test
Unit
test
Integration
test
Component
code
Component
code
Component
code
Tested
component
Integrated
modules
Function
test
Quality
test
Acceptance
test
Installation
test
System
test
System in
use
Ensure that each
component works as
specified
Ensures that all
components work
together
Verifies that functional
requirements are satisfied
Verifies non-
functional
requirements
Customer
verifies all
requirements
Testing in user
environment
( Not necessarily how it’s actually done! )
UNIT TESTING
Tests each module individually.
Follows a white box testing (Logic of the
program).
Done by developers.
INTEGRATION TESTING
Once all the modules have been unit tested, integration
testing is performed.
It is systematic testing.
Produce tests to identify errors associated with
interfacing.
Types:
Big Bang Integration testing
Top Down Integration testing
Bottom Up Integration testing
Mixed Integration testing
SYSTEM TESTING
 The system as a whole is tested to uncover
requirement errors.
 Verifies that all system elements work properly
and that overall system function and performance
has been achieved.
Types:
Alpha Testing
Beta Testing
Acceptance Testing
Performance Testing
Alpha Testing
It is carried out by the test team within the developing organization .
Beta Testing
It is performed by a selected group of friendly customers.
Acceptance Testing
It is performed by the customer to determine whether to accept or reject the delivery of the
system.
Performance Testing
It is carried out to check whether the system meets the nonfunctional requirements
identified in the SRS document.
JIRA
 The most regularly used bug tracking tool is JIRA, which is an open-
source tool.
 It is used for bug tracking, project management, and issue tracking. In this
tool, we can easily track all kinds of bugs or defects related to the software
and produced by the test engineers.
Features of JIRA
• It is a time-saving tool.
• Jira is used to track the defects and issues.
• It is used to establish the documentation tasks.
• Jira is a very useful tool in tracking the improvement of our
documentation.
Bugzilla
 Another bug tracking tool used in manual testing is Bugzilla. It is most widely used
by many organizations to track the various bugs of the application. Bugzilla is an
open-source tool that helps the customer and the client to keep track of the defects.
Bugzilla is also considered a test management tool because in this, we can easily
link other test case management tools such as ALM, Quality Centre, etc.
 Features of Bugzilla
 Bugzilla has some additional features which help us to report the bug easily:
• It supports various operating systems such as Windows, Linux, and Mac.
• With the help of Bugzilla, we can list a bug in several formats.
• User preferences can measure email notification.
• Bugzilla has advanced searching capabilities.
01/08/2025
28
WHAT IS AUTOMATION TESTING?
Automation testing, which is used some specific tools to execute the test scripts without any human
interference.
It is the most acceptable way to enhance the efficiency, productivity, and test coverage of Software testing.
With the help of an automation testing tool, we can easily approach the test data, handle the test
implementation, and compares the actual output against the expected outcome.
In automation testing, the test automation engineer will write the test script or use the automation testing
tools to execute the application. On the other hand, in manual testing, the test engineer will write the test
cases and implement the software on the basis of written test cases. In test automation, the test
engineer can execute repetitive tasks and other related tasks. In manual testing, it is a tedious/boaring
process to implement the repetitive take again and again. The automation testing process is a time-saving
process as it spends less time in exploratory testing and more time in keeping the test scripts whereas
enhancing the complete test coverage.
Automation Testing.
• In software testing, automation testing is required to test the application
because it offers us a better application with less effort and time.
• Some organizations still perform only manual testing to test the
application as those companies are not fully aware of the automation
testing process.
• But now, they are aware of automated testing and executing the test
automation procedure in their application development process.
• To implement the automation testing, we required pretty a considerable
investment of resources and money.
Why do we need to perform automation testing?
1. Reusability
We can re-use the test scripts in automation testing, and we don't need to write the new test scripts again and
again. And, we can also re-create the steps which are detailed as the earlier ones.
2. Consistency
As compared to manual testing, automation testing is more consistent and way faster than executing the regular
dull tests that cannot be missed but may cause faults when tested manually.
3. Running Tests 24/7
In automation testing, we can start the testing process from anywhere in the world and anytime we want to.
And even we can do that remotely if we don't have many approaches or the option to purchase them.
4. Early Bug Detection
We can easily detect the critical bugs in the software development process's initial phases by executing
automation testing. It also helps us spend fewer working hours to fix these problems and reduce costs
5. Less Human Resources
To implement the automation test script, we need a test automation engineer who can write the test scripts to
automate our tests, rather than having several people who are repeatedly performing the tedious manual tests.
Why do we need to perform automation testing?
1. GUI Testing
In this approach, we can implement that software or an application, which contains GUIs.
So, that the automation test engineers can record user actions and evaluate them many
times.
We know that the Test cases can be written in several programming languages like JAVA
, C#, Python, etc.
2. Code-Driven
The code-driven technique is the subsequent methodology used in automation testing. In
this method, the test engineer will mainly concentrate on test case execution in order to
identify whether the several parts of code are performing according to the given
requirement or not.
Hence, it is very a commonly used method in agile software development.
3. Test Automation Framework
Another approach in automation testing is test automation framework. The test
automation framework is a set of rules used to generate valuable results of the automated
testing activity. Similarly, it brings together test data sources, function libraries, object
details, and other reusable modules.
let's understand the different approaches of automation testing one by one
Introduction to Software Testing Techniques
Automation Testing Tools
Automation testing tools can describe in two categories, which are as follows:
1. Functional Testing Tools
2. Non-Functional Testing Tools
The life cycle of automation testing is a systematic approach to organize and execute testing activities
in a manner that provides maximum test coverage with limited resources. The structure of the test
involves a multi-step process that supports the required, detailed and inter-related activities to perform
the task.
Review
&
Assess
ment
Test
Case
Executi
on
Test
Planning
&
Develop
ment
Scope
Introducti
on
Test Tool
Selection
Decision to
Automate
Test
The life cycle of Automation Testing
Decision to Automation Testing
It is the first phase of Automation Test Life-cycle Methodology (ATLM). At this phase, the
main focus of the testing team is to manage expectations from the test and find out the
potential benefits if applying the automated testing correctly.
On adopting an automated testing suit, organizations have to face many issues, some are
listed below:
• Testing tool experts are required for automation testing, so the first issue, to appoint a
testing equipment specialist.
• The second issue is, choose the exact tool for the testing of a particular function.
• The issue of design and development standards in the implementation of an automated
testing process.
• Analysis of various automated testing tools to choose the best tool for automation testing.
• The issue of cost and time occurs as the consumption of money and time is high in the
beginning of the testing.
Decision to Automation Testing
Test Tool Selection
Test Tool Selection represents the second phase of the Automation Test Life-cycle
Methodology (ATLM). This phase guides the tester in the evaluation and selection
of the testing tool.
Since the testing tool supports almost all testing requirements, the tester still
needs to review the system engineering environment and other organizational
needs and then make a list of evaluation parameters of the tools. Test engineers
evaluate the equipment based on the provided sample criteria.
Scope Introduction
This phase represents the third phase of Automation Test Life-cycle Methodology
(ATLM). The scope of automation includes the testing area of the application. The
determination of scope is based on the following points:
• Common functionalities of the software application that are held by every software
application.
• Automation test sets the reusable range of business components.
• Automation Testing decides the extent of reusability of the business components.
• An application should have business-specific features and must be technically
feasible.
• Automation testing provides the repetition of test cases in the case of cross-browser
testing.
This phase ensures the overall testing strategy that should be well managed and
modified if required. In order to ensure the availability of skills, testing skills of a
particular member and whole team are analyzed against the required specific skills
for a particular software application.
Test Planning and Development
Test planning and development is the fourth and most important phase of Automation Test
Life -cycle Methodology (ATLM) because all the testing strategies are defined here.
Planning of long -lead test activities, the creation of standards and guidelines, an
arrangement of the required combination of hardware, software and network to create a
test environment, defect tracking procedure, guidelines to control test configuration and
environment all are identified in this phase.
Tester determines estimated effort and cost for the entire project.
Test strategy and effort estimation documents are the deliverables provided by this phase.
Test case execution can be started after the successful completion of test planning.
Test Case Execution
Test case Execution is the sixth phase of Automation Test Life -cycle Methodology (ATLM).
It takes place after the successful completion of test planning.
At this stage, the testing team defines test design and development. Now, test cases can
be executed under product testing.
In this phase, the testing team starts case development and execution activity by using
automated tools.
The prepared test cases are reviewed by peer members of the testing team or quality
assurance leaders.
During the execution of test procedures, the testing team directed to comply with the
execution schedule. Execution phase implements the strategies such as integration,
acceptance and unit testing that have defined in the test plan previously.
Review and Assessment
Review and assessment is the sixth and final stage of the automated testing life cycle but
the activities of this phase are conducted throughout the whole life cycle to maintain
continuous quality improvement. The improvement process is done via the evaluation of
matrices, review and assessment of the activities.
During the review, the examiner concentrates whether the particular metric satisfies the
acceptance criteria or not, if yes, then it is ready to use in software production. It is
comprehensive as test cases cover each feature of the application.
The test team performs its own survey to inquire about the potential value of the process;
if the potential benefit is less than sufficient, the testing team can change the testing tool.
The team also provides a sample survey form to ask for feedback from the end user about
the attributes and management of the software product.
Advantages of Automation Testing
o Automation testing takes less time than manual testing.
o A tester can test the response of the software if the execution of the same operation is
repeated several times.
o Automation Testing provides re-usability of test cases on testing of different versions of
the same software.
o Automation testing is reliable as it eliminates hidden errors by executing test cases again
in the same way.
o Automation Testing is comprehensive as test cases cover each and every feature of the
application.
o It does not require many human resources, instead of writing test cases and testing
them manually, they need an automation testing engineer to run them.
o The cost of automation testing is less than manual testing because it requires a few
human resources.
Disadvantages of Automation Testing
o Automation Testing requires high-level skilled testers.
o It requires high-quality testing tools.
o When it encounters an unsuccessful test case, the analysis of the whole event is
complicated.
o Test maintenance is expensive because high fee license testing equipment is necessary.
o Debugging is mandatory if a less effective error has not been solved, it can lead to fatal
results.

More Related Content

PDF
Testing Slides 1 (Testing Intro+Static Testing).pdf
PPTX
Manual Testing Lifecycle – A Practical Guide for Beginners in Software QA.pptx
PPTX
Software testing
PDF
Manual Testing: Ensuring Software Quality Through Human Insight
PDF
A Comparative Guide to Automation and Manual Testing.pdf
PPTX
Intro to Manual Testing
PPTX
UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4
PPTX
Manual Testing Course in Hyderabad .
Testing Slides 1 (Testing Intro+Static Testing).pdf
Manual Testing Lifecycle – A Practical Guide for Beginners in Software QA.pptx
Software testing
Manual Testing: Ensuring Software Quality Through Human Insight
A Comparative Guide to Automation and Manual Testing.pdf
Intro to Manual Testing
UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4 UNIt-4
Manual Testing Course in Hyderabad .

Similar to Introduction to Software Testing Techniques (20)

PPT
Software Engineering (Testing Overview)
PPTX
www.tutorialsbook.com presents Manual testing
PDF
Manual Testing Course in Hyderabad .
PPTX
Manual Testing Course in madhapur, Hyderabad
PDF
Manual Testing Course in madhapur,Hyderabad
PDF
Automated vs.pdf
PDF
Best software testing course
PPTX
Software testing
DOC
Testing
PPT
Manual testing - Introduction to Manual Software testing
PPTX
An introduction to Software Testing and Test Management
PPT
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
PPT
Automated testing vs manual testing
PDF
Manual Testing Course In Hyderabad|training
PDF
MIT521 software testing (2012) v2
PPTX
Software testing
PPTX
Software testing
PPSX
Introduction to software testing
PDF
Breaking Down the Basics: An Introductory Guide to Software Testing
PPT
Automated Testing v s Manual Testing.ppt
Software Engineering (Testing Overview)
www.tutorialsbook.com presents Manual testing
Manual Testing Course in Hyderabad .
Manual Testing Course in madhapur, Hyderabad
Manual Testing Course in madhapur,Hyderabad
Automated vs.pdf
Best software testing course
Software testing
Testing
Manual testing - Introduction to Manual Software testing
An introduction to Software Testing and Test Management
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Automated testing vs manual testing
Manual Testing Course In Hyderabad|training
MIT521 software testing (2012) v2
Software testing
Software testing
Introduction to software testing
Breaking Down the Basics: An Introductory Guide to Software Testing
Automated Testing v s Manual Testing.ppt
Ad

Recently uploaded (20)

PDF
M.Tech in Aerospace Engineering | BIT Mesra
PDF
Fun with Grammar (Communicative Activities for the Azar Grammar Series)
PDF
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2015).pdf
PPTX
Climate Change and Its Global Impact.pptx
PPTX
Diploma pharmaceutics notes..helps diploma students
PDF
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
PDF
Disorder of Endocrine system (1).pdfyyhyyyy
PPTX
UNIT_2-__LIPIDS[1].pptx.................
PDF
anganwadi services for the b.sc nursing and GNM
PPTX
PLASMA AND ITS CONSTITUENTS 123.pptx
PDF
Solved Past paper of Pediatric Health Nursing PHN BS Nursing 5th Semester
PDF
Everyday Spelling and Grammar by Kathi Wyldeck
PDF
Lecture on Viruses: Structure, Classification, Replication, Effects on Cells,...
PDF
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
PDF
faiz-khans about Radiotherapy Physics-02.pdf
PPTX
Macbeth play - analysis .pptx english lit
PDF
African Communication Research: A review
PDF
Health aspects of bilberry: A review on its general benefits
PDF
Laparoscopic Colorectal Surgery at WLH Hospital
M.Tech in Aerospace Engineering | BIT Mesra
Fun with Grammar (Communicative Activities for the Azar Grammar Series)
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2015).pdf
Climate Change and Its Global Impact.pptx
Diploma pharmaceutics notes..helps diploma students
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
Disorder of Endocrine system (1).pdfyyhyyyy
UNIT_2-__LIPIDS[1].pptx.................
anganwadi services for the b.sc nursing and GNM
PLASMA AND ITS CONSTITUENTS 123.pptx
Solved Past paper of Pediatric Health Nursing PHN BS Nursing 5th Semester
Everyday Spelling and Grammar by Kathi Wyldeck
Lecture on Viruses: Structure, Classification, Replication, Effects on Cells,...
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
faiz-khans about Radiotherapy Physics-02.pdf
Macbeth play - analysis .pptx english lit
African Communication Research: A review
Health aspects of bilberry: A review on its general benefits
Laparoscopic Colorectal Surgery at WLH Hospital
Ad

Introduction to Software Testing Techniques

  • 2. INTRODUCTION It is the process used to identify the correctness, completeness and quality of developed computer software. It is the process of executing a program/application under positive and negative conditions by manual or automated means. It checks for the :-  Specification  Functionality  Performance
  • 3. 3 Software testing “ Testing is the process of executing a program with the intent of finding errors.” Glen Myers
  • 4. Error, Bug, Fault & Failure Error : It is a human action that produces the incorrect result that produces a fault. Bug : The presence of error at the time of execution of the software. Fault : State of software caused by an error. Failure : Deviation of the software from its expected result. It is an event.
  • 5. 5 Understands the system but, will test “gently” and, is driven by “delivery” Must learn about the system, but, will attempt to break it and, is driven by quality developer independent tester Who tests the software better??
  • 6. 6 Testability = developing a program be tested easily  Operability - “The better it works, the more efficiently it can be tested”  Observability - the results are easy to see, distinct output is generated for each input, incorrect output is easily identified  Controllability - processing can be controlled, tests can be automated & reproduced  Decomposability - software modules can be tested independently  Simplicity - no complex architecture and logic  Stability - few changes are requested during testing  Understandability - program is easy to understand
  • 7. 7 Test case design  Test case design is the process of creating a set of conditions or steps (called test cases) to verify that a piece of software works correctly.  Each test case usually includes:  What you're testing (e.g., a login form)  The input data (e.g., username = "user", password = "1234")  The steps to take (e.g., "Click the login button")  The expected result (e.g., "User successfully logs in")
  • 8. 8 Why is Test Case Design Important?  It helps ensure:  The software does what it's supposed to do.  Errors and bugs are caught early.  Each part of the software is tested thoroughly (especially “corners” and “boundaries,”).
  • 9. • Verification: The software should confirm to its specification (Are we building the product right?) • Validation: The software should do what the user really requires (Are we building the right product?) Verification vs Validation
  • 12. Manual Testing  Manual testing is testing of the software where tests are executed manually by a QAAnalyst.  It is performed to discover bugs in software under development.  In Manual testing, the tester checks all the essential features of the given application or software.  In this process, the software testers execute the test cases and generate the test reports without the help of any automation software testing tools.  It is a classical/traditional method of all testing types and helps find bugs in software systems.  It is generally conducted by an experienced tester to accomplish the software testing process.
  • 13. 1. Manually Testing Tests From a Human Perspective Human testers can quickly identify when something looks “off.” Automated test scripts don’t pick up these visual issues. 2. Investigative Testing Can Only Be Done Manually Investigative testing gives us the opportunity to answer questions like, “what happens if I do this?” It enables us to carve our own path throughout the test with little to no boundaries. 3. Automated Tests Can Contain Errors and Holes Just like code can have bugs, automated test scripts can also have bugs. This means that automated testing has the potential to report false positives and false negatives. By including a human touch throughout the testing process, these errors are avoided. Reasons Why Manual Testing Is Still Very Important
  • 14. 4. Complex Scenarios Some test cases involve complex scenarios, real-world behaviors, or non-standard workflows that are difficult to automate effectively. 5. Manual Testing Helps Us Understand the Whole Problem Over time, automated testing can save time. It is great for getting quick results on a broad level, but manual testing allows us to understand the problem on a conceptual and emotional level. It connects us with the end-user and introduces us to a level of sympathy automated testing doesn’t provide. 6. Cost-Effectiveness for Small Projects: In small-scale projects, setting up automation might be more time-consuming and expensive than manual testing.
  • 15. How to perform Manual Testing  First, tester examines all documents related to software, to select testing areas.  Tester analyses requirement document to cover all requirements stated by the customer.  Tester develops the test cases according to the requirement document.  All test cases are executed manually by using Black box testing and white box testing.  If bugs occurred then the testing team informs to the development team.  Development team fixes bugs and handed software to the testing team for retesting.
  • 16. Advantages of Manual Testing  It does not require programming knowledge while using the Black box method.  It is used to test dynamically changing GUI designs.  Tester interacts with software as a real user so that they are able to discover usability and user interface issues.  It ensures that the software is a hundred percent bug- free.  It is cost effective.  Easy to learn for new testers.
  • 17. Disadvantages of Manual Testing  It requires a large number of human resources.  It is very time-consuming.  Tester develops test cases based on their skills and experience. There is no evidence that they have covered all functions or not.  Test cases cannot be used again. Need to develop separate test cases for each new software.  It does not provide testing on all aspects of testing.  Since two teams work together, sometimes it is difficult to understand each other's motives, it can mislead the process.
  • 18. Types of Manual Testing/ Testing Methodologies  White Box Testing  Black Box Testing  Gray Box Testing
  • 19. White box testing  Knowledge of the internal program design and code required.  Tests are based on coverage of code statements, branches, paths, conditions. Black box testing  No knowledge of internal program design or code required.  Tests are based on requirements and functionality.
  • 20. Testing Levels  Unit testing  Integration testing  System testing
  • 21. 21 Logical Organization of Testing Unit test Unit test Unit test Integration test Component code Component code Component code Tested component Integrated modules Function test Quality test Acceptance test Installation test System test System in use Ensure that each component works as specified Ensures that all components work together Verifies that functional requirements are satisfied Verifies non- functional requirements Customer verifies all requirements Testing in user environment ( Not necessarily how it’s actually done! )
  • 22. UNIT TESTING Tests each module individually. Follows a white box testing (Logic of the program). Done by developers.
  • 23. INTEGRATION TESTING Once all the modules have been unit tested, integration testing is performed. It is systematic testing. Produce tests to identify errors associated with interfacing. Types: Big Bang Integration testing Top Down Integration testing Bottom Up Integration testing Mixed Integration testing
  • 24. SYSTEM TESTING  The system as a whole is tested to uncover requirement errors.  Verifies that all system elements work properly and that overall system function and performance has been achieved. Types: Alpha Testing Beta Testing Acceptance Testing Performance Testing
  • 25. Alpha Testing It is carried out by the test team within the developing organization . Beta Testing It is performed by a selected group of friendly customers. Acceptance Testing It is performed by the customer to determine whether to accept or reject the delivery of the system. Performance Testing It is carried out to check whether the system meets the nonfunctional requirements identified in the SRS document.
  • 26. JIRA  The most regularly used bug tracking tool is JIRA, which is an open- source tool.  It is used for bug tracking, project management, and issue tracking. In this tool, we can easily track all kinds of bugs or defects related to the software and produced by the test engineers. Features of JIRA • It is a time-saving tool. • Jira is used to track the defects and issues. • It is used to establish the documentation tasks. • Jira is a very useful tool in tracking the improvement of our documentation.
  • 27. Bugzilla  Another bug tracking tool used in manual testing is Bugzilla. It is most widely used by many organizations to track the various bugs of the application. Bugzilla is an open-source tool that helps the customer and the client to keep track of the defects. Bugzilla is also considered a test management tool because in this, we can easily link other test case management tools such as ALM, Quality Centre, etc.  Features of Bugzilla  Bugzilla has some additional features which help us to report the bug easily: • It supports various operating systems such as Windows, Linux, and Mac. • With the help of Bugzilla, we can list a bug in several formats. • User preferences can measure email notification. • Bugzilla has advanced searching capabilities.
  • 29. Automation testing, which is used some specific tools to execute the test scripts without any human interference. It is the most acceptable way to enhance the efficiency, productivity, and test coverage of Software testing. With the help of an automation testing tool, we can easily approach the test data, handle the test implementation, and compares the actual output against the expected outcome. In automation testing, the test automation engineer will write the test script or use the automation testing tools to execute the application. On the other hand, in manual testing, the test engineer will write the test cases and implement the software on the basis of written test cases. In test automation, the test engineer can execute repetitive tasks and other related tasks. In manual testing, it is a tedious/boaring process to implement the repetitive take again and again. The automation testing process is a time-saving process as it spends less time in exploratory testing and more time in keeping the test scripts whereas enhancing the complete test coverage. Automation Testing.
  • 30. • In software testing, automation testing is required to test the application because it offers us a better application with less effort and time. • Some organizations still perform only manual testing to test the application as those companies are not fully aware of the automation testing process. • But now, they are aware of automated testing and executing the test automation procedure in their application development process. • To implement the automation testing, we required pretty a considerable investment of resources and money. Why do we need to perform automation testing?
  • 31. 1. Reusability We can re-use the test scripts in automation testing, and we don't need to write the new test scripts again and again. And, we can also re-create the steps which are detailed as the earlier ones. 2. Consistency As compared to manual testing, automation testing is more consistent and way faster than executing the regular dull tests that cannot be missed but may cause faults when tested manually. 3. Running Tests 24/7 In automation testing, we can start the testing process from anywhere in the world and anytime we want to. And even we can do that remotely if we don't have many approaches or the option to purchase them. 4. Early Bug Detection We can easily detect the critical bugs in the software development process's initial phases by executing automation testing. It also helps us spend fewer working hours to fix these problems and reduce costs 5. Less Human Resources To implement the automation test script, we need a test automation engineer who can write the test scripts to automate our tests, rather than having several people who are repeatedly performing the tedious manual tests. Why do we need to perform automation testing?
  • 32. 1. GUI Testing In this approach, we can implement that software or an application, which contains GUIs. So, that the automation test engineers can record user actions and evaluate them many times. We know that the Test cases can be written in several programming languages like JAVA , C#, Python, etc. 2. Code-Driven The code-driven technique is the subsequent methodology used in automation testing. In this method, the test engineer will mainly concentrate on test case execution in order to identify whether the several parts of code are performing according to the given requirement or not. Hence, it is very a commonly used method in agile software development. 3. Test Automation Framework Another approach in automation testing is test automation framework. The test automation framework is a set of rules used to generate valuable results of the automated testing activity. Similarly, it brings together test data sources, function libraries, object details, and other reusable modules. let's understand the different approaches of automation testing one by one
  • 34. Automation Testing Tools Automation testing tools can describe in two categories, which are as follows: 1. Functional Testing Tools 2. Non-Functional Testing Tools
  • 35. The life cycle of automation testing is a systematic approach to organize and execute testing activities in a manner that provides maximum test coverage with limited resources. The structure of the test involves a multi-step process that supports the required, detailed and inter-related activities to perform the task. Review & Assess ment Test Case Executi on Test Planning & Develop ment Scope Introducti on Test Tool Selection Decision to Automate Test The life cycle of Automation Testing
  • 36. Decision to Automation Testing It is the first phase of Automation Test Life-cycle Methodology (ATLM). At this phase, the main focus of the testing team is to manage expectations from the test and find out the potential benefits if applying the automated testing correctly. On adopting an automated testing suit, organizations have to face many issues, some are listed below: • Testing tool experts are required for automation testing, so the first issue, to appoint a testing equipment specialist. • The second issue is, choose the exact tool for the testing of a particular function. • The issue of design and development standards in the implementation of an automated testing process. • Analysis of various automated testing tools to choose the best tool for automation testing. • The issue of cost and time occurs as the consumption of money and time is high in the beginning of the testing. Decision to Automation Testing
  • 37. Test Tool Selection Test Tool Selection represents the second phase of the Automation Test Life-cycle Methodology (ATLM). This phase guides the tester in the evaluation and selection of the testing tool. Since the testing tool supports almost all testing requirements, the tester still needs to review the system engineering environment and other organizational needs and then make a list of evaluation parameters of the tools. Test engineers evaluate the equipment based on the provided sample criteria.
  • 38. Scope Introduction This phase represents the third phase of Automation Test Life-cycle Methodology (ATLM). The scope of automation includes the testing area of the application. The determination of scope is based on the following points: • Common functionalities of the software application that are held by every software application. • Automation test sets the reusable range of business components. • Automation Testing decides the extent of reusability of the business components. • An application should have business-specific features and must be technically feasible. • Automation testing provides the repetition of test cases in the case of cross-browser testing. This phase ensures the overall testing strategy that should be well managed and modified if required. In order to ensure the availability of skills, testing skills of a particular member and whole team are analyzed against the required specific skills for a particular software application.
  • 39. Test Planning and Development Test planning and development is the fourth and most important phase of Automation Test Life -cycle Methodology (ATLM) because all the testing strategies are defined here. Planning of long -lead test activities, the creation of standards and guidelines, an arrangement of the required combination of hardware, software and network to create a test environment, defect tracking procedure, guidelines to control test configuration and environment all are identified in this phase. Tester determines estimated effort and cost for the entire project. Test strategy and effort estimation documents are the deliverables provided by this phase. Test case execution can be started after the successful completion of test planning.
  • 40. Test Case Execution Test case Execution is the sixth phase of Automation Test Life -cycle Methodology (ATLM). It takes place after the successful completion of test planning. At this stage, the testing team defines test design and development. Now, test cases can be executed under product testing. In this phase, the testing team starts case development and execution activity by using automated tools. The prepared test cases are reviewed by peer members of the testing team or quality assurance leaders. During the execution of test procedures, the testing team directed to comply with the execution schedule. Execution phase implements the strategies such as integration, acceptance and unit testing that have defined in the test plan previously.
  • 41. Review and Assessment Review and assessment is the sixth and final stage of the automated testing life cycle but the activities of this phase are conducted throughout the whole life cycle to maintain continuous quality improvement. The improvement process is done via the evaluation of matrices, review and assessment of the activities. During the review, the examiner concentrates whether the particular metric satisfies the acceptance criteria or not, if yes, then it is ready to use in software production. It is comprehensive as test cases cover each feature of the application. The test team performs its own survey to inquire about the potential value of the process; if the potential benefit is less than sufficient, the testing team can change the testing tool. The team also provides a sample survey form to ask for feedback from the end user about the attributes and management of the software product.
  • 42. Advantages of Automation Testing o Automation testing takes less time than manual testing. o A tester can test the response of the software if the execution of the same operation is repeated several times. o Automation Testing provides re-usability of test cases on testing of different versions of the same software. o Automation testing is reliable as it eliminates hidden errors by executing test cases again in the same way. o Automation Testing is comprehensive as test cases cover each and every feature of the application. o It does not require many human resources, instead of writing test cases and testing them manually, they need an automation testing engineer to run them. o The cost of automation testing is less than manual testing because it requires a few human resources.
  • 43. Disadvantages of Automation Testing o Automation Testing requires high-level skilled testers. o It requires high-quality testing tools. o When it encounters an unsuccessful test case, the analysis of the whole event is complicated. o Test maintenance is expensive because high fee license testing equipment is necessary. o Debugging is mandatory if a less effective error has not been solved, it can lead to fatal results.

Editor's Notes

  • #6: operability - it operates cleanly; the system has few bugs, No bugs block the execution of testing observability the results are easy to see, distinct output is generated for each input, incorrect output is easily identified, internal errors are detected through self-testing mechanisms (robust programming) and automatically reported; source code is accessible controllability processing can be controlled, tests can be automated & reproduced all pieces of code are executable; SW and HW states and vars cab be controlled by the test engineer decomposability - software modules can be tested independently simplicity - no complex architecture and logic: functional simplicity; structural simplicity; code simplicity stability - few changes are requested during testing, they are controlled and they do not invalidate previous testing understandability - program is easy to understand; the design is well understood. Dependencies between internal, external, and shared components are well understood. Good docs.
  • #9: Verification: Focuses on process-oriented activities to confirm the software aligns with design specifications. Validation: Focuses on product-oriented activities to ensure the final product is useful and meets user needs.
  • #10: scalability
  • #16: in a manner characterized by constant change, activity, or progress.