Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 14

Unit – IV

Manual Vs Automated Testing


Need and Goals of Software Testing

Software testing is a method of determining whether the actual software product


meets the expected requirements and ensuring that the software product is free of
defects. It entails running software/system components through their paces using
manual or automated tools to evaluate one or more properties of interest.

The goal of software testing is to find errors, gaps, or missing requirements in


comparison to the actual requirements. When a software development project is
going on, you need to know that errors may appear in any phase of the life cycle.
Few of them are known to be undiscovered. Thus, the importance of Quality
Assurance cannot be ignored.
There are high chances that the final code has errors of functionality
and design. For the identification of the issues before the occurrence
in the critical environment, it is a prerequisite to performing the
testing of software.

Software testing is important because if there are any bugs or


errors in the software, they can be identified early and fixed
before the software product is delivered. A properly tested
software product ensures dependability, security, and high
performance, which leads to time savings, cost effectiveness,
and customer satisfaction.
Reasons of ‘Why the testing of the software is really important’

1. Helps in saving money


The testing of software has a wide array of benefits. The cost-effectiveness of the project
happens to be one of the top reasons why companies go for software testing Services. The
testing of software comprises of a bunch of projects. In case you find any bug in the early phases,
fixing them costs a reduced amount of money.

2. Security
It is another crucial point that why software testing should not be taken into consideration. It is
considered to be the most vulnerable and sensitive part. There are a bunch of situations in which
the information and details of the users are stolen and they are used for the benefits. It is
considered to be the reason why people look for the well tested and reliable products. As a specific
product undergoes testing, the user can be ensured that they are going to receive a reliable
product. The personal details of the user can be safe. Users can receive products that are free
from vulnerability with the aid of software testing.
3.Quality of the product
For ensuring that the specific product comes to life, it should work in accordance with the
prerequisite as it is helpful in getting the prerequisite results. Products should be serving the
user in one way or the other. It is a must that it is going to bring the value, as per the promise.
Hence, it should function in a complete manner for ensuring an effective customer experience. It
is also necessary to check the compatibility of the device.

4. Satisfaction of the customer


The first impression is really important and if you fail to give the same, users are going to find
another product which will accomplish all the requirements. So, the primary objective of the
owner of the products is offering the best satisfaction of the customers. The reasons why it is
necessary to opt for software testing is due to the fact that it offers the prerequisite and perfect
user experience.

5. Enhancing the development process


With the aid of Quality Assurance, you can find a wide array of scenarios and errors, for the
reproduction of the error. It is really simple and the developers need to fix the same in no time.
In addition to this, software testers should be working with the development team parallelly,
which is useful in the acceleration of the development procedure.
6. Easy while adding new features
The more interconnected and older the code, the more difficult it is to change. As a
new developer, changing older parts of your codebase can be terrifying, but with
tests, you’ll at least know if you’ve broken anything important. This helps in making
your software stand ahead in the market, and beat the competition.

7. Determining the performance of the software


If you find software or application that has low or reduced performance, you will find
that it brings your reputation down in the market. Users are not going to trust any
people. There are chances that the reputation of your organization is going to suffer.
In case, you introduce any software in the market without software testing and after
this, the performance of the software does not meet the expectation or requirements
of the clients, convincing people will be a hassle.
Manual Vs Automated Testing

Testing can either be done manually or using an automated testing tool:


Manual - This testing is performed without taking help of automated testing tools. The software
tester prepares test cases for different sections and levels of the code, executes the tests and reports
the result to the manager.
Manual testing is time and resource consuming. The tester needs to confirm whether or not right test
cases are used. Major portion of testing involves manual testing.

Automated This testing is a testing procedure done with aid of automated testing tools. The
limitations with manual testing can be overcome using automated test tools.
A test needs to check if a webpage can be opened in Internet Explorer. This can be easily done with
manual testing. But to check if the web-server can take the load of 1 million users, it is quite
impossible to test manually.

There are software and hardware tools which helps tester in conducting load testing, stress testing,
regression testing.
Automated Testing

Definition

Automated testing is the process of using specialized software tools


and scripts to execute a series of predefined tests on a software
application or system. Unlike manual testing, automated testing is
performed automatically, allowing for faster and more efficient
testing of software functionalities.
Tools
1. Selenium: A popular tool for automating web browsers.
2. JUnit: A widely used testing framework for Java applications.
3. TestNG: A testing framework inspired by JUnit but introducing new functionalities.
4. Cucumber: A tool for behavior-driven development (BDD) that allows the description of
application behavior in plain text.
5. Jenkins: An open-source automation server for continuous integration and continuous delivery
(CI/CD).
6. Appium: A tool for automating mobile applications on Android and iOS platforms.
7. Postman: A popular tool for API testing and automation.
8. Robot Framework: A generic open-source automation framework for acceptance testing and
acceptance test-driven development (ATDD).
Features

1. Reusability: Automated tests can be reused in different stages of the development lifecycle.
2. Consistency: Automated tests perform the same steps and checks consistently every time they
run.
3. Accuracy: Automated tests eliminate the risk of human error in the testing process.
4. Faster Feedback: Automated tests provide quick feedback on code changes, allowing for rapid
development cycles.
5. Cost-Effectiveness: While initial setup might be costly, automated testing saves costs in the
long run due to reduced manual testing efforts.
6. Regression Testing: Automated tests are ideal for regression testing, ensuring that new code
changes do not break existing functionalities.
7. Increased Test Coverage: Automated tests can cover a larger number of test scenarios and
edge cases.
Lifecycle
1. Planning: Define the scope, objectives, and requirements of the automated testing process.
2. Design: Create test cases and scenarios to be automated, and design the test scripts and data.
3. Development: Write the automated test scripts using selected tools and frameworks.
4. Execution: Run the automated tests and monitor their execution.
5. Analysis: Analyze the test results, identify issues, and report defects.
6. Maintenance: Update test scripts as the application evolves to ensure continued accuracy and
relevance of tests.
2. 3.
Design Development

1. 4.
Planning Execution

6. 5.
Maintenance Analysis
Advantages:
1. Efficiency: Automated testing is faster and more efficient than manual testing.
2. Accuracy: Automated tests perform tests with precision, reducing human errors.
3. Reusability: Automated tests can be reused across different phases of
development.
4. Increased Test Coverage: Automated tests can cover a wide range of scenarios
and edge cases.
5. Faster Feedback: Automated tests provide rapid feedback to developers,
enabling quick bug fixes.
6. Cost-Effectiveness: Automated testing reduces overall testing costs over the
software development lifecycle.
Challenges:

1. Initial Investment: Setting up automated testing requires initial investment in


tools, training, and infrastructure.
2. Maintenance: Automated tests need regular maintenance to keep up with
changes in the application.
3. Limited Creativity: Automated tests follow predefined scripts and might miss
creative, exploratory testing.
4. Complex GUI Testing: Automated testing of complex graphical user interfaces
can be challenging.
5. Not Suitable for All Tests: Some tests, especially those requiring human
judgment, are not easily automated.
Automated testing, when implemented strategically, significantly
contributes to the quality and reliability of software applications by
providing quick, accurate, and repeatable testing processes.

You might also like