Software Testing - JIC
Software Testing - JIC
• 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.
2. Bug: When the banking software is executed and tries to calculate interest, it results in
incorrect interest values due to the uninitialized variable. This behavior is the bug.
3. Fault: The software has entered a state where interest is being calculated incorrectly
because the code was written with a missing initialization. This faulty state exists because
of the developer's error.
4. Failure: When a customer receives incorrect interest on their savings account, this event
is a failure. The software has failed to deliver the expected output, deviating from the
correct calculation.
SDLC LIFE CYCLE
Testing Life Cycle
DETAILED TESTING LIFE CYCLE
TEST PLAN
It is a systematic approach to test a system i.e. software. The plan typically contains a
detailed understanding of what the eventual testing workflow will be.
TEST CASE
▪ It is a specific procedure of testing a particular requirement.
▪ It will include:
▪ Identification of specific requirement tested
▪ Test case success/failure criteria
▪ Specific steps to execute test
▪ Test data
VERIFICATION VS VALIDATION
Debugging: The process of finding, analyzing and removing the causes of failure.
Testing: is a quality assurance activities.
TYPES OF SOFTWARE TESTING
MANUAL TESTING
▪ It includes testing software manually, i.e., without using any automation tool or script. In this
type, the tester takes over the role of an end-user and tests the software to identify any
unexpected behavior or bug.
MANUAL TESTING TOOLS
1. Jira: A project management tool commonly used for bug tracking, test case management, and
manual test reporting.
2. TestRail: Test management software for organizing test cases, tracking test execution, and
generating reports.
3. Zephyr: An add-on for Jira that provides test management capabilities, helping testers plan,
execute, and track manual tests.
4. HP ALM (Application Lifecycle Management): A comprehensive tool for manual test
planning, tracking, and managing the test lifecycle.
5. qTest: A test management platform that allows teams to manage manual test cases,
execution, and reporting.
6. Bugzilla: A defect-tracking tool that helps manage bug reports and track manual test issues.
7. Mantis Bug Tracker: Open-source bug tracking tool to manage and report manual testing
defects.
8. TestLink: An open-source test management tool for creating, managing, and executing
manual test cases. Etc.
AUTOMATION TESTING
▪ It is also known as Test Automation, is when the tester writes scripts and uses another
software to test the product. This process involves the automation of a manual process.
Automation Testing is used to re-run the test scenarios quickly and repeatedly, that were
performed manually in manual testing.
AUTOMATION TESTING TOOLS
1. Selenium: Automates web browsers for testing web applications across multiple platforms.
2. JUnit: A framework for unit testing Java applications with repeatable test cases.
3. TestComplete: Automates testing for desktop, web, and mobile applications with script and
scriptless options.
4. Appium: Open-source tool for automating mobile apps on Android and iOS.
5. Katalon Studio: All-in-one solution for automating web, API, and mobile testing.
6. Cucumber: Supports BDD by enabling human-readable tests in plain language.
7. Postman: Automates API testing, requests, and responses validation.
8. Jenkins: Automates test execution in CI/CD pipelines for continuous testing.
9. Ranorex: Cross-platform automation tool for desktop, web, and mobile testing.
10. SoapUI: Automates functional and performance testing for REST and SOAP APIs.
Why are manual testing tools necessary
if manual testing doesn’t involve automation or scripting?
Manual testing tools like Jira, TestRail, and Bugzilla are essential despite the absence
of automation or scripting because they facilitate effective management, tracking, and
organization of the testing process. These tools provide a structured framework for
documenting test cases, recording defects, and managing test cycles, which enhances
collaboration among team members. By offering features such as prioritization of
bugs, real-time reporting, and integration with other development tools, these
platforms help streamline communication between testers and developers, ensuring
that issues are addressed promptly. Additionally, they enable better visibility into the
testing progress, ensuring that stakeholders can monitor project status and quality
metrics effectively, ultimately leading to more efficient and thorough testing outcomes.
BASED ON TEST CASE DESIGN APPROACH
Testing in which the testers should have knowledge of implementation, however, they need not
be experts.
Functional testing refers to tests that verify a specific action or function of the
code.
These are usually found in the code requirements documentation, although
some development methodologies work from use cases or user stories.
Functional tests tend to answer the question of " can the user do this" or "does
this particular feature work ".
NON-FUNCTIONAL TESTING
▪ Unit Testing
▪ Integration Testing
▪ System Testing
▪ Regression Testing
UNIT TESTING
▪ Once all modules have been unit tested, integration testing is performed
▪ Systematic Testing
▪ Produce tests to identify errors associated with interfacing
▪ Types of Integration Testing
1. Big Bang Integration Testing
2. Top-Down Integration Testing
3. Bottom-Up Integration Testing
4. Mixed Integration Testing
SYSTEM 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(Software Requirements Specification) document.
TYPES OF PERFORMANCE
TESTING
▪ Stress Testing
▪ Volume Testing
▪ Configuration Testing
▪ Compatibility Testing
▪ Regression Testing
▪ Recovery Testing
▪ Maintenance Testing
▪ Documentation Testing
▪ Usability Testing
Thank You..