KEMBAR78
Testing PDF | PDF | Software Testing | Agile Software Development
0% found this document useful (0 votes)
105 views32 pages

Testing PDF

This document is a summer training report submitted by Shreya Goyal to fulfill requirements for a Bachelor of Technology degree in Electronics and Communication Engineering. It discusses Shreya's 4-6 week internship at CresTech, a software testing company. During the internship, Shreya learned about different departments involved in product development and was assigned to the QA/testing department. In the QA department, Shreya tested a new website that was preparing to launch, and provided execution sheets and default sheets showing how manual testing was performed.

Uploaded by

Shreyaa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views32 pages

Testing PDF

This document is a summer training report submitted by Shreya Goyal to fulfill requirements for a Bachelor of Technology degree in Electronics and Communication Engineering. It discusses Shreya's 4-6 week internship at CresTech, a software testing company. During the internship, Shreya learned about different departments involved in product development and was assigned to the QA/testing department. In the QA department, Shreya tested a new website that was preparing to launch, and provided execution sheets and default sheets showing how manual testing was performed.

Uploaded by

Shreyaa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

SOFTWARE TESTING

SUMMER TRAINING REPORT

Submitted in partial fulfilment of the requirements for the award of the degree
Of
BACHELOR OF TECHNOLOGY
In
ELECTRONICS & COMMUNICATION ENGINEERING

By
SHREYA GOYAL
Roll No: 35551202816

Guided by:
Ms. Manisha Dwivedi
(Senior Software Consultant)
CRESTECH

Page 1 of 32
CANDIDATE’S DECLARATION

It is hereby certified that the work which is being presented in the B. Tech Summer
training Report entitled "SOFTWARE TESTING" in partial fulfilment of the
requirements for the award of the degree of Bachelor of Technology and
submitted in the Department of Electronics & Communication Engineering of
Bharati Vidyapeeth College of Engineering, New Delhi (Affiliated to Guru
Gobind Singh Indraprastha University, Delhi) is an authentic record of our own
work carried out during a period from JUNE 2019 to JULY 2019 under the
guidance of Ms. Manisha Dwivedi in the company Crestech.

SHREYA GOYAL
Enrolment No: 35551202816

Page 2 of 32
ABSTRACT

Under the 4-6 week internship program, which is to be completed at the end of the
6th semester, I did my internship at a software solution firm: CresTech.
CresTech is a trusted partner and a pioneer in QA testing space to most of the
Fortune 1000 companies. It is very first (India headquartered) Independent
software testing company to be assessed at International level. CresTech has
provided its customers the convenience of unwinding the gap between the
innovative digital platforms and technologies and administrative applications from
a variety of methodological approaches.
The purpose of this program is to get a practical aspect of the theoretical work
studies at the university and to understand the operations in the co-operate industry.
This not only helps students to gain experience but also help them carve
themselves in order to further make them a good job candidate.
I was first assigned to review all departments and know how a product comes into
market and then finally assigned the QA or the testing department. I gained
knowledge about the production of the product and how to maintain and test it in
different environments.
In conclusion, this was an opportunity to develop and enhance skills and
competencies in my career field.

Page 3 of 32
TABLE OF CONTENTS

CANDIDATE DECLARATION 2
ABSTRACT 3
TABLE OF CONTENTS 4
LIST OF FIGURES AND TABLES 5

Chapter 1: Introduction 6-14

1.1 What is software Testing 7


1.2 Why is software testing important? 7-8
1.3 Principles of testing 8-9
1.4 Classification of testing 10-12
1.5 Documentation 13-14

Chapter 2: Software testing Life cycle 15- 19

2.1 Software testing life cycle 15-16


2.2 Methodologies for testing 17
2.2.1 Waterfall method 17-18
2.1.3 Agile Testing 19

Chapter 3: Different types of testing techniques 20-27

3.1 Manual testing 20-21


3.2 Automated testing 22-23
3.3 Web application testing 24-25
3.4 Mobile application testing 26-27

Chapter 4: Execution 28- 32

4.1 Test case execution 29-31


4.2 Default sheet execution 32

Page 4 of 32
LIST OF FIGURES AND TABLES

Figure 1 Principles of Testing


Figure 2 Classification of Software Testing
Figure 3 Further Classification of testing
Figure 4 Test Scenario
Figure 5 Software testing life cycle
Figure 6 Waterfall model
Figure 7 Agile Testing
Figure 8 Manual Testing
Figure 9 Automates Testing
Figure 10 Web application testing
Figure 11 Mobile testing

Table:
Table 1 Phases of Waterfall method

Page 5 of 32
1. Introduction
When any new product or application or even a software comes into market, there
is a lot of planning and strategy that goes behind before making it live to the
customers. Not only the major factors like cost, resources and the market is kept in
mind but also many minute factors that play a key role into the development of it.

There are several separate departments that work on each module of product
development. Starting from getting details from the client, to modelling them, to
making rough models, getting them verified by client, developing a final product,
testing the product in all conditions, to launching it in market and maintaining and
regularly updating it. These are some broad segments in which software solution
firms works.

At CresTech, we aim to deliver the best product in the market by going through all
stages and bringing out the best possible. Every department had its own task
assigned to them as soon as any new product was to be launched. A new team was
assigned to the client with members of all departments to help them with their
product.

Whenever any product is finalized and ready to be launched, it goes to the QA


(quality assurance) or the testing team. What they aim at is that to find any flaw in
the product and report it so that the customer gets a good product and the product
becomes a success. Even after the product being launched, the team has to
continuously test it to maintain it and to avoid getting complaints from the
customers. As soon as the bugs are fixed, a new version or an update is made
available to the customers for a better experience.

In QA department, after learning about all the aspects of testing, I was given the
task of testing their new website which had to go live, the next month. Some
execution sheets and default sheets are also attached to give a rough idea how
manual testing is done and how important it is to test any product before launching
it.

Page 6 of 32
1.1 What is Software Testing?
Software Testing is a process of evaluating the functionality of a software
application to check whether the developed software meets the specified
requirements and identifies any defect in the software in order to produce a quality
product.

It is also stated as the process of verifying and validating a software product.


Where,
Verification: refers to the set of tasks that ensure that software correctly
implements a specific function.
Validation: it refers to a different set of tasks that ensure that the software that has
been built is traceable to customer requirements.
We can also see verification and validation as:
Verification: “Are we building the product right?”
Validation: “Are we building the right product?”

Software testing basically checks whether the software product:

 Meets the business and technical requirements that guided its design and
development
 Works as per the requirement
 Can be implemented with the same characteristics

1.2 Why is Software testing important?


The importance of software testing is imperative. Software Testing is important
because of the following reasons:
1. Software Testing points out the defects and errors that were made during the
development phases. It looks for any mistake made by programmer during
the implementation phase of the software.
2. It ensures that the customer finds the organization reliable and their
satisfaction in the application is maintained. Sometimes contracts include
monetary penalties with respect to timeline and quality of the product and
software testing prevent monetary losses.
3. It also ensures the Quality of the product. Quality product delivered to the
customers helps in gaining their confidence. It makes sure that the software

Page 7 of 32
application requires lower maintenance cost and results in more accurate,
consistent and reliable results.
4. Users are not inclined to use software that has bugs. They may not adopt
software if they are not happy with the stability of the application.
Testing is important for the product to stay in business.
5. It’s important to ensure that the application should not result in
any failures because it can be very expensive in the future or in the later
stages of the development.

1.3 Principles of Software testing


Seven Principles of Software Testing are:

1. Testing Shows Presence of Defects: Testing shows the presence of defects in the
software. The goal of testing is to make the software fail. Sufficient testing
reduces the presence of defects. In case testers are unable to find defects after
repeated regression testing doesn’t mean that the software is bug-free. Testing
talks about the presence of defects and don’t talk about the absence of defects.

2. Exhaustive Testing is Impossible: Testing all the functionalities using all valid
and invalid inputs and preconditions is known as Exhaustive testing. If we keep
on testing all possible test conditions then the software execution time and costs
will rise. So instead of doing exhaustive testing, risks and priorities will be taken
into consideration whilst doing testing and estimating testing efforts.

3. Early Testing: Defects detected in early phases of SDLC are less expensive to
fix. So conducting early testing reduces the cost of fixing defects.
Assume two scenarios, first one is you have identified an incorrect requirement
in the requirement gathering phase and the second one is you have identified a
bug in the fully developed functionality. It is cheaper to change the incorrect
requirement compared to fixing the fully developed functionality which is not
working as intended.

