Testing Concepts and Methodologies

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

Testing Concepts and Methodologies

What is Software Testing:


Software testing is the process of checking the quality, functionality, and performance of
a software product before launching. To do software testing, testers either interact with
the software manually or execute test scripts to find bugs and errors, ensuring that the
software works as expected.

Types of Software Testing:

What is Functional Testing?

Functional Testing is a type of software testing that validates the software system
against the functional requirements/specifications. The purpose of Functional tests is to
test each function of the software application, by providing appropriate input, verifying
the output against the Functional requirements.

Functional testing mainly involves black box testing, and it is not concerned about the
source code of the application. This testing checks User Interface, APIs, Database,
Security, Client/Server communication and other functionality of the Application Under
Test. The testing can be done either manually or using automation.
Functional Testing Types

Here are Examples of Functional Testing Types

• Unit testing
• Smoke testing
• User Acceptance
• Integration Testing
• Regression testing
• Localization
• Globalization
• Interoperability

Unit Testing

Unit Testing is a type of software testing where individual units or components of a


software are tested. The purpose is to validate that each unit of the software code
performs as expected. Unit Testing is done during the development (coding phase) of
an application by the developers.

Smoke Testing

Smoke testing, also known as “Build Verification Testing” or “Build Acceptance


Testing,” is a type of software testing that is typically performed at the beginning of
the development process to ensure that the most critical functions of a software
application are working correctly.

User Acceptance Test

The User Acceptance Test (UAT) process is a crucial phase in software development
and implementation. It involves testing a software application or system from the end-
user's perspective to ensure its functionality, usability, and compatibility with real-world
scenarios.

Integration testing

Integration testing is a type of software testing where components of the software are
gradually integrated and then tested as a unified group. Usually, these components are
already working well individually, but they may break when integrated with other
components.
Regression Testing
Regression testing is a crucial aspect of software engineering that ensures the stability
and reliability of a software product. It involves retesting the previously tested
functionalities to verify that recent code changes haven’t adversely affected the
existing features.
By identifying and fixing any regression or unintended bugs, regression testing helps
maintain the overall quality of the software. This process is essential for software
development teams to deliver consistent and high-quality products to their users.

Localization testing

Localization testing involves verifying that the application works correctly in the local
environment, such as the correct translation of the text, the use of appropriate
symbols and characters, and compliance with local regulations and standards

Globalization Testing

Globalization Testing is a type of software testing that is performed to ensure the


system or software application can function independently of the geographical and
cultural environment. It ensures that the application can be used all over the world and
accepts all language texts

Interoperability testing
Interoperability testing is a type of software testing that verifies the compatibility and
communication of different systems, applications, or devices. It ensures that the data
exchange and functionality are consistent and reliable across various platforms and
environments.

What is Non Functional Testing?


Non-functional testing is a software testing type that tests the non-functional aspects of
an application,
such as usability, performance, scalability, reliability, security, compatibility, and more.
In contrast, functional testing focuses on testing its functional behavior. Simply put, non-
functional testing checks the product’s quality rather than its features.
You need to understand the impact that non-functional testing has on a product. In the
world of software development, non-functional testing is as necessary as functional
testing. Without it, a system may work perfectly fine in a controlled environment but may
fail spectacularly in the real world.
What is Software Testing Life Cycle (STLC)?

Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during
the testing process to ensure software quality goals are met. STLC involves both
verification and validation activities.

STLC has the following different phases, but it is not mandatory to follow all phases.
Phases are dependent on the nature of the software, or the product, time and resources

allocated for the testing and the model of SDLC that is to be followed.

 Requirement Analysis − When the SRD is ready and shared with the
stakeholders, the testing team starts high level analysis concerning the AUT
(Application under Test).

 Test Planning − Test Team plans the strategy and approach.

 Test Case Designing − Develop the test cases based on scope and criteria’s.

 Test Environment Setup − When integrated environment is ready to validate


