<?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>Forem: Dhanusriya Sugananth</title>
    <description>The latest articles on Forem by Dhanusriya Sugananth (@dhanusriya_sugananth_a6b2).</description>
    <link>https://forem.com/dhanusriya_sugananth_a6b2</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%2F3855349%2Fd4c23e0b-0585-4446-a88a-130a97dd107b.jpg</url>
      <title>Forem: Dhanusriya Sugananth</title>
      <link>https://forem.com/dhanusriya_sugananth_a6b2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dhanusriya_sugananth_a6b2"/>
    <language>en</language>
    <item>
      <title>Understanding Python Selenium Architecture &amp; Virtual Environment</title>
      <dc:creator>Dhanusriya Sugananth</dc:creator>
      <pubDate>Fri, 01 May 2026 11:54:09 +0000</pubDate>
      <link>https://forem.com/dhanusriya_sugananth_a6b2/understanding-python-selenium-architecture-virtual-environment-4g6m</link>
      <guid>https://forem.com/dhanusriya_sugananth_a6b2/understanding-python-selenium-architecture-virtual-environment-4g6m</guid>
      <description>&lt;h2&gt;
  
  
  1. PYTHON SELENIUM ARCHITECTURE
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      Selenium is one of the most widely used tools for automating web applications. When we use Selenium with Python, the architecture follows a structured flow that allows script to interact with browser efficiently.
  At a high level, Selenium architecture consistes of 4 main components:

     **1. Selenium Client Library(Python)**
               The test scripts stays at this component. When writing automation code using Python, we use Selenium libraries like webdriver, find_element, etc.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://google.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, Python acts as a client that sends instructions.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     **2. WebDriver**
              WebDriver acts as a bridge between Python code and the browser. It translates the commands into a format the browser understands.

             Example:
                 -&amp;gt; driver.get() - opens a webpage
                 -&amp;gt; driver.find_element() - locates elements

      ** 3. Browser Driver**
                Each browser has its own driver such as:
                  1. Chrome -&amp;gt; ChromeDriver
                  2. Firefox -&amp;gt; GeckoDriver
                  3. Egde -&amp;gt; EdgeDriver

              These drivers receive commands from WebDriver and execute them inside the browser.

         **4. Real Browser**
                 The actual browser (Chrome, Firefox) performs the actions like:
                 -&amp;gt; Clicking buttons
                 -&amp;gt; Filling forms
                 -&amp;gt; Navigating pages


## **FLOW OF EXECUTION:**
   1. Python Selenium code is written
   2. Selenium Client library sends commands
   3. WebDriver converts commands into JSON format
   4. Browser Driver receives the request
   5. Browser executes te action
   6. Response is sent back to the script


## **ARCHITECTURAL DIAGRAM:**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff6xqw7jifued81z54bme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff6xqw7jifued81z54bme.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   **REAL-TIME EXAMPLE:**
       Let's test a login page:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/login&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pass123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;login&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     In the above code,
      -&amp;gt; python sends commands
      -&amp;gt; WebDriver processes them
      -&amp;gt; ChromeDriver executes them
      -&amp;gt; Browser performs login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;2. SIGNIFICANCE OF PYTHON VIRTUAL ENVIRONMENT:&lt;/strong&gt;
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       A python virtual environment is used to create an isolated workspace for the project. It helps manage dependencies separately without affecting othe projects.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;**        WHY IS IT IMPORTANT?**&lt;br&gt;
            In real-world projects, different applications may require different versions of libraries.&lt;br&gt;
           Without virtual environment,&lt;br&gt;
              - Project A -&amp;gt; Selenium 3&lt;br&gt;
              - Project B -&amp;gt; Selenium 4&lt;br&gt;
        This will create conflicts amond the versions.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       With virtual environment:
           - Each project has its own dependencies
           - No version clashes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;** HOW IT WORKS?**&lt;br&gt;
         We'll have to create a virtual environment using the below bash commands:&lt;br&gt;
&lt;code&gt;python -m venv myenv&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To activate it
&lt;code&gt;myenv\Scripts\activate&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Install packages&lt;br&gt;
&lt;code&gt;pip install selenium&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now Selenium is installed only inside this environment that has been created.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; **Advantages:**
      1. Dependency isolation
      2. Cleaner project structure
      3. Easy to manage versions
      4. Avoids conflicts between projects
      5. Improves reproducibility
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;CONCLUSION:&lt;/strong&gt;&lt;br&gt;
         Puthon Selenium architecture ensures smooth communication between test scripts and browsers using WebDriver and browser drivers. On the other hand, virtual environments help maintain clean, isolates project setups, which is crucial for real-time development and testing. Together, they make automation more efficient, scalable and reliable.&lt;/p&gt;