4. Defect Clustering: Defect Clustering in software testing means that a small


module or functionality contains most of the bugs or it has the most operational
failures.
As per the Pareto principle (80-20 Rule), 80% of issues comes from 20% of
modules and remaining 20% of issues from remaining 80% of modules. So we
do emphasize testing on the 20% of modules where we face 80% of bugs.

Page 8 of 32
5. Pesticide Paradox: Pesticide Paradox in software testing is the process of
repeating the same test cases again and again, eventually; the same test cases
will no longer find new bugs. So to overcome this Pesticide Paradox, it is
necessary to review the test cases regularly and add or update them to find more
defects.

6. Testing is Context Dependent: Testing approach depends on the context of the


software we develop. We do test the software differently in different contexts.
For example, online banking application requires a different approach of testing
compared to an e-commerce site.

7. Absence of Error – Fallacy: 99% of bug-free software may still be unusable, if


wrong requirements were incorporated into the software and the software is not
addressing the business needs.
The software which we built not only be a 99% bug-free software but also it
must fulfil the business needs otherwise it will become an unusable software.

Figure 1: Principles of testing

Page 9 of 32
1.4 Classification of Software testing

Figure 2: Classification of testing

1. Static testing: is testing of a component or system at specification or


implementation without execution of software code, such as reviewing or static
analysis. Review can be formal, informal, and technical or review during
meetings.
Informal meeting is inexpensive meeting and can be done at any point of time by
QA analyst. In formal meeting the QA analyst goes through the project
document before meeting, during meeting scribe makes note of the discussions
made and at the end of meeting reviewers submit report by both the parties..

2. Dynamic testing: is testing of a component or system conducted during the


execution of software code or properly going through everything and then
verifying it.
Under dynamic testing come white box testing and the black box testing.

3. White box Testing: This is known as glass box testing or sometimes clear box
testing. This involves testing on the structural part of the application. For
performing white box testing, in-depth knowledge of the code is essential; hence
generally the code developers do this type of testing.
Page 10 of 32
Under white box let us talk about:

 Unit Level Testing: refers to the testing carried out on small software units.
This is a type of white box testing generally performed by the code developers.
 Integration Testing: The objective is to take unit tested components and build a
program structure that has been dictated by design. Integration testing is testing
in which a group of components are combined to produce output.

4. Black box Testing: Involves testing of functional part of the application. This is
generally conducted by the testing engineers. For conducting black box testing,
testers need not have any formal structural knowledge of the code.

 Functional testing: is a type of testing which verifies that each function of the
software application operates in conformance with the requirement
specification. It is not concerned about the source code of the application.
(Every functionality of the system is tested by providing appropriate input,
verifying the output and comparing the actual results with the expected results).
This testing can be done either manually or using automation.
 Non-functional testing: is a type of testing to check non-functional aspects
(performance, usability, reliability, etc.) of a software application. It is
explicitly designed to test the readiness of a system as per non-functional
parameters which are never addressed by functional testing. Non-functional
testing is equally important as functional testing and affects client satisfaction.

Under functional testing, there are many sub- categories which we can discuss
like:

 User acceptance level testing: It is nothing but a system level testing with the
only difference that it is carried out in the presence of the user.
 System level Testing: Whatever testing performed on the application after
its deployment in its actual environment is termed as system level testing. In
this software is tested such that it works fine for different operating systems. In
this we just focus on required input and output without focusing on working.

Under non-functional testing, there are many sub- categories which we can discuss
like:

 Performance Testing: It is designed to test the run-time performance of


software within the context of an integrated system. It is used to test speed and
effectiveness of program.

Page 11 of 32
 Testing usability (Usability testing) - testing to determine the degree of
comprehensibility, ease of learning and use, the software more attractive to the
user when used in the specified operating conditions.

 Security Testing: To test how well the system can preserve itself and the data it
holds in situation of malicious attacks is called security testing. Confidentiality,
integrity, availability, authentication, and authorization are the main areas that
are tested when security testing is considered. Also, network security, system
security and application security are other areas that will be tested in this case.

 Compatibility Testing: An application is tested for its coordination with


