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

What Is Manual Testing 3

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

What Is Manual Testing 3

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

INTRODUCTION

Software testing is an important process in the software development lifecycle .It


involves verifying and validating that a software application is free of bugs, meets
the technical requirements set by its design and development , and satisfies user
requirements efficiently and effectively.

This process ensures that the application can handle all exceptional and boundary
cases, providing a robust and reliable user experience. By systematically
identifying and fixing issues, software testing helps deliver high-quality software
that performs as expected in various scenarios.
MANUAL TESTING
Manual testing is a type of testing in which we do not use any tools (automation) to
perform the testing. In this testing, testers make test cases for the codes test the
software, and give the final report about that software. Manual testing is time-
consuming testing because humans do it and there is a chance of human errors.

• Manual testing is conducted to discover bugs in the developed software


application.

• The tester checks all the essential features of the application.

• The tester executes test cases and generates test reports without any help from the
automation tools.

• It is conducted by the experienced tester to accomplish the testing process.

Manual Testing Techniques:

1. Equivalence Partitioning: Divides input data into partitions.


2. Boundary Value Analysis: Tests extreme values.
3. State Transition Testing: Verifies state changes.
4. Decision Table-Based Testing: Uses decision tables.
5. Error Guessing: Experienced testers identify potential errors.

Manual Testing Tools:

1. Test Management Tools (e.g., TestLink, TestRail)


2. Defect Tracking Tools (e.g., JIRA, Bugzilla)
3. Automation Tools (e.g., Selenium, Appium) for partial automation
ADVANTAGES

1. Human intuition and creativity


2. Flexibility and adaptability
3. No automation costs
4. Early defect detection
DISADVANTAGES

1. Time-consuming and labor-intensive


2. Prone to human error
3. Limited test coverage
4. Difficult to replicate tests
Benefits of Manual Testing

 Easy hiring: In manual testing, anyone can test so it helps in easy hiring.
 Fast feedback: Manual testing helps to provide fast and accurate feedback.
 Versatile: Manual test cases can be applied to many test cases.
 Flexible: Manual testing is flexible as it can adapt easily to changes in the
user interface.
 Less expensive: Manual testing is less expensive as one does not need to
spend a budget on automation tools and processes.

Limitations of Manual Testing

 Not all defects detected: In manual cases, there is no assurance that there
will be 100% test coverage as a result some of the defects may not be
detected.
 High expertise: Although manual testing can be done by anyone, in some
complex cases high expertise is required.
 Lots of time: Manual testing times extensive activity. It requires a lot of time
to manually develop test cases so that all the functionalities are covered and
tested.
 Cannot be recorded: Manual testing process cannot be recorded so it is not
possible to reuse the manual test cases.
 Less reliable: Manual testing is less reliable as it is conducted by humans
and all test cases are designed by humans so there are chances for human
error.
TYPES OF MANUAL TESTING
1. Functional Testing: Verifies that the software functions as specified.
2. Non-Functional Testing: Evaluates performance, usability, compatibility,
and security.
3. Black Box Testing: Tests without knowledge of internal code or
architecture.
4. White Box Testing: Tests with knowledge of internal code or architecture.
5. Gray Box Testing: Combination of black box and white box testing.
FUNCTIONAL TESTING
It is a type of software testing which is used to verify the functionality of the
software application, whether the function is working according to the requirement
specification. In functional testing, each function tested by giving the value,
determining the output, and verifying the actual output with the expected value.
Functional testing performed as black-box testing which is presented to confirm
that the functionality of an application or system behaves as we are expecting. It is
done to verify the functionality of the application.

Functional testing also called as black-box testing, because it focuses on


application specification rather than actual code. Tester has to test only the
program rather than the system.

Functional Testing Techniques:

1. Black Box Testing: Tests without knowledge of internal code.

2. Equivalence Partitioning: Divides input data into partitions.

3. Boundary Value Analysis: Tests extreme values.

4. State Transition Testing: Verifies state changes.

5. Decision Table-Based Testing: Uses decision tables.

Functional Testing Benefits:

1. Ensures software meets requirements.


2. Identifies defects early.
3. Improves software quality.
4. Reduces maintenance costs.
5. Enhances user satisfaction.
Complete process to perform functional testing.

 There are the following steps to perform functional testing:


 There is a need to understand the software requirement.
 Identify test input data
 Compute the expected outcome with the selected input values.
 Execute test cases
 Comparison between the actual and the computed result
NON-FUNCTIONAL TESTING
Non-functional testing is a type of software testing to test non-functional
parameters such as reliability, load test, performance and accountability of the
software. The primary purpose of non-functional testing is to test the reading speed
of the software system as per non-functional parameters. The parameters of non-
functional testing are never tested before the functional testing.

Non-functional testing is also very important as functional testing because it plays


a crucial role in customer satisfaction.

For example, non-functional testing would be to test how many people can work
simultaneously on any software.

Advantages of Non-functional testing

 It provides a higher level of security. Security is a fundamental feature due


to which system is protected from cyber-attacks.
 It ensures the loading capability of the system so that any number of users
can use it simultaneously.
 It improves the performance of the system.
 Test cases are never changed so do not need to write them more than once.
 Overall time consumption is less as compared to other testing processes.
 Disadvantages of Non-Functional Testing
 Every time the software is updated, non-functional tests are performed
again.
 Due to software updates, people have to pay to re-examine the software; thus
software becomes very expensive.
Non-Functional Testing Techniques:

 Benchmarking: Compares performance with industry standards.


 Baseline Testing: Establishes a performance baseline.
 Load Testing Tools (e.g., JMeter, LoadRunner).
 Security Scanning Tools (e.g., Nessus, Burp Suite).

Non-Functional Testing Benefits:

 Improves system performance and reliability.


 Enhances user experience.
 Identifies security vulnerabilities.
 Ensures compatibility with different environments.
 Reduces downtime and maintenance costs.
BLACK BOX TESTING
Black box testing is a technique of software testing which examines the
functionality of software without peering into its internal structure or coding. The
primary source of black box testing is a specification of requirements that is stated
by the customer.

In this method, tester selects a function and gives input value to examine its
functionality, and checks whether the function is giving expected output or not. If
the function produces correct output, then it is passed in testing, otherwise failed.
The test team reports the result to the development team and then tests the next
function. After completing testing of all functions if there are severe problems,
then it is given back to the development team for correction.

Black Box Testing Techniques:

 Equivalence Partitioning: Divide input data into partitions.


 Boundary Value Analysis: Test extreme values.
 State Transition Testing: Verify state changes.
 Decision Table-Based Testing: Use decision tables.
 Error Guessing: Experienced testers identify potential errors.
ADVANTAGES

1. Independent testing.
2. Focus on user perspective.
3. No bias towards internal implementation.
4. Cost-effective.
DISADVANTAGES

1. Limited test coverage.


2. Difficulty in identifying defects.
3. Requires thorough test planning.
WHITE BOX TESTING

The box testing approach of software testing consists of black box testing and
white box testing. We are discussing here white box testing which also known as
glass box is testing, structural testing, clear box testing, open box testing and
transparent box testing. It tests internal coding and infrastructure of a software
focus on checking of predefined inputs against expected and desired outputs. It is
based on inner workings of an application and revolves around internal structure
testing. In this type of testing programming skills are required to design test cases.
The primary goal of white box testing is to focus on the flow of inputs and outputs
through the software and strengthening the security of the software.

The term 'white box' is used because of the internal perspective of the system. The
clear box or white box or transparent box name denote the ability to see through
the software's outer shell into its inner workings.

Developers do white box testing. In this, the developer will test every line of the
code of the program. The developers perform the White-box testing and then send
the application or the software to the testing team, where they will perform
the black box testing and verify the application along with the requirements and
identify the bugs and sends it to the developer.

The developer fixes the bugs and does one round of white box testing and sends it
to the testing team. Here, fixing the bugs implies that the bug is deleted, and the
particular feature is working fine on the application.
White Box Testing Techniques:

1. Statement Coverage: Tests each statement.


2. Decision Coverage: Tests decision-making logic.
3. Branch Coverage: Tests branch logic.
4. Path Coverage: Tests different execution paths.
5. Data Flow Testing: Tests data flow through program.

Advantages

1. Thorough testing of internal logic.


2. Early defect detection.
3. Improved code quality.
4. Better security testing.

Disadvantages

1. Requires programming knowledge.


2. Time-consuming and complex.
3. May not catch external issues.
GREYBOX TESTING

Greybox testing is a software testing method to test the software application with
partial knowledge of the internal working structure. It is a combination of black
box and white box testing because it involves access to internal coding to design
test cases as white box testing and testing practices are done at functionality level
as black box testing.

GreyBox testing commonly identifies context-specific errors that belong to web


systems. For example; while testing, if tester encounters any defect then he makes
changes in code to resolve the defect and then test it again in real time. It
concentrates on all the layers of any complex software system to increase testing
coverage. It gives the ability to test both presentation layer as well as internal
coding structure. It is primarily used in integration testing and penetration testing.

