<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Magesh Narayanan</title>
    <description>The latest articles on DEV Community by Magesh Narayanan (@magesh_narayanan_da14a227).</description>
    <link>https://dev.to/magesh_narayanan_da14a227</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3113419%2Fd86257aa-5976-4f82-bf8f-fe5f62951184.jpg</url>
      <title>DEV Community: Magesh Narayanan</title>
      <link>https://dev.to/magesh_narayanan_da14a227</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/magesh_narayanan_da14a227"/>
    <language>en</language>
    <item>
      <title>What is Selenium? Why do we use Selenium? What is the relevance of Selenium in automation testing using Python?</title>
      <dc:creator>Magesh Narayanan</dc:creator>
      <pubDate>Tue, 08 Jul 2025 11:12:28 +0000</pubDate>
      <link>https://dev.to/magesh_narayanan_da14a227/what-is-selenium-why-do-we-use-selenium-what-is-the-relevance-of-selenium-in-automation-testing-7g</link>
      <guid>https://dev.to/magesh_narayanan_da14a227/what-is-selenium-why-do-we-use-selenium-what-is-the-relevance-of-selenium-in-automation-testing-7g</guid>
      <description>&lt;p&gt;What is Automation Testing?&lt;br&gt;
Before diving into the tools of testing we should know what Automation Testing is, &lt;strong&gt;Automation Testing&lt;/strong&gt; is a software testing technique that uses &lt;strong&gt;automated tools and scripts&lt;/strong&gt; to execute test cases instead of performing them manually. The main goal is to &lt;strong&gt;increase efficiency, coverage, and accuracy&lt;/strong&gt; in the testing process.&lt;/p&gt;

&lt;p&gt;Here are some automation testing tools listed below&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;li&gt;Winrunner&lt;/li&gt;
&lt;li&gt;Silk Test&lt;/li&gt;
&lt;li&gt;TestComplete&lt;/li&gt;
&lt;li&gt;Tricentis Tosca&lt;/li&gt;
&lt;li&gt;NUnit&lt;/li&gt;
&lt;li&gt;Cucumber&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is Selenium?&lt;/strong&gt;&lt;br&gt;
Selenium is an open-source automated testing framework used to test and validate web application across different platforms and browsers. It allows testers to simulate user interaction with web browsers like clicking buttons, filling out forms, navigating web pages etc.&lt;br&gt;
Selenium supports many programming languages, for example&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;C#&lt;/li&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;R&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Selenium can be integrated with test frameworks like PyTest, UnitTest and TestNG and testing tools like Jenkins, Maven, Docker, etc for CI/CD (Continuous Integration/Continuous Delivery/Deployment).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do we use Selenium?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We widely use Selenium because of following advantages&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Browser Automation&lt;/strong&gt; – As Selenium is designed to use in web testing it is very easy to automate tasks like form submission, login automation.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Cross browser testing&lt;/strong&gt; – Selenium is easy to use to test in cross browsers i.e. Supports Chrome, Firefox, Safari, Edge&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Language Simplicity&lt;/strong&gt; – Works with many languages  like Java, C# etc. But Python is very popular due to its simplicity.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Open Source&lt;/strong&gt; – Selenium is OpnSource, so it is free to use with active community support.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Integration Support&lt;/strong&gt; – Works well with tools like Jenkins, Allure, Git, etc .&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Supports Parallel Testing&lt;/strong&gt; – Using tools like Selenium Grid for distributed testing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Relevance of Selenium in automation testing using Python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feature Description&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Feature&lt;/td&gt;
&lt;td&gt;Description&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ease of Use&lt;/td&gt;
&lt;td&gt;Python’s simple syntax makes writing and maintaining test scripts easier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Robust Libraries&lt;/td&gt;
&lt;td&gt;Python has powerful libraries like unittest, pytest, and pandas for testing and data handling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rapid Development&lt;/td&gt;
&lt;td&gt;Faster to develop automation scripts in Python that in other languages like Java.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Community Support&lt;/td&gt;
&lt;td&gt;As Python is open source Community supports are received frequently. In other words Strong community and frequent updates are available for Selenium and Python.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Automation Frameworks&lt;/td&gt;
&lt;td&gt;Easily integrates with frameworks like Robot framework, PyTest and Behave.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Simple Python Selenium scripts below for more understanding&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from selenium import webdriver
from selenium.webdriver.common.by import By