different hardware and software that it is expected to work on. Another testing
that can be done is working of the application with different versions or
releases of the same hardware or software.
 Scalability Testing: When an application is tested for it ability to increase and
scale up on any of its non-functionality requirements such as load, number of
transactions, number of servers, volume of data etc., it is known as scalability
testing.
The above list is not exhaustive since there are more than 150 testing types as of
today. The different types of testing (including automated testing) that needs to be
done depending upon the scope of the project and maturity of the application under
test.

Figure 3: Further Classification of Testing

Page 12 of 32
1.5 Documentation of Software Testing
Testing documentation involves the documentation of artefacts that should be
developed before or during the testing of Software.
Documentation for software testing helps in estimating the testing effort required,
test coverage, requirement tracking/tracing, etc. This section describes some of the
commonly used documented artefacts related to software testing such as –

 Test Plan: A test plan outlines the strategy that will be used to test an
application, the resources that will be used, the test environment in which
testing will be performed, and the limitations of the testing and the schedule
of testing activities. Typically the Quality Assurance Team Lead will be
responsible for writing a Test Plan.
A test plan includes the following –
1. Assumptions while testing the application
2. List of test cases included in testing the application
3. List of features to be tested
4. What sort of approach to use while testing the software
5. List of deliverables that need to be tested
6. The resources allocated for testing the application
7. Any risks involved during the testing process.
8. A schedule of tasks and milestones to be achieved

 Test Scenario: It is a one line statement that notifies what area in the
application will be tested. Test scenarios are used to ensure that all process
flows are tested from end to end. A particular area of an application can
have as little as one test scenario to a few hundred scenarios depending on
the magnitude and complexity of the application.
The terms 'test scenario' and 'test cases' are used interchangeably; however a
test scenario has several steps, whereas a test case has a single step. Viewed
from this perspective, test scenarios are test cases, but they include several
test cases and the sequence that they should be executed. Apart from this,
each test is dependent on the output from the previous test.

Page 13 of 32
Figure 4: Test Scenario

 Test Case: Test cases involve a set of steps, conditions, and inputs that can
be used while performing testing tasks. The main intent of this activity is to
ensure whether software passes or fails in terms of its functionality and
other aspects.
Furthermore, test cases are written to keep track of the testing coverage of
software. Generally, there are no formal templates that can be used during
test case writing. However, the following components are always available
and included in every test case –
1. Test case ID
2. Product module
3. Product version
4. Revision history
5. Purpose
6. Assumptions
7. Pre-conditions
8. Expected outcome
9. Actual outcome
10. Post-conditions

 Traceability Matrix: Traceability Matrix is a table that is used to trace the


requirements during the Software Development Life Cycle. It can be used
for forward tracing (i.e. from Requirements to Design / Coding) or backward
There are many user-defined templates for RTM.
Each requirement in the RTM document is linked with its associated test
case so that testing can be done as per the mentioned requirements.
Furthermore, Bug ID is also included and linked with its associated
requirements and test case. The main goals for this matrix are –
1. Make sure the software is developed as per the mentioned requirements.
2. Helps in finding the root cause of any bug.
3. Helps in tracing the developed documents during different phases of
SDLC.

Page 14 of 32
2.1 STLC (Software testing life cycle)
Software Testing Life Cycle (STLC) is the testing process which is executed in
systematic and planned manner. In STLC process, different activities are
carried out to improve the quality of the product.

Characteristics of STLC:
1. STLC is a fundamental part of Software Development Life Cycle
(SDLC) but STLC consists of only the testing phases.
2. STLC starts as soon as requirements are defined or software requirement
document is shared by stakeholders.
3. STLC yields a step-by-step process to ensure quality software.
4. As soon as the development phase is over, testing team is ready with test
cases and starts the execution. This helps in finding bugs in the early phase.

Figure 5: Software Testing Life Cycle

There are 6 phases in the testing cycle, they are:

1. Requirement Analysis: Requirement Analysis is the very first step in


STLC. In this step Quality Assurance (QA) team understands the
requirement in terms of what we will testing & figure out the testable
requirements. From very first step QA involved in the where STLC which
helps to prevent the introducing defects into Software under test. The
requirements can be either Functional or Non-Functional like Performance,
Page 15 of 32
Security testing. Also requirement and Automation feasibility of the project
can be done in this stage (if applicable).

2. Test Planning: Test Planning is most important phase of Software testing


life cycle where all testing strategy is defined. This phase also called as Test
Strategy phase. In this phase typically Test Manager (or Test Lead based on
company to company) involved to determine the effort and cost estimates
for entire project. This phase will be kicked off once the requirement
gathering phase is completed & based on the requirement analysis, start
preparing the Test Plan. The Result of Test Planning phase will be Test
Plan or Test strategy & Testing Effort estimation documents.

3. Test Case Development: The test case development activity is started


once the test planning activity is finished. This is the phase of STLC where
testing team write down the detailed test cases. Along with test cases testing
team also prepare the test data if any required for testing. Once the test cases
are ready then these test cases are reviewed by peer members or QA lead.
Also the Requirement Traceability Matrix (RTM) is prepared. The
Requirement Traceability Matrix is an industry-accepted format for tracking
requirements where each test case is mapped with the requirement. Using
this RTM we can track backward & forward traceability.

4. Test Environment Setup: Setting up the test environment is vital part of


the STLC. Basically test environment decides on which conditions software
is tested. This is independent activity and can be started parallel with Test
Case Development. In process of setting up testing environment test team is
not involved in it. Based on company to company may be developer or
customer creates the testing environment.

5. Test Execution: After the test case development and test environment
setup test execution phase gets started. In this phase testing team start
executing test cases based on prepared test cases in the earlier step. During
this phase, the testers will carry out the testing based on the test plans and
the test cases prepared. Bugs will be reported back to the development team
for correction and retesting will be performed.

6. Test Closure: Testing team will meet, discuss and analyse testing artefacts
to identify strategies that have to be implemented in the future, taking
lessons from the current test cycle. The idea is to remove the process
bottlenecks for future test cycles and share best practices for any similar
projects in the future. This is the last stage of STLC in which the process of
testing is analysed.

Page 16 of 32
2.2 Methodologies for testing
Software Testing Methodology is defined as strategies and testing types used to
certify that the Application under Test meets client expectations. Selecting an
appropriate testing methodology is considered to be the core of the testing process.

2.2.1 Waterfall model


Waterfall model is an example of a Sequential model. In this model, the software
development activity is divided into different phases and each phase consists of
series of tasks and has different objectives.
In fact, it was the first model which was widely used in the software industry. It is
divided into phases and output of one phase becomes the input of the next phase. It
is mandatory for a phase to be completed before the next phase starts. In short,
there is no overlapping in Waterfall model.

Figure 6: Waterfall model

1 Requirement 1. Capture all the requirements.


Analysis 2. Do the requirements feasibility test to ensure that the requirements are
testable or not.

2 System Design 1. As per the requirements, create the design


2. Capture the hardware / software requirements.
3. Document the designs

3 Implementation 1. As per the design create the programs / code


2. Integrate the codes for the next phase.
3. Unit testing of the code

4 System Testing 1. Integrate the unit tested code and test it to make sure if it works as
expected.
2. Perform all the testing activities to make sure that the system meets the

Page 17 of 32
requirements.
3. In case of any anomaly, report it.

5 System 1. Make sure that the environment is up


Deployment 2. Make sure that the test exit criteria are met.
3. Deploy the application in the respective environment.
4. Perform a sanity check in the environment after the application is
deployed to ensure the application does not break.

6 System 1. Make sure that the application is up and running in the respective
maintenance environment.
2. In case user encounters and defect, make sure to note and fix the issues
faced.
3. In case any issue is fixed; the updated code is deployed in the
environment.
4.The application is always enhanced to incorporate more features, update
the environment with the latest features

Table 1: Phase explanation of Waterfall method.

Pros and Cons of waterfall model:


Advantages of using Waterfall model are as follows:
 Simple and easy to understand and use.
 For smaller projects, waterfall model works well and yield the appropriate
results.
 Since the phases are rigid and precise, one phase is done one at a time, it is
easy to maintain.
 The entry and exit criteria are well defined, so it easy and systematic to
proceed with quality.
 Results are well documented.

Disadvantages of using Waterfall model:


 Cannot adopt the changes in requirements
 It becomes very difficult to move back to the phase.
 Delivery of the final product is late as there is no prototype which is
demonstrated intermediately.
 For bigger and complex projects, this model is not good as a risk factor is
higher.
 Not suitable for the projects where requirements are changed frequently.
 Does not work for long and on-going projects.
 Since the testing is done at a later stage, it does not allow identifying
the challenges and risks in the earlier phase so the risk mitigation strategy
is difficult to prepare.

Page 18 of 32
2.2.2 Agile Testing
As the complexity of software development process is increasing continuously, the
software testing approaches needs to evolve to keep up with the development
approaches. Agile testing is a new age approach which focuses on testing smarter
rather than putting a lot of efforts yet it delivers high-quality products.
The testers and developers need a higher level of collaboration in Agile Testing.
The testers have to provide corrective feedback to the development team during the
development cycle. This is the age of on-going integration between testing and
development approaches.
Agile testing is a software testing process that follows the principles of agile
software development. Agile testing aligns with iterative Development
Methodology in which requirements develop gradually from customers and testing
teams. The development is aligned with customer requirements.
Agile testing is a continuous process rather than being sequential. The testing
begins at the start of the project and there is on-going integration between testing
and development. The common objective of agile development and testing is to
achieve a high product quality.

Advantages of Agile Testing


The benefits of the agile testing approach are as follows:
 It saves time and money
 Agile testing reduces documentation
 It is flexible and highly adaptable to changes
 It provides a way for receiving regular feedback from the end user
 Better determination of issues through daily meetings

Disadvantages of Agile model:


 Not suitable for complex projects.
 Requires heavy amount of interaction with the customer which may cause
delay.
 Misguidance of requirements may cause the incorrect development of the
software product.
 Increased maintainability risk.
 Handover to another team may be quite challenging.

Figure 7: Agile Testing

Page 19 of 32
3. Different Techniques of Testing
Software testing Techniques help you design better cases. Since exhaustive testing
is not possible; Testing Techniques help reduce the number of test cases to be
executed while increasing test coverage. They help identify test conditions that are
otherwise difficult to recognize.

3.1 Manual Testing


Manual Testing is a type of Software Testing where Testers manually execute test
cases without using any automation tools. Manual Testing is the most primitive of
all testing types and helps find bugs in the software system.
Any new application must be manually tested before its testing can be automated.
Manual Testing requires more effort but is necessary to check automation
feasibility.
Manual Testing does not require knowledge of any testing tool.

Goal of Manual Testing:


The key concept of manual testing is to ensure that the application is error free and
it is working in conformance to the specified functional requirements.
Test Suites or cases, are designed during the testing phase and should have 100%
test coverage.
It also makes sure that reported defects are fixed by developers and re-testing has
been performed by testers on the fixed defects.
Basically, this testing checks the quality of the system and delivers bug-free
product to the customer.

Types of Manual Testing:


Below given diagram depicts Manual Testing Types. In fact, any type of software
testing type can be executed both manually as well using an automation tool.
 Black Box Testing
 White Box Testing
 Unit Testing
 System Testing
 Integration Testing
 Acceptance Testing

Page 20 of 32
How to perform Manual Testing:
Read and understand the software project documentation/guides. Also, study the
Application under Test (AUT) if available.

1. Draft Test cases that cover all the requirements mentioned in the
documentation.
2. Review and baseline the test cases with Team Lead, Client (as applicable)
3. Execute the test cases on the AUT
4. Report bugs.
5. Once bugs are fixed, again execute the failing test cases to verify they pass.

Figure 8: Manual Testing

Pros of Manual Testing:


 Get fast and accurate visual feedback
 It is less expensive as you don't need to spend your budget for the
automation tools and process
 Human judgment and intuition always benefit the manual element
 While testing a small change, an automation test would require coding
which could be time-consuming. While you could test manually on the fly.

Cons of Manual Testing:


 Less reliable testing method because it's conducted the human. Therefore, it
is always prone to mistakes & errors.
 The manual testing process can't be recorded, so it is not possible to reuse
the manual test.
 In this testing method, certain tasks are difficult to perform manually which
may require an additional time of the software testing phase .
Page 21 of 32
3.2 AUTOMATED TESTING
Automation Testing means using an automation tool to execute your test case suite.
The automation software can also enter test data into the System under Test,
compare expected and actual results and generate detailed test reports. Test
Automation demands considerable investments of money and resources.
Successive development cycles will require execution of same test suite repeatedly.
Using a test automation tool, it's possible to record this test suite and re-play it as
required. Once the test suite is automated, no human intervention is required. This
improved ROI of Test Automation. The goal of Automation is to reduce the
number of test cases to be run manually and not to eliminate Manual testing
altogether.

Automated software testing is important due to the following reasons:


 Manual Testing of all workflows, all fields, all negative scenarios is time
and money consuming
 It is difficult to test for multilingual sites manually
 Automation does not require Human intervention. You can run automated
test unattended (overnight)
 Automation increases the speed of test execution
 Automation helps increase Test Coverage
 Manual Testing can become boring and hence error-prone.

Automation costs are really higher initially. It includes the cost of the tool, then the
cost of the automation testing resource and his/her training.
But when the scripts are ready, they can be executed hundreds of times repeatedly
with the same accuracy and rather quickly. This will save many hours of manual
testing. So the cost gradually decreases, and ultimately it becomes a cost-effective
method for Regression testing.

Automated Testing tool:

Out of many tools available for testing, we tend to prefer Selenium. Selenium is the
household name when it comes to test automation. It is considered the industry
standard for user interface automation testing of Web applications.
For developers and testers who have experience and skills in programming and
scripting, Selenium offers flexibility that is unseen in many other test automation
tools and frameworks. Users can write test scripts in many different languages (such
as Java, Groovy, Python, C#, PHP, Ruby, and Perl) that run on multiple system
environments (Windows, Mac, Linux) and browsers (Chrome, Firefox, IE, and
Headless browsers).

Page 22 of 32
Selenium has recently released its first alpha version of Selenium in April 2019.
The announcement of Selenium 4 official version is yet to be determined; but you
can expect the release would come with many improved and enriched features.
To use Selenium effectively, users have to possess advanced programming skills
and need to spend considerable time to build automation frameworks and libraries
necessary for automation.

Pros of automated testing:


 Automated testing helps you to find more bugs compare to a human tester
 As most of the part of the testing process is automated, you can have a
speedy and efficient process
 Automation process can be recorded. This allows you to reuse and execute
the same kind of testing operations
 Automated testing is conducted using software tools, so it works without
tiring and fatigue unlike humans in manual testing
 It can easily increase productivity because it provides fast & accurate testing
result
 Automated testing support various applications
 Testing coverage can be increased because of automation testing tool never
forget to check even the smallest unit

Cons of Automated Testing:


 Without human element, it's difficult to get insight into visual aspects of
your UI like colors, font, sizes, and contrast or button sizes.
 The tools to run automation testing can be expensive, which may increase
the cost of the testing project.
 Automation testing tool is not yet full proof. Every automation tool has their
limitations which reduces the scope of automation.
 Debugging the test script is another major issue in the automated testing.
Test maintenance is costly

Figure 9: Automated Testing

Page 23 of 32
3.3 Web Application Testing
Web application testing, a software testing technique exclusively adopted to test
the applications that are hosted on web in which the application interfaces and
other functionalities are tested.
Performance tools:
A web application performance tool (WAPT) is used to test web applications and
web related interfaces. These tools are used for performance, load and stress testing
of web applications, web sites, web API, web servers and other web interfaces.
WAPT tends to simulate virtual users which will repeat either recorded URLs or
specified URL and allows the users to specify number of times or iterations that the
virtual users will have to repeat the recorded URLs. By doing so, the tool is useful
to check for bottleneck and performance leakage in the website or web application
being tested.
A WAPT faces various challenges during testing and should be able to conduct
tests for:

 Browser compatibility
 Operating System compatibility
 Windows application compatibility where required
WAPT allows a user to specify how virtual users are involved in the testing
environment.ie either increasing users or constant users or periodic users load.
Increasing user load, step by step is called RAMP where virtual users are increased
from 0 to hundreds. Constant user load maintains specified user load at all time.
Periodic user load tends to increase and decrease the user load from time to time.

Web Application Testing - Techniques:


1. Functionality Testing: The below are some of the checks that are performed but
not limited to the below list:
 Verify there is no dead page or invalid redirects.
 First check all the validations on each field.
 Wrong inputs to perform negative testing.
 Verify the workflow of the system.
 Verify the data integrity.
2. Usability testing: To verify how the application is easy to use with.
 Test the navigation and controls.
 Content checking.
 Check for user intuition.

Page 24 of 32
3. Interface testing: Performed to verify the interface and the dataflow from one
system to other.
4. Compatibility testing: Compatibility testing is performed based on the
context of the application.
 Browser compatibility
 Operating system compatibility
 Compatible to various devices like notebook, mobile, etc .
5. Performance testing: Performed to verify the server response time and
throughput under various load conditions.
 Load testing
 Stress testing
 Soak testing
 Spike testing
6. Security testing: Performed to verify if the application is secured on web as
data theft and unauthorized access are more common issues and below are some
of the techniques to verify the security level of the system.
 Injection
 Broken Authentication and Session Management
 Cross-Site Scripting (XSS)
 Insecure Direct Object References
 Security Misconfiguration
 Sensitive Data Exposure

Figure 10: Web application testing

Page 25 of 32
3.4 Mobile Application Testing
Mobile Application Testing is a process by which a developed application of a
mobile device is tested for its functionality, consistence & usability. It can be
automated and manual. It almost goes through the normal testing process but the
testing techniques may vary for mobile devices.
A critical factor that you have to consider while doing test planning is checking the
Mobile Application type. You will mainly come across three types of mobile
applications: Mobile Web, Native App, and Hybrid App. The classification is
based on the development efforts and App redistribution strategy. Let's understand
each of them in detail.
1. Mobile Web:
Web apps are not real applications; they are actually websites that open in your
smartphone with the help of a web browser. Mobile websites have the broadest
audience of all the primary types of applications.
2. Native App:
A native app is developed specifically for one platform. It can be installed through
an application store (such as Google Play Store or Apple’s App Store).
3. Hybrid App:
Hybrid Apps are a way to expose content from existing websites in App format.
They can be well described as a mixture of Web App and Native App.
Preparing to Perform Mobile Device Testing:
The methodologies and devices to facilitate usability testing on phones, tablets,
and eReaders continue to develop. When planning mobile device testing, you
should keep in mind the following points −
 Your timeframe and budget. Having a good understanding of the timeframe
and the budget will help you determine which processes and equipment will
work best based your needs.
 The physical setup of the space and how you will capture the test. This may
range from a lower-fidelity arrangement to using a specialized platform and
camera device and/or maybe using an eye-tracking software.
 Your target audience and devices. Use web analytics to check how many
mobile users visit the site, which device they use, and their operating
system. Understanding this information will help you to know which devices
to test.

Another important aspect to cover after test planning is test device management.
In a large organization, handling mobile device testing needs a smart way to
Page 26 of 32
secure organization’s confidential data. To do this, you will need a security
software. In the following section, we will understand more on device
management tools.
 Usability testing– To make sure that the mobile app is easy to use and
provides a satisfactory user experience to the customers
 Compatibility testing– Testing of the application in different mobiles
devices, browsers, screen sizes and OS versions according to the
requirements.
 Interface testing– Testing of menu options, buttons, bookmarks, history,
settings, and navigation flow of the application.
 Services testing– Testing the services of the application online and offline.
 Low-level resource testing: Testing of memory usage, auto-deletion of
temporary files, local database growing issues known as low-level resource
testing.
 Performance testing– Testing the performance of the application by
changing the connection from 2G, 3G to WIFI, sharing the documents,
battery consumption, etc.
 Operational testing– Testing of backups and recovery plan if a battery goes
down, or data loss while upgrading the application from a store.
 Installation tests– Validation of the application by installing /uninstalling it
on the devices.
 Security Testing– Testing an application to validate if the information
system protects data or not.

Figure 11: Mobile Application Testing

Page 27 of 32
4. Execution
Here are some execution sheets which were made by me while performing manual
testing on the next to go live website of CresTech.

1. Each module of the website was to be covered on a separate sheet and


these can be made on tableau or excel whatever environment the
tester is comfortable on.
2. This document also contained a separate sheet called the default list
where all the bugs or the problems were mentioned in detail with their
priority.
3. There are proper formats which had to be followed to generate these
test scenarios, test plan and cases.

Page 28 of 32
Page 29 of 32
Page 30 of 32
Page 31 of 32
DEFAULT SHEET

Page 32 of 32

You might also like