Grey Box Testing Techniques:

1. Code Review: Reviews code for quality and security.


2. Path Testing: Tests different execution paths.
3. Data Flow Testing: Tests data flow through program.
4. Error Guessing: Experienced testers identify potential errors.
5. Boundary Value Analysis: Tests extreme values.
Advantages

1. Balances thoroughness and efficiency.


2. Identifies defects earlier.
3. Improves test coverage.
4. Enhances security testing.
5. Cost-effective.

Disadvantages

1. Requires some programming knowledge.


2. May not catch all defects.
3. Limited test coverage.
AUTOMATION TESTING
Software is the medium or platform for performing a task in the system. Software
is developed by following the SDLC process, i.e. software development life cycle
in which software has to pass through many phases, and testing is one of its major
phase that shows the result of all the efforts made in developing process of
software upto now.

Manually when testers write the test cases and execute them repeatedly, known as
manual testing, which is time-consuming and the test results are not sure. So to
recover these drawbacks, automation testing came into existence. With automation
testing, developers or testers keep everything in their hands, boosting the product's
productivity.

Types of automation testing

 Unit Testing Automation


 Regression Testing Automation
UNIT TESTING

Unit testing involves the testing of each unit or an individual component of the
software application. It is the first level of functional testing. The aim behind unit
testing is to validate unit components with its performance.

A unit is a single testable part of a software system and tested during the
development phase of the application software.

The purpose of unit testing is to test the correctness of isolated code. A unit
component is an individual function or code of the application. White box testing
approach used for unit testing and usually done by the developers.

Whenever the application is ready and given to the Test engineer, he/she will start
checking every component of the module or module of the application
independently or one by one, and this process is known as Unit
testing or components testing.
Advantages

1. Early Defect Detection: Unit testing helps detect defects early in the
development cycle.
2. Improved Code Quality: Unit testing ensures code is testable, maintainable,
and follows best practices.
3. Reduced Debugging Time: Unit tests identify issues quickly, reducing
debugging time.
4. Faster Development: Unit testing enables faster development by reducing
time spent on debugging.
5. Confidence in Code: Unit tests provide confidence in code's functionality.
6. Easier Maintenance: Unit tests make it easier to maintain and refactor code.
7. Reduced Fear of Change: Unit tests reduce fear of changing code.
8. Improved Design: Unit testing promotes good design principles.

Disadvantages:

1. Initial Investment: Creating unit tests requires initial investment of time and
resources.
2. Test Maintenance: Unit tests require maintenance as code changes.
3. Complexity: Unit testing complex systems can be challenging.
4. Mocking Dependencies: Mocking dependencies can be difficult.
INTEGRATION TESTING
Regression testing is a black box testing techniques. It is used to authenticate a
code change in the software does not impact the existing functionality of the
product. Regression testing is making sure that the product works fine with new
functionality, bug fixes, or any change in the existing feature.

Regression testing is a type of software testing. Test cases are re-executed to check
the previous functionality of the application is working fine, and the new changes
have not produced any bugs.

Regression testing can be performed on a new build when there is a significant


change in the original functionality. It ensures that the code still works even when
the changes are occurring. Regression means Re-test those parts of the application,
which are unchanged.

Regression tests are also known as the Verification Method. Test cases are often
automated. Test cases are required to execute many times and running the same
test case again and again manually, is time-consuming and tedious too.
Advantages:

1. Ensures Changes Didn't Break Existing Functionality


2. Identifies Unintended Consequences
3. Reduces Testing Costs
4. Improves Software Quality
5. Enhances Customer Satisfaction
6. Detects Defects Early
7. Reduces Debugging Time
8. Supports Continuous Integration/Continuous Deployment (CI/CD)

Disadvantages:

1. Time-Consuming and Labor-Intensive


2. Requires Significant Test Data Management
3. Difficult to Ensure Comprehensive Coverage
4. Test Environment Management Challenges
5. Regression Test Suite Maintenance
CONCLUSION

Software testing is an important part of the software development process. It is not


a single activity that takes place after code implementation, but is part of each
stage of the lifecycle. A successful test strategy will begin with consideration
during requirements specification. Testing details will be fleshed through high and
low level system designs, and testing will be carried out by developers and
separate test groups after code implementation.

As with the other activities in the software lifecycle, testing has its own unique
challenges. As software systems become more and more complex, the importance
of effective, well planned testing efforts will only increase.
REFERENCE
www.https:\\javatpoint.com

www.https:\\geeksforgeeks.com

www.https:\\okepy.com

You might also like