&amp;lt;!--Set up the browser driver (e.g., Chrome)--&amp;gt;
driver = webdriver.Chrome()

&amp;lt;!--Open a website--&amp;gt;
driver.get("https://example.com")

&amp;lt;!--Interact with an element (click a link)--&amp;gt;
driver.find_element(By.LINK_TEXT, "More information...").click()

&amp;lt;!--Close the browser--&amp;gt;
driver.quit()`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Significance of Python Virtual Environment</title>
      <dc:creator>Magesh Narayanan</dc:creator>
      <pubDate>Mon, 07 Jul 2025 17:48:27 +0000</pubDate>
      <link>https://dev.to/magesh_narayanan_da14a227/significance-of-python-virtual-environment-aim</link>
      <guid>https://dev.to/magesh_narayanan_da14a227/significance-of-python-virtual-environment-aim</guid>
      <description>&lt;p&gt;A Python Virtual Environment is a self-contained directory which contains specific Python interpreter and its own set of installed packages, completely isolated from the global Python installation (system-wide).&lt;br&gt;
Why Python Virtual Environment is important?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Project Isolation&lt;/strong&gt;&lt;br&gt;
Each project has its own dependencies, versions and configurations without affecting one another.&lt;br&gt;
Example:-&lt;br&gt;
Project A works in Django==3.2 &lt;br&gt;
Project B works in Django==4.0&lt;br&gt;
With virtual environment both can run without any conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoids Global package pollution&lt;/strong&gt;&lt;br&gt;
Installing packages globally can cause&lt;br&gt;
• Version conflicts&lt;br&gt;
• Overwriting&lt;br&gt;
• Errors in system tools or other projects&lt;br&gt;
Virtual Environment avoid this by keeping packages local to the projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reproducibility&lt;/strong&gt;&lt;br&gt;
You can freeze all packages used in a project into a requirements.txt file and recreate the environment anywhere.&lt;br&gt;
&lt;code&gt;bash&lt;br&gt;
CopyEdit&lt;br&gt;
pip freeze &amp;gt; requirements.txt&lt;br&gt;
Later...&lt;br&gt;
pip install -r requirements.txt&lt;/code&gt;&lt;br&gt;
Useful in team work, deployment tc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Need of Admin Rights&lt;/strong&gt;&lt;br&gt;
You don’t need administrator/root permissions to install packages inside a virtual environment.&lt;br&gt;
Great for restricted systems like University servers or Corporate machines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cleaner Development&lt;/strong&gt;&lt;br&gt;
You can easily create, activate, and delete environments without affecting anything outside your project.&lt;br&gt;
How to use Virtual Environment?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a Virtual Environment&lt;br&gt;
&lt;code&gt;bash&lt;br&gt;
CopyEdit&lt;br&gt;
python -m venv myenv&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Activate Virtual environment&lt;br&gt;
• On windows&lt;br&gt;
&lt;code&gt;bash&lt;br&gt;
CopyEdit&lt;br&gt;
myenv\Scripts\activate&lt;/code&gt;&lt;br&gt;
• On Linux/macOS&lt;br&gt;
&lt;code&gt;bash&lt;br&gt;
CopyEdit&lt;br&gt;
source myenv/bin/activate&lt;/code&gt;&lt;br&gt;
Now our shell prompt will change to show (myenv)—you're working inside the environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install Packages Locally&lt;br&gt;
&lt;code&gt;bash&lt;br&gt;
CopyEdit&lt;br&gt;
pip install requests&lt;/code&gt;&lt;br&gt;
requests will only be available inside myenv, not system-wide.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deactivate&lt;br&gt;
&lt;code&gt;bash&lt;br&gt;
CopyEdit&lt;br&gt;
Deactivate&lt;/code&gt;&lt;br&gt;
Using Virtual Environment in PyCharm&lt;br&gt;
When Creating a New Project:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to File &amp;gt; New Project&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select "New environment using venv"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PyCharm will automatically create and use that virtual environment.&lt;br&gt;
For Existing Project:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;File &amp;gt; Settings &amp;gt; Project &amp;gt; Python Interpreter&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Add&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose “Existing environment”&lt;br&gt;
Now PyCharm will run project using the virtual environment. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Python Selenium Architecture</title>
      <dc:creator>Magesh Narayanan</dc:creator>
      <pubDate>Mon, 07 Jul 2025 17:39:18 +0000</pubDate>
      <link>https://dev.to/magesh_narayanan_da14a227/python-selenium-architecture-4lpl</link>
      <guid>https://dev.to/magesh_narayanan_da14a227/python-selenium-architecture-4lpl</guid>
      <description>&lt;p&gt;The Python Selenium architecture is the structure that enables interaction between Python programs or codes with &lt;strong&gt;Web browser&lt;/strong&gt; through the Selenium Web Drivers API.&lt;br&gt;
It allows automation of web-based tasks like testing, form submissions, scraping etc. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;u&gt;Overview of Selenium&lt;/u&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;i.  Selenium is a web automation framework that allows us to programmatically control a web browser.&lt;/p&gt;

&lt;p&gt;ii. Python bindings for Selenium let us write scripts in Python to automate browser interactions like&lt;/p&gt;

&lt;p&gt;• Clicking buttons&lt;br&gt;
• Filling forms&lt;br&gt;
• Extracting information&lt;br&gt;
• Navigating to pages&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;u&gt;Architecture Components&lt;/u&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;a.  Python Script:&lt;/p&gt;

&lt;p&gt;i)  Here we write our Python test cases or automation scripts or logics are written on Python.&lt;br&gt;
ii) It uses Selenium Webdriver API (Python bindings) to send commands.&lt;/p&gt;

&lt;p&gt;b.  &lt;u&gt;Selenium Webdrive&lt;/u&gt; (Client API)&lt;/p&gt;

&lt;p&gt;• This is the core library that interacts with the browser specific driver. (ex: selenium.webdriver)&lt;br&gt;
• If translates Python commands into JSON protocol or W3C webdriver protocol commands.&lt;/p&gt;

&lt;p&gt;c.  &lt;u&gt;Browser Driver&lt;/u&gt; (like Chrome Driver, GeckoDriver)&lt;br&gt;
• Acts as a bridge between Selenium and web browser.&lt;br&gt;
• Receives commands from webdriver  in JSON format.&lt;br&gt;
• Executes those commands on the browser using the browser’s native automation support.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Chrome driver&lt;br&gt;
msedgedriver&lt;br&gt;
geckodriver&lt;/p&gt;

&lt;p&gt;d.  Web Browser&lt;br&gt;
• The browser where the test case or automation will run.&lt;br&gt;
• Executes the actions like clicking, scrolling, extracting etc.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Flow Diagram – How it works&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;java&lt;br&gt;
Python Script&lt;br&gt;
|&lt;br&gt;
Selenium Webdriver (Python Bindings)&lt;br&gt;
|&lt;br&gt;
     JSON over HTTP&lt;br&gt;
Browser Driver (ex. Chrome Driver)&lt;br&gt;
|&lt;br&gt;
Web Browser (ex. Chrome, Firefox etc)&lt;br&gt;
Example:&lt;/p&gt;

&lt;p&gt;• We write a Python command driver.get (“&lt;a href="https://examples.com%E2%80%9D" rel="noopener noreferrer"&gt;https://examples.com”&lt;/a&gt;)&lt;br&gt;
• Webdriver sends a JSON HTTP request to the browser driver&lt;br&gt;
• The browser driver translates it into native browser commands&lt;br&gt;
• Browser opens the URL&lt;br&gt;
• Driver sends back the response to the Webdriver, which our script receives.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Python Selenium Key Classes&lt;br&gt;
o   webdriver.chrome() or webdriver.Firefox() Launch Browser&lt;br&gt;
o   driver.get (url) Navigate to page&lt;br&gt;
o   driver.find_element (by element_id) Find element&lt;br&gt;
o   element.click(), element.send_keys(“text”) Interact with element&lt;br&gt;
o   driver.quit() Close Browser&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supported Browsers and Drivers&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Browser&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Driver&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome&lt;/td&gt;
&lt;td&gt;ChromeDriver&lt;/td&gt;
&lt;td&gt;Maintained by Chromium team&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox&lt;/td&gt;
&lt;td&gt;GeckoDriver&lt;/td&gt;
&lt;td&gt;Supports modern Firefox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge&lt;/td&gt;
&lt;td&gt;EdgeDriver&lt;/td&gt;
&lt;td&gt;Supports Chromium Edge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safari&lt;/td&gt;
&lt;td&gt;SafariDriver&lt;/td&gt;
&lt;td&gt;Built-in on macOS&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Key Features&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports headless execution&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can handle JavaScript-heavy websites&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can take screenshots, handle frames, alerts, and cookies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pytest and unittest are integrated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Disadvantages or Limitations&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Requires browser and driver compatibility&lt;/li&gt;
&lt;li&gt;It is less efficient for data extraction compared to headless APIs like requests&lt;/li&gt;
&lt;li&gt;It works only for web and will not work on desktop.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt; Installation
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash
CopyEdit
pip install selenium
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download required drivers and set it in the PATH.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tr colspan="1"&gt;
&lt;td&gt;Summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Component&lt;/td&gt;
&lt;td&gt;Description&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python Code&lt;/td&gt;
&lt;td&gt;Logic is written&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selenium WebDriver&lt;/td&gt;
&lt;td&gt;Python library to send commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser Driver&lt;/td&gt;
&lt;td&gt;Translator between Webdriver and Browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser&lt;/td&gt;
&lt;td&gt;Executes commands visually&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;╔══════════════════════╗&lt;br&gt;
║  Python Test Script  ║  ← we write code (e.g., login test)&lt;br&gt;
╚══════════════════════╝&lt;br&gt;
           ▼&lt;br&gt;
╔══════════════════════╗&lt;br&gt;
║ Selenium Python      ║  ← Converts Python commands into &lt;br&gt;
║   WebDriver Bindings ║      WebDriver API calls&lt;br&gt;&lt;br&gt;
╚══════════════════════╝&lt;br&gt;
           ▼&lt;br&gt;
╔═══════════════════════╗&lt;br&gt;
║ Real Browser (Chrome) ║  ← Performs actions like clicking, typing&lt;br&gt;
╚═══════════════════════╝&lt;br&gt;
           ▼&lt;br&gt;
╔═══════════════════════╗&lt;br&gt;
║ Web Application (Site)║  ← Target site to test/automate/scrape&lt;br&gt;
╚═══════════════════════╝&lt;/p&gt;

&lt;p&gt;We elaborate this with an example&lt;br&gt;
Consider we want to open a website and enter login credentials&lt;br&gt;
Step by step Python script&lt;br&gt;
&lt;code&gt;from selenium import webdriver&lt;br&gt;
from selenium.webdriver.common.by import By&lt;br&gt;
from selenium.webdriver.common.keys import keys&lt;br&gt;
import time&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 1: Launch  Browser using chrome driver&lt;br&gt;
driver = webdriver.Chrome()  #Make sure the Chrome driver is in the required path&lt;/p&gt;

&lt;p&gt;Step 2:  Open a website&lt;br&gt;
driver.get(“&lt;a href="https://example.com/login%E2%80%9D" rel="noopener noreferrer"&gt;https://example.com/login”&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Step 3: Find user name and password then enter values&lt;br&gt;
driver.find_element(By.ID, "username").send_keys("myuser")&lt;br&gt;
driver.find_element(By.ID, "password").send_keys("mypassword")&lt;/p&gt;

&lt;p&gt;Step 4: Submit the form&lt;br&gt;
driver.find_element(By.ID, "password").send_keys(Keys.ENTER)&lt;/p&gt;

&lt;p&gt;Step 5: Wait and close browser&lt;br&gt;
time.sleep(5)&lt;br&gt;
driver.quit()&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Manual Testing, its future with AI</title>
      <dc:creator>Magesh Narayanan</dc:creator>
      <pubDate>Thu, 01 May 2025 14:45:40 +0000</pubDate>
      <link>https://dev.to/magesh_narayanan_da14a227/manual-testing-its-future-with-ai-jcj</link>
      <guid>https://dev.to/magesh_narayanan_da14a227/manual-testing-its-future-with-ai-jcj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Software Testing definition?&lt;/strong&gt;&lt;br&gt;
Software testing is a systematic process for evaluating software product to identify defects and ensure whether the Software meets the required expectation.&lt;br&gt;
There are various techniques to identify the defects in various stages, which are listed below with explanation:&lt;br&gt;
&lt;strong&gt;Black Box Testing:&lt;/strong&gt;&lt;br&gt;
This technique is used to identify the defects in software functionality without looking into the code of the software. Testers use application’s interface and inputs is user defined to verify whether the software behaves as expected according to the requirement.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Imagine a car’s performance in which we focus on drives, handles, feature and comfortableness without knowing the engine’s inner part’s capacity.&lt;br&gt;
&lt;strong&gt;White Box Testing:&lt;/strong&gt; &lt;br&gt;
White box is contrast to Black Box. In Black box code will not be considered, but in white box it involves in testing internal code and structure. This testing is done by designing test cases for verify code structure, logic and behavior.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Imagine a car’s performance in which we focus on engine’s inner part’s capacity and performance without knowing the design and comfortableness.&lt;br&gt;
&lt;strong&gt;Grey Box Testing:&lt;/strong&gt;&lt;br&gt;
This is the combination of Black Box Testing and White Box Testing, testers will have some knowledge on internal structure or data this allows them to test in more targeted tests but still focusing on application’s functionalities in the user’s perspective.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Imagine Task Management Application where sending the weekly update on every Friday.&lt;br&gt;
&lt;strong&gt;Exploratory Testing:&lt;/strong&gt;&lt;br&gt;
This testing is an unstructured testing where testing is done without any predefined plan. This helps the testers to reveal unexpected issues and also identify the potential or important areas to improve from user perspective.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Testing a new login page with different combination of possibilities, both success and fail cases.&lt;br&gt;
&lt;strong&gt;Usability Testing:&lt;/strong&gt;&lt;br&gt;
This testing is done to explore user friendliness for the software. Testers interact with the application by interacting and find usability issues. Which will be helpful to improve the usability of the application?&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; User is asked to search for available wished product using the search bar in e-commerce website. Testers are asked to test the application after the users reported difficulties in application to shop the product.&lt;br&gt;
&lt;strong&gt;Functional Testing:&lt;/strong&gt;&lt;br&gt;
This testing includes many sub level testing techniques to verify software’s ability to perform intended requirements. Some of the types are listed below&lt;br&gt;
&lt;strong&gt;Smoke Testing:&lt;/strong&gt; &lt;br&gt;
A quick check to confirm the software is stable and ready to undergo more extensive testing. This testing done by developers, testers will not involve in this testing phase.&lt;br&gt;
This testing will be done on checking critical functionality of the software.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Very common example for Smoke Testing ins Login page, where user login with correct credentials and check whether the page navigates to correct destination.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Sanity Testing:&lt;/strong&gt;&lt;br&gt;
This testing is done after a bug fix or small changes to application. Purpose of testing is to identify whether any new issues introduced which affects the progress of testing.&lt;br&gt;
This testing will be done on checking area of minor functionalities. This testing will be done by testers and developers will not be involved in this testing.&lt;br&gt;
This is also a sub set of regression testing.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Imagine a e-commerce website where there is an issue in payment gateway, developer fixed the issue and its working fine but tester need to check whether the related area affected due to the fix.&lt;br&gt;
&lt;strong&gt;Regression Testing:&lt;/strong&gt; &lt;br&gt;
This testing is done to verify whether any new issues are introduced due to new code change which affects existing functionality are broken.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Imagine a e-commerce website which need to enhance the site by including wish list, tester will check by adding the wish list whether existing login system work fine, shopping cart and checkout remains fine and accurate.&lt;br&gt;
&lt;strong&gt;Re-testing:&lt;/strong&gt;&lt;br&gt;
This testing is done to verify whether reported bugs are fixed and also verifying whether the fixed bugs cause any other introduced issues.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Let’s take save as button, while testing first it’s not working and issue is reported to developer and it was fixed. Tester again tests the same functionality and confirms its working as expected.&lt;br&gt;
&lt;strong&gt;Acceptance Testing:&lt;/strong&gt;&lt;br&gt;
This testing is done before the final release of the application, to confirm whether the application meets the required requirement and user expectation of the application.&lt;br&gt;
&lt;strong&gt;Non-functional Testing:&lt;/strong&gt;&lt;br&gt;
Non-functional testing check the non-functional attributes of any software like performance, usability, reliability, security, visual testing.&lt;br&gt;
&lt;strong&gt;Performance Testing:&lt;/strong&gt;&lt;br&gt;
Testing involves testing Load, Stress, and spike which ensures software resilience.&lt;br&gt;
&lt;strong&gt;Load Testing:&lt;/strong&gt;&lt;br&gt;
Testing done to identify the system’s behavior under both normal and peak load conditions. For example we take result publishing.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Results will be published all over the division the browser should not hang, crash the system or browser.&lt;br&gt;
Considering another example is OTT, where users are streaming the same content in same time which ensures smooth playback and prevent buffering.&lt;br&gt;
&lt;strong&gt;Stress Testing:&lt;/strong&gt;&lt;br&gt;
Stress Testing is performed to verify whether the system, application performs under the extreme or abnormal conditions. This stress testing is not designed to handle nor scenario but to hands beyond the limits or capacity of application or website.&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Simulating a website’s ability to handle the raise of traffic during publishing of results which pushes beyond its normal limits which uses to find the failure points and bottlenecks of the website.&lt;br&gt;
&lt;u&gt;&lt;strong&gt;Boundary Value Analysis&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
Boundary Value Analysis is testing two values for each boundary, i.e. testing the boundary and adjacent of boundary. This testing is performed to verify the potential errors that may occur near boundaries.&lt;br&gt;
&lt;strong&gt;&lt;u&gt;Decision Table Testing&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Decision table testing is useful for systems with complex business rules where different combinations of input result in different outcomes.&lt;br&gt;
Below is the Decision Table&lt;br&gt;
    Stubs   Entries&lt;br&gt;
Conditionc1&lt;br&gt;
c2&lt;br&gt;
c3&lt;br&gt;&lt;br&gt;
Action  a1&lt;br&gt;
a2&lt;br&gt;
a3&lt;br&gt;
a4  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Condition Stubs:&lt;/strong&gt; Conditions are listed below the Stubs (c1, c2, c3) which are used to determine a particular action or set of action.&lt;/li&gt;
&lt;li&gt; Action Stubs: Action Stubs are below the condition stubs i.e lower left portion of the decision table.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Condition Entries:&lt;/strong&gt; Rules are given in condition entries which contain several rows and columns.  Values are given in upper right portion of the table.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Action Entries:&lt;/strong&gt; In the action entry, every entry has some associated action or set of actions in the lower right part of the table and these values are called as outputs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The future of manual testing in the age of AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Manual testing &lt;strong&gt;&lt;u&gt;never ends&lt;/u&gt;&lt;/strong&gt;, because AI cannot think like a user and also cannot do domain-specific testing which only Manual tester can do.  Manual testing has both confident and adaptive in testing. Manual testers can analyze the complex code and undergo testing but AI cannot. &lt;/p&gt;

</description>
      <category>manual</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
