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

Software Testing - JIC

Uploaded by

siamrahamannirob
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Software Testing - JIC

Uploaded by

siamrahamannirob
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

SOFTWARE TESTING

Jafrin Iqbal Chowdhury


Lecturer, Dept. Of Software Engineering,
Daffodil International University.
SOFTWARE TESTING

• 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
• helps to reduce the risk of problem occurring
OBJECTIVES

• Uncover as many as errors (or bugs) as possible in a given product.


• Demonstrate a given software product matching its requirement specifications.
• Validate the quality of a software testing using the minimum cost and efforts.
• Generate high quality test cases, perform effective tests, and issue correct and helpful
problem reports.
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.

A programmer makes an error (mistake)


Error results in a defect (fault, bug) in the software source code
A failure occurs when a faulty piece of code is executed.
REAL-LIFE EXAMPLES OF
ERROR, BUG, FAULT & FAILURE
1. Error: A human programmer forgets to initialize a variable in the code. For example, in a
banking software, an error occurs when the developer forgets to initialize an interest rate,
causing wrong calculations.

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

Verification: The software should confirm to its specification


(Are we building the product right?)
The aim of verification is to check that the software meets its stated functional and
non-functional requirements.

Validation: The software should do what the user really requires


(Are we building the right product?)
The aim of validation is to ensure that the software meets the customer’s expectations.
DEBUGGING , TESTING

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

Black box testing


▪ No knowledge of internal program design or code required.
▪ Tests are based on requirements and functionality.
▪ Also known as closed box/data-driven testing.
▪ This can only be done by a trial and error method.

White box testing


▪ Knowledge of the internal program design and code required.
▪ Tests are based on coverage of code statements, branches, paths, conditions.
▪ Also known as clear box/structural testing.
▪ Data domains and internal boundaries can be better tested.
GREY BOX TESTING

Testing in which the testers should have knowledge of implementation, however, they need not
be experts.

BLACK BOX + WHITE BOX


FUNCTIONAL TESTING

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

Non-functional testing refers to aspects of the software that may not be


related to a specific function or user action, such as scalability or security.
Non-functional testing tends to answer such questions as " how many
people can log in at once ", or "how easy is it to hack this software ".
TESTING LEVEL

▪ Unit Testing
▪ Integration Testing
▪ System Testing
▪ Regression Testing
UNIT TESTING

▪ Tests each Module Individually


▪ Follows a White box testing (Logic of a program)
▪ Done by developers
INTEGRATION 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

▪ 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
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..

You might also like