</description>
      <category>python</category>
      <category>selenium</category>
      <category>automation</category>
    </item>
    <item>
      <title>Selenium with Python: A guide to Automation Testing</title>
      <dc:creator>Dhanusriya Sugananth</dc:creator>
      <pubDate>Wed, 29 Apr 2026 06:37:25 +0000</pubDate>
      <link>https://forem.com/dhanusriya_sugananth_a6b2/selenium-with-python-a-guide-to-automation-testing-45m0</link>
      <guid>https://forem.com/dhanusriya_sugananth_a6b2/selenium-with-python-a-guide-to-automation-testing-45m0</guid>
      <description>&lt;p&gt;In today's fast-paced software development world, delivering high-quality applications quickly is essential. Manual testing alone is often not enough to keep up with rapid releases. This is where automation tools like Selenium play a crucial role. Automation tools like Selenium are widely used where doing testing manually again and again is time-consuming and prone to errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What's Selenium?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It's an &lt;strong&gt;open-source tool&lt;/strong&gt; used to automate web browsers. It helps testers simulate real user actions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clicking buttons&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Filling forms&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Navigating pages&lt;/p&gt;

&lt;p&gt;It supports &lt;strong&gt;multiple browsers&lt;/strong&gt; like &lt;strong&gt;Chrome, Firefox, Edge and Safari&lt;/strong&gt;, making it highly versatile. Selenium is not just a single tool - it consists of &lt;strong&gt;components&lt;/strong&gt; such as &lt;strong&gt;Selenium Webdriver, Selenium IDE and Selenium Grid&lt;/strong&gt;. Most commonly used part of Selenium is WebDriver, which directly controls the browser.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Use Selenium for Automation?&lt;/strong&gt;&lt;br&gt;
      The main reason for using Selenium is to reduce manual effort and improve testing efficiency. Instead of repeatedly performing the same test steps, automation scripts can execute then quickly and accurately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;br&gt;
         -&amp;gt; Works on multiple browsers (Chrome, Firefox, Edge)&lt;br&gt;
         -&amp;gt; Saves time by automating repetitive tasks&lt;br&gt;
         -&amp;gt; Reduces human errors&lt;br&gt;
         -&amp;gt; Supports multiple languages (Python, C#, Java)&lt;br&gt;
         -&amp;gt; Easily integrated with CI/CD tools like Jenkins&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;/strong&gt; Instead of manually testing login functionality 50 times, Selenium can do it in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Selenium with Python?&lt;/strong&gt;&lt;br&gt;
        Selenium supports many programming languages like Java, C# and Javascript. But Python is one of the most preferred choices, especially for begineers and even for many real-time projects.&lt;br&gt;
&lt;strong&gt;Reasons:&lt;/strong&gt;&lt;br&gt;
       1. Simple and readable syntax&lt;br&gt;
            Python code looks very close to normal English, so it's easy to understand and write.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;login&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Even if you're new, you can easily understand what this line does.&lt;br&gt;
In Java, the same code would be longer and more complex.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   2. Less code compared to other languages
         It can be easily maintained with less errors.

   3. Beginner-friendly
         If you're new to automation testing, Python is the easiest language to start with.
      -&amp;gt; No complex syntax
      -&amp;gt; No need for deep programming knowledge
      -&amp;gt; Easy to learn in a short time

   4. Strong community support
        Python has a huge global community. If you get stuck, help is easily available.

   5. Powerful Framework Support
       Python supports testing frameworks that make automation more structured.
          # PyTest -&amp;gt; simple and powerful
          # Unittest -&amp;gt; built-in framework
      These frameworks helps in writing test cases, generating reports and running multiple tests easily.

   6. Easy Integration with Tools
         It can be easily integrated with:
             1. Jenkins (CI/CD tool)
             2. GitHub (version control)
             3. Allure(reporting)
         This helps in running tests automatically whenever code changes.

   7. Rich Libraries &amp;amp; Ecosystem
          Python has many useful libraries that improve automation:
             -&amp;gt; requests -&amp;gt; API testing
             -&amp;gt; pandas -&amp;gt; data handling
             -&amp;gt; openpyxl -&amp;gt; Excel operations
         You can combine UI + API + data testing in one project. 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Selenium python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;submit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;&lt;strong&gt;Explanation of the script above:&lt;/strong&gt;&lt;/em&gt; &lt;br&gt;
          1. It opens the browser&lt;br&gt;
          2. Goes to the given URL web page&lt;br&gt;
          3. Performs search operation automatically&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldz39z2w8g4hyvpawlw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldz39z2w8g4hyvpawlw9.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Where is Selenium used?&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Regression testing&lt;/li&gt;
&lt;li&gt;Smoke testing&lt;/li&gt;
&lt;li&gt;UI Testing&lt;/li&gt;
&lt;li&gt;Cross-browser testing&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Limitations of Selenium:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Works only for web applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Required programming knowledge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No built-in reporting(needs external tools)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion:&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Selenium is one of the best tools for web automation testing.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;When combined with Python, it becomes even more effective, especially for beginner and teams aiming for faster development cycles. As automation continues to grow, learning Selenium with Pyton is a valuable skill for anyone entering into the software testing field.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;It helps teams to
    * Deliver work faster
    * Reduce manual effort
    * Improve software quality
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>selenium</category>
      <category>automationtesting</category>
      <category>python</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Manual Testing and Future in the Age of AI</title>
      <dc:creator>Dhanusriya Sugananth</dc:creator>
      <pubDate>Thu, 02 Apr 2026 08:38:59 +0000</pubDate>
      <link>https://forem.com/dhanusriya_sugananth_a6b2/manual-testing-and-future-in-the-age-of-ai-4gkp</link>
      <guid>https://forem.com/dhanusriya_sugananth_a6b2/manual-testing-and-future-in-the-age-of-ai-4gkp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Common Manual Testing Techniques&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Manual testing is the process of testing a software application without using any automation tools. In this method, the tester assumes as the end user and checks on the application whether its working as expected.
  Below are the commonly used manual testing techniques.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;BLACK BOX TESTING&lt;/strong&gt;&lt;br&gt;
    Black box testing is a method where the tester does not know what's happening internally with the code and logic of the application.  They only have knowledge on the input and the expected output.&lt;br&gt;
    The main goal is to check on the application whether it's giving the correct output for the given input.&lt;/p&gt;

&lt;p&gt;Example: In any login page of an application, if username and password are provided, the user should either be able to login successfully or an error message should be displayed.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Black box is mainly divided into:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  1. **Functional Testing**:
       It checks whether the features of the application are working as expected.

     **TYPES OF FUNCTIONAL TESTING:**

         1. **SMOKE TESTING:** Checks whether the basic features of the application are working as expected.
         2. **SANITY TESTING:** Checks a specific functionaity after any small changes are made in the application.
         3. **REGRESSION TESTING**: Ensures existing features are not affected after the new changes in the application.
         4. **RETESTING**: Verifies that a previously failed test cases are fixed and working as expected.
         5. **INTEGRATION TESTING**: Checks whether different modules/features work together correctly.
         6. **UNTI TESTING**: Tests individual components/features of the application. Mostly this is performed by developers.
         7. **EXPLORATORY TESTING**: Tester explores the application without any test cases preparation.
         8. **AD-HOC TESTING**: Random testing without any planning.
         9. **END-TO-END TESTING**: Tests the complete working of the application.
        10. **USER ACCEPTANCE TESTING(UAT)**: This is performed by end users/clients to check if the system is working based on the requirement provided.

2. **NON-FUNCTIONAL TESTING**:
       It checks on the working of the system rather focusing on what it does. It helps in improving the overall user experience of the application.

       **TYPES OF NON-FUNCTIONAL TESTING:**

         1. **PERFORMACE TESTING:** Checks how fast and responsive the application works.
         2. **USABILITY TESTING**: Checks whether the application is easy to use and user-friendly.
         3. **SECURITY TESTING:** Checks whether the application is protected from all kind of unauthorized access
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;WHITE BOX TESTING&lt;/strong&gt;&lt;br&gt;
    White box testing is a method where the tester has knowledge about the internal working of the code and the application structure. They check how the code works internally if there's any problem or confusion when testing.&lt;br&gt;
    This test is mostly done by developers or testers with programming knowledge.&lt;/p&gt;

&lt;p&gt;Example: Checking on the conditions or the looping statements in the code and confirming that they're working as expected.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GREY BOX TESTING:&lt;/strong&gt;&lt;br&gt;
     It's a combination of black box testing and white box testing  which means the tester has partial knowledge of the internal code. It helps in testing both functionality and internal system.&lt;/p&gt;

&lt;p&gt;Example: Tester knows some backend logic but tests through the UI.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;BOUNDRY VALUE ANALYSIS (BVA):&lt;/strong&gt;&lt;br&gt;
        BVA is a testing technique used to test values at the boundaries(edges) of an input range.&lt;br&gt;
           As mostly errors occur at the minimum and maximum limits rater that at the middle values. Therefore, instead of testing all inputs, testers can mainly focus on boundary values.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**IMPORTANCE OF BOUNDARY VALUES:**
 1. Most defects occur at edge values
 2. Reduces the no. of test cases
 3. Improves test coverage
 4. Saves time and effort
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;WORKING OF BVA:&lt;/strong&gt;&lt;br&gt;
    In BVA, the below values are tested:&lt;br&gt;
       . Minimum value (n)&lt;br&gt;
       . Above minimum (n+1)&lt;br&gt;
       . Maximum value (n)&lt;br&gt;
       . Below maximum (n-1)&lt;br&gt;
       . Values outside the range(invalid values)&lt;/p&gt;

&lt;p&gt;EXAMPLE:&lt;br&gt;
    Consider an input that has values from 1 to 100&lt;/p&gt;

&lt;p&gt;On applying BVA: n = 1&lt;br&gt;
       -&amp;gt; 0 = invalid (n-1)&lt;br&gt;
       -&amp;gt; 1 = minimum value (n)&lt;br&gt;
       -&amp;gt; 2 = above minimum (n+1)&lt;br&gt;
       -&amp;gt; 99 = below minimum (n -1)&lt;br&gt;
       -&amp;gt; 100 = maximum value (n)&lt;br&gt;
       -&amp;gt; 101 = invalid (n+1)&lt;/p&gt;

&lt;p&gt;Therefore, instead of testing all number between 1 to 100, we only test the edge values. 1 and 100 are boundaries. &lt;br&gt;
-&amp;gt; Values around them (2 and 99) are also tested because errors usually occur near these limits.&lt;br&gt;
-&amp;gt; Invalid values like 0 and 101 are tested to check if system correctly eliminates them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DECISION TABLE TESTING:&lt;/strong&gt;&lt;br&gt;
         Decision Table Testing is a technique used to test systems where the output depends on multiple conditions. It helps in identifying all possible combinations of inputs and ensures that every scenario is tested.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**IMPORTANCE OF DECISION TABLE TESTING:**
  . It reduces missing test cases
  . It's highly useful for complex business logics
  . Improves test coverage
  . Easy to understand for simple conditions

EXAMPLE:
  Consider an ATM Machine it has conditions like:
     1. Card is valid
     2. PIN is correct

 |-------------------------------------------|
 |  Card Valid   PIN Correct     Result      |
 |-------------------------------------------|
 |     Yes           Yes      Cash withdrawn |
 |     Yes           No        Error Message |
 |     No            Yes       Error Message | 
 |     No            No        Error Message |
 |-------------------------------------------|
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;FUTURE OF MANUAL TESTING IN THE AGE OF AI&lt;/strong&gt;&lt;br&gt;
         The growth of AI and automation tools is changing rapidly where many testing tasks are now handed by automation, which actually saves time an effort.&lt;br&gt;
    However, manual testing still plays an important role an will continue to do so in future as well.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**ROLE OF AI IN TESTING:**
        AI helps in improving the testing process by automating test cases, reducing human efforts, increasing speed and efficiency and identifying the possible defects.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;MANUAL TESTING IS IMPORTANT:&lt;/strong&gt;&lt;br&gt;
           Even with AI, manual testing cannot be completely replaced because, humans can think logically and identify unexpected issues that tools may fail to do until there's an external information provided to them that there's a defect occurring.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       Manual Testers can check user interface and overall experience and the ease of use of the application.

        Exploratory testing required human creativity and understanding, which AI cannot fully achieve.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;FUTURE OF TESTING:&lt;/strong&gt;&lt;br&gt;
         It'll surely be a combination of both manual and automation testing.&lt;br&gt;
      -&amp;gt; Testers will use automation tools for tasks that indeed saves time and effort and gives higher productivity.&lt;br&gt;
      -&amp;gt; Manual testing will focus on complex and critical scenarios.&lt;/p&gt;

&lt;p&gt;Manual testing is not going away but is evolving with technology. AI will support testers and will not replace as human skills like thinking, creativity and understanding user behavior will always be important. &lt;br&gt;
   Therefore, &lt;strong&gt;MANUAL TESTING + AI = BEST TESTING&lt;/strong&gt; and learning manual testing makes the strongest foundation for a career in software testing.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>testing</category>
      <category>manualtesting</category>
      <category>softwaretesting</category>
    </item>
  </channel>
</rss>