the product.

 Test Execution − Real-time validation of product and finding bugs.

 Test Closure − Once testing is completed, matrix, reports, results are


documented.

What is a Bug/Defect?

A defect is an error or bug in an application that is created during the building or


designing of software and due to which software starts to show abnormal behaviors
during its use.

So, it is one of the important responsibilities of the tester to find as much as defect
possible to ensure the quality of the product is not affected and the end product is
fulfilling all requirements perfectly for which it has been designed and provide required
services to the end-user. Because as many defects will be identified and resolved then
the software will behave perfectly as per expectation.
What is a Defect Life Cycle?
In the Software Development Process, Defect Life Cycle is the life cycle of a defect or
bug which it goes through covering a specific set of states in its entire life. Mainly bug
life cycle refers to its entire state starting from a new defect detected to the closing off
that defect by the tester. Alternatively, it is also called a Bug Life Cycle

Methodologies Used - Agile


What is the Agile methodology?
Agile methodology is a project management framework that breaks projects down
into several dynamic phases, commonly known as sprints.
The Agile framework is an iterative methodology. After every sprint, teams reflect
and look back to see if there was anything that could be improved so they can
adjust their strategy for the next sprint.
Project Management Tool
1.Azure Dev Ops
Azure DevOps is a software as a service (SaaS) platform that provides DevOps
practices and tools for the end-to-end software life cycle. Azure DevOps is not limited to
internal tools but is able to integrate with most other industry leading Dev Ops tools.
Below are the various services provided by Azure DevOps:

Azure Boards – agile planning, work item tracking, dashboard visualization and
reporting

Example of Azure Board


Test Design with Azure

Test Execution with Azure


2.Jira
What is Jira
Jira is an agile project management tool used by teams to plan, track, release and
support world-class software with confidence.
Jira is used by a large number of clients and users globally for projects, time,
requirements, task, bug, change, code, test, release and sprint management.

Example of Jira Board


Test Design with Jira (Zephyr Plugin)

Test Execution with Jira (Zephyr Plugin)


Database Testing
Database testing, also known as db testing, is the process of assessing database
systems to ensure data accuracy, reliability, and performance. It involves the use of
database testing tools to guarantee consistency, validity, and the ability to manipulate
data for business requirements.

Queries Used for Database Testing


Select Query
The SELECT statement is used to select data from a database.
Syntax
SELECT column1, column2, ... FROM table_name;
Insert Query
The INSERT INTO statement is used to insert new records in a table.
Syntax
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Update Query

The UPDATE statement is used to modify the existing records in a table.


Syntax
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Delete Query

The DELETE statement is used to delete existing records in a table.

Syntax
DELETE FROM table_name WHERE condition;
Tools Used for Database Testing
 Aqua Data Studio
 PostgreSQL
 DBeaver

Automation Testing
What is automated testing?
Automated testing is a software testing technique that automates the process of
validating the functionality of software and ensures it meets requirements before being
released into production. With automated testing, an organization can run specific
software tests at a faster pace without human testers. Automated testing is best suited
for large or repetitive test cases.

Advantages of Automated Testing:


1. It improves the coverage of testing as automated execution of test cases is faster
than manual execution.
2. It reduces the dependability of testing on the availability of the test engineers.
3. It provides round the clock coverage as automated tests can be run all the time in
24*7 environment.
4. It takes far less resources in execution as compared to manual testing.
5. It helps to train the test engineers to increase their knowledge by producing a
repository of different tests.

Disadvantages of Automated Testing:


1. Automated testing is much more expensive than manual testing.
2. It also becomes inconvenient and burdensome when to decide who would automate
and who would train.
3. It has limited to some organizations as many organizations do not prefer test
automation.
4. Automated testing would also require additionally trained and skilled people.
5. Automated testing only removes the mechanical execution of testing process, but
creation of test cases still required testing professionals
Tools Used for Automation
• Selenium
• Katalon
• Playwright
• Cypress
• Appium

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy