<?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: Vidhya</title>
    <description>The latest articles on DEV Community by Vidhya (@vidhyarjun).</description>
    <link>https://dev.to/vidhyarjun</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%2F3484836%2Fda79c4e2-b14f-4cb9-b735-37c37b76ddcd.png</url>
      <title>DEV Community: Vidhya</title>
      <link>https://dev.to/vidhyarjun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vidhyarjun"/>
    <language>en</language>
    <item>
      <title>Python Selenium Architecture and significance of python virtual environment.</title>
      <dc:creator>Vidhya</dc:creator>
      <pubDate>Tue, 18 Nov 2025 09:56:50 +0000</pubDate>
      <link>https://dev.to/vidhyarjun/python-selenium-architecture-and-significance-of-python-virtual-environment-4m3c</link>
      <guid>https://dev.to/vidhyarjun/python-selenium-architecture-and-significance-of-python-virtual-environment-4m3c</guid>
      <description>&lt;p&gt;&lt;strong&gt;Working module of python selenium Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium Python uses the Selenium Client Library to convert Python commands into W3C WebDriver HTTP requests. These requests are sent to the browser-specific driver (e.g., chromedriver,edgedriver,etc), which acts as an HTTP server. The browser driver converts these commands into native browser instructions and performs them on the real browser like chrome. The driver then returns JSON responses back to Selenium, which Python interprets and gives to the script.&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%2Fchw58325fxnbpat2uf4o.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%2Fchw58325fxnbpat2uf4o.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow representation&lt;/strong&gt;&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%2Fsvrgiw07bk30sc2jvo2n.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%2Fsvrgiw07bk30sc2jvo2n.png" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is virtual Environment:&lt;/strong&gt;&lt;br&gt;
A virtual environment is an isolated workspace where you can install python packages separately for each project.&lt;/p&gt;

&lt;p&gt;This avoids version conflicts with interfering in common project structure&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to create Virtual environment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;python -m venv myenv&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%2Fn66ciiqr5ibn3z2k7gua.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%2Fn66ciiqr5ibn3z2k7gua.png" alt=" " width="781" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new folder myenv will be created&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%2F6t2rxbbyr5qor5afb2jj.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%2F6t2rxbbyr5qor5afb2jj.png" alt=" " width="376" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In myenv we have Activate scipts which runs and switch to new environment&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%2F0fbv1zadhhk3ct2zwmoe.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%2F0fbv1zadhhk3ct2zwmoe.png" alt=" " width="227" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Activate virtual environment &lt;/p&gt;

&lt;p&gt;myenv\Scripts\activate&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%2Fuioq7kdq2k49kkzamc5s.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%2Fuioq7kdq2k49kkzamc5s.png" alt=" " width="773" height="101"&gt;&lt;/a&gt;&lt;br&gt;
On Activating new virtual environment is created.&lt;/p&gt;

&lt;p&gt;Virtual environment will be created. Then run the requirements.txt file, which contains project's required plugins or packages&lt;/p&gt;

&lt;p&gt;My test execution requires pytest and selenium so I specified the following in requirement.txt&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%2Ffainvlj6l1xi0cq4sogl.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%2Ffainvlj6l1xi0cq4sogl.png" alt=" " width="663" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to execute the requirement.txt run the below comments&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%2F0ui14sjcqcxfbff4bu19.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%2F0ui14sjcqcxfbff4bu19.png" alt=" " width="781" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Virtual Environments Are Significant&lt;/strong&gt;&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%2Fk73e5uufso076gkuay6w.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%2Fk73e5uufso076gkuay6w.png" alt=" " width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example 1: Different Selenium Versions for Two Test Frameworks&lt;br&gt;
Scenario&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We maintain:&lt;br&gt;
Old Framework – uses Selenium 4.8&lt;br&gt;
New Framework – uses Selenium 4.25&lt;br&gt;
In global Python:&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%2F1tzsrazyv3w862umy9zv.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%2F1tzsrazyv3w862umy9zv.png" alt=" " width="800" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can’t install both versions → conflict.&lt;/p&gt;

&lt;p&gt;Solution:&lt;br&gt;
Old framework&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%2Fpmvttegm09qaym35t5t5.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%2Fpmvttegm09qaym35t5t5.png" alt=" " width="525" height="270"&gt;&lt;/a&gt;&lt;br&gt;
Activate:&lt;br&gt;
pip install selenium==4.8&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>automation</category>
    </item>
    <item>
      <title>Selenium technology along with python framework</title>
      <dc:creator>Vidhya</dc:creator>
      <pubDate>Wed, 12 Nov 2025 10:06:59 +0000</pubDate>
      <link>https://dev.to/vidhyarjun/selenium-a-heart-hunter-technology-along-with-python-framework-39k7</link>
      <guid>https://dev.to/vidhyarjun/selenium-a-heart-hunter-technology-along-with-python-framework-39k7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Selenium&lt;/strong&gt; is automation tool used to automate web application. Before we deep dive into the topic of selenium and its usage, let us have a look into quick recap on testing and basic of automation testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software Testing&lt;/strong&gt;: Software testing is a process of checking whether the developed product is right and to check we developed right product.&lt;/p&gt;

&lt;p&gt;Without software testing the steadiness and stability of the product in the market is question mark. We do test software in two major ways based on execution:&lt;br&gt;
              * Manual testing&lt;br&gt;
              * Automation testing&lt;/p&gt;

&lt;p&gt;Well, &lt;strong&gt;manual testing&lt;/strong&gt; is testing done without any involvement of automation tools, solely executed by QA tester.&lt;/p&gt;

&lt;p&gt;On the other hands &lt;strong&gt;Automation testing&lt;/strong&gt; is performed using test tools and test scripts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation testing&lt;/strong&gt; is the process of using software tools to execute the testcases, compare actual and expected results and generate reports -- without human intervention &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why We Go for Automation Testing&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Repetition&lt;/strong&gt;&lt;br&gt;
When the same test cases need to be run multiple times (e.g., regression testing).&lt;br&gt;
&lt;strong&gt;2. Time Efficiency&lt;/strong&gt;&lt;br&gt;
Manual testing of large applications is time-consuming. Automation saves time during repeated cycles.&lt;br&gt;
&lt;strong&gt;3. Accuracy&lt;/strong&gt;&lt;br&gt;
Reduces human error in executing the same steps multiple times.&lt;br&gt;
&lt;strong&gt;4. Continuous Integration (CI/CD)&lt;/strong&gt;&lt;br&gt;
Automation supports DevOps pipelines — automated builds, testing, and deployment.&lt;br&gt;
&lt;strong&gt;5. Performance Testing&lt;/strong&gt;&lt;br&gt;
For load or stress testing with thousands of users — impossible to do manually.&lt;br&gt;
&lt;strong&gt;6. Regression Testing&lt;/strong&gt;&lt;br&gt;
When new features are added, automation helps ensure old features still work correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When We Go for Automation Testing&lt;/strong&gt;&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%2Fdxma2yn9q2ulhp03afzk.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%2Fdxma2yn9q2ulhp03afzk.png" alt=" " width="800" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of automation Testing:&lt;/strong&gt;&lt;br&gt;
-Executes hundreds of tests quickly&lt;br&gt;
-Test scripts can be reused across builds&lt;br&gt;
-No human error during execution&lt;br&gt;
-Can test across browsers, devices, environments&lt;br&gt;
-Integrates with CI/CD tools like Jenkins&lt;br&gt;
-Finds regressions early in the pipeline&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of automation Testing:&lt;/strong&gt;&lt;br&gt;
-Requires tool setup, scripting time, and skilled testers&lt;br&gt;
-Scripts break when UI or logic changes&lt;br&gt;
-UI look &amp;amp; feel, usability testing need human eyes&lt;br&gt;
-Need programming knowledge&lt;br&gt;
-May fail due to environment/config issues rather than bugs&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Automation Tools&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Web/UI Testing&lt;/strong&gt; → Selenium, Playwright, Cypress,Tosca&lt;br&gt;
&lt;strong&gt;API Testing&lt;/strong&gt; → Postman, RestAssured, Karate&lt;br&gt;
&lt;strong&gt;Unit Testing&lt;/strong&gt; → Pytest, JUnit, TestNG&lt;br&gt;
&lt;strong&gt;Performance Testing&lt;/strong&gt; → JMeter, LoadRunner&lt;br&gt;
&lt;strong&gt;CI/CD Integration&lt;/strong&gt; → Jenkins, GitHub Actions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;History of Selenium&lt;/strong&gt;&lt;br&gt;
In 2004 at ThoughtWorks, Jason Huggins building the Core mode as "JavaScriptTestRunner" for the testing of an internal Time and Expenses application.&lt;/p&gt;

&lt;p&gt;ThoughtWorkers in various offices around the world picked up Selenium for commercial projects and contributed back to Selenium from the lessons learned on these projects. Mike Williams, Darrell DeBoer, and Darren Cotterill all helped with the increasing the capabilities and the robustness of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium Ecosystem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the last decade, a large ecosystem of Open-Source projects have sprouted up around Selenium. This page attempts to capture some of those projects that make use of Selenium WebDriver as a central part of what they do.&lt;br&gt;
Selenium can be extended in different ways. Here are a number of drivers, bindings, plugins, and frameworks created and maintained by third parties.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frameworks&lt;/strong&gt;&lt;br&gt;
Programming languages are supported through Selenium drivers. These are libraries made for each language that expose commands from the Selenium API natively in the form of methods/functions.&lt;/p&gt;

&lt;p&gt;Selenium is often used for automating web applications for testing purposes, but it does not include a testing framework. Some testing frameworks that can be used with Selenium are listed below.&lt;/p&gt;

&lt;p&gt;Helium, SeleniumBase ,SeleniumLibrary ,WebdriverIO, etc,.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components of Selenium suite&lt;/strong&gt;&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%2F63eanlel4hx8kac7rqla.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%2F63eanlel4hx8kac7rqla.png" alt=" " width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium 4 Architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium 4 introduced a simplified and modernized architecture compared to Selenium 3.&lt;br&gt;
It fully adopts the W3C WebDriver Protocol, removing the older JSON Wire Protocol — this means faster, more stable, and consistent communication between Selenium and browsers.&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%2Fv2ryxo6679jtbm81i3je.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%2Fv2ryxo6679jtbm81i3je.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world explanation of how Selenium works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In real time selenium is like a helper/robot assistant which helps us to execute testcases based on instruction(script)on webpage tirelessly with less time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step By Step Working&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 1:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Test Scripts written by us write a program say for example:&lt;br&gt;
-Open chrome browser&lt;br&gt;
-Enter url &lt;a href="https://amazon.com" rel="noopener noreferrer"&gt;https://amazon.com&lt;/a&gt;&lt;br&gt;
-Navigate to login page&lt;br&gt;
-Enter UserName&lt;/p&gt;

&lt;p&gt;Sample code in python:&lt;/p&gt;

&lt;p&gt;driver.get(&lt;a href="https://amazon.com" rel="noopener noreferrer"&gt;https://amazon.com&lt;/a&gt;)&lt;br&gt;
driver.find_element(By.ID,login.click()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt;&lt;br&gt;
Selenium sends commands to the driver&lt;/p&gt;

&lt;p&gt;Selenium does not directly talk to the browser. It gets the help of browser driver which interacts with browser.&lt;br&gt;
For Chrome → ChromeDrive&lt;br&gt;
For Firefox → GeckoDriver&lt;br&gt;
For Edge → EdgeDriver&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt;&lt;br&gt;
The browser driver directly interacts with the browser.&lt;br&gt;
Using the W3C WebDriver protocol, the driver tells the browser what to do — “open this page,” “click this button,” etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt;&lt;br&gt;
The real browser (like Chrome) gets command from driver and performs the actions exactly as a human would — open the page, type, click, scroll.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt;&lt;br&gt;
Response is sent back.&lt;br&gt;
Once done, the browser tells Selenium whether the action was successful or failed.&lt;br&gt;
Selenium then reports the result — pass, fail, or error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Human Terms&lt;/strong&gt;&lt;br&gt;
Selenium Client = You, the tester, giving instructions.&lt;br&gt;
Browser Driver = Translator between you and the browser.&lt;br&gt;
Browser = Worker that performs the tasks.&lt;br&gt;
W3C Protocol = The common language both use to talk correctly.&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%2Fohkxbpz6h3ikjxc027xs.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%2Fohkxbpz6h3ikjxc027xs.png" alt=" " width="742" height="939"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Selenium Is Preferred Over Other Automation Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Open Source and Free&lt;/strong&gt;&lt;br&gt;
Selenium is 100% free — no license or subscription required.&lt;br&gt;
This makes it ideal for startups and enterprises looking to reduce testing costs.&lt;br&gt;
Other tools like UFT (Unified Functional Testing) or TestComplete are commercial and expensive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Multi-Browser Support&lt;/strong&gt;&lt;br&gt;
Selenium supports all major browsers — Chrome, Firefox, Edge, Safari, and Opera.&lt;br&gt;
Most other tools are limited or need plugins for browser compatibility.&lt;br&gt;
&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
You can run the same Selenium script on Chrome, Edge, or Firefox without changing your test logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cross-Platform Compatibility&lt;/strong&gt;&lt;br&gt;
Selenium runs on Windows, macOS, and Linux.&lt;br&gt;
This cross-platform support makes it versatile for CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Multi-Language Support&lt;/strong&gt;&lt;br&gt;
Selenium supports multiple programming languages, including:&lt;br&gt;
Java&lt;br&gt;
Python&lt;br&gt;
C#&lt;br&gt;
JavaScript&lt;br&gt;
Ruby&lt;br&gt;
Kotlin&lt;br&gt;
Other tools (like Cypress) support mainly JavaScript, which limits flexibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Integration with DevOps &amp;amp; Testing Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium integrates easily with tools like:&lt;br&gt;
Jenkins, GitHub Actions, Docker → for CI/CD&lt;br&gt;
TestNG, Pytest, JUnit → for test management&lt;br&gt;
Maven/Gradle → for build automation&lt;br&gt;
Allure, Extent Reports → for reporting&lt;br&gt;
This makes Selenium part of a complete automated testing ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Supports Parallel &amp;amp; Remote Execution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Selenium Grid, tests can run in parallel on multiple browsers and systems — saving time.&lt;br&gt;
You can run tests remotely on cloud platforms like BrowserStack, Sauce Labs, or LambdaTest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Large Community Support&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being the oldest and most popular open-source tool, Selenium has massive community support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Supports Multiple Frameworks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can integrate Selenium with:&lt;br&gt;
BDD frameworks → Cucumber, Behave&lt;br&gt;
Data-driven testing → Excel, CSV, or databases&lt;br&gt;
Hybrid frameworks → combining Page Object Model, keyword-driven, and data-driven approaches&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comparison of selenium with other tools:&lt;/strong&gt;&lt;br&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%2Fh5m5n7qz8gtm3dg2pbc2.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%2Fh5m5n7qz8gtm3dg2pbc2.png" alt=" " width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium 3 versus Selenium 4 comparison&lt;/strong&gt;&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%2Fhm50gm5y1p258180qdl6.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%2Fhm50gm5y1p258180qdl6.png" alt=" " width="800" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relevance of selenium automation using python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium with Python is preferred because it’s free, easy to learn, fast to develop, cross-platform, and integrates smoothly with modern test frameworks and DevOps pipelines — giving you flexibility and productivity that many other languages or tools lack.&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%2Fi88m14g914sva61q89bs.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%2Fi88m14g914sva61q89bs.png" alt=" " width="800" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In real-world test automation:&lt;/p&gt;

&lt;p&gt;-Most organizations have mixed environments (web, API, database).&lt;/p&gt;

&lt;p&gt;-Python makes it easy to handle end-to-end testing in a single framework.&lt;/p&gt;

&lt;p&gt;-Selenium + Python + Pytest + Allure forms a lightweight, robust, and maintainable automation framework.&lt;/p&gt;

&lt;p&gt;-It’s ideal for Agile and CI/CD-based teams that push frequent updates.&lt;/p&gt;

&lt;p&gt;On conclusion from above advantages, Hence Selenium with python framework preferred over other automation tools and programing language&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>selenium</category>
    </item>
    <item>
      <title>Manual Testing and its view on AI usage</title>
      <dc:creator>Vidhya</dc:creator>
      <pubDate>Sun, 07 Sep 2025 13:32:52 +0000</pubDate>
      <link>https://dev.to/vidhyarjun/manual-testing-and-its-view-on-ai-usage-4ccf</link>
      <guid>https://dev.to/vidhyarjun/manual-testing-and-its-view-on-ai-usage-4ccf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Manual testing&lt;/strong&gt; is process of evaluation of software with involvement of a person to find bugs and issue. This approach helps ensure the software works as intended and meets user needs.&lt;br&gt;
Characteristics of Manual Testing:&lt;br&gt;
• Human-Centric – Testers execute test cases like end users, providing input and checking results.&lt;br&gt;
• Exploratory – Involves investigative testing without predefined cases to uncover unexpected issues.&lt;br&gt;
• Flexible – Testers adapt test cases or explore new scenarios as requirements change.&lt;br&gt;
• Early Start – Can be performed in the initial stages of development to catch issues early.&lt;br&gt;
• Handles Complexity – Suitable for testing complex workflows and component interactions.&lt;br&gt;
• UI Evaluation – Effective for assessing user interface design, usability, and responsiveness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of Manual Testing:&lt;/strong&gt;&lt;br&gt;
Wherever human intervention is required, manual testing is the only way to handle it.&lt;br&gt;
Complex testing can be handled&lt;br&gt;
Negative Test cases work only in Manual testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantage of Manual Testing:&lt;/strong&gt;&lt;br&gt;
Time consuming for repetitive test execution like regression testing.&lt;br&gt;
Error may occur due to carelessness&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Manual Testing&lt;/strong&gt;&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%2Fwatqr691oas5u46f0fyx.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%2Fwatqr691oas5u46f0fyx.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;White box testing:&lt;/strong&gt;&lt;br&gt;
In White Box Testing technique/glass box Testing, the person will check the internal structure of the system like designs, coding, etc., manually. &lt;br&gt;
White Box Testing Example&lt;br&gt;
Consider the following piece of code:&lt;/p&gt;

&lt;p&gt;Here, the development team will review the entire coding part line by line to ensure the correctness of the code. It includes following methods or coverage&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Statement Coverage&lt;/li&gt;
&lt;li&gt;  Branch Coverage&lt;/li&gt;
&lt;li&gt;  Path Coverage&lt;/li&gt;
&lt;li&gt;  Cyclomatic Coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Statement Coverage:&lt;/strong&gt;&lt;br&gt;
Statement Coverage includes each are every line of code is works as expected or not.&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%2Fqtb7kicddinjm85j8k87.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%2Fqtb7kicddinjm85j8k87.png" alt=" " width="800" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal of WhiteBox testing in software engineering is to verify all the decision branches, loops, and statements in the code.&lt;br&gt;
To exercise the statements in the above white box testing example, WhiteBox test cases would be&lt;br&gt;
• A = 1, B = 1&lt;br&gt;
• A = -1, B = -3&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Branch Coverage:&lt;/strong&gt;&lt;br&gt;
Branch Coverage includes each are every branch is performs as expected or not.&lt;br&gt;
Path Testing:&lt;br&gt;
 White box testing will be checks all possible execution paths in the program to sure about the each one of the functions behaves as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cyclomatic Testing:&lt;/strong&gt;&lt;br&gt;
Cyclomatic complexity is a metric that measures the complexity of a program by counting its decision points. Decision points refer to various condition in which the code’s behavior is exhibited.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Black Box testing:&lt;/strong&gt;&lt;br&gt;
Black Box Testing (close box testing) is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths. Black Box Testing mainly focuses on input and output of software applications, and it is entirely based on software requirements and specifications. It is also known as Behavioral Testing.&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%2F8gip5dbxk4gcc5x4ixol.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%2F8gip5dbxk4gcc5x4ixol.png" alt=" " width="800" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of Black Box Testing&lt;/strong&gt;&lt;br&gt;
• Functionality Focus: It validates whether the software meets its functional requirements by testing its behavior against expected outcomes.&lt;br&gt;
• No Internal Knowledge Required: Testers do not need programming or implementation knowledge, making it accessible to non-technical testers.&lt;br&gt;
• User-Centric Approach: Testing is performed from the perspective of an end-user, ensuring the application is intuitive and meets user expectations.&lt;br&gt;
• Independent Testing: Testers are independent of the development team, ensuring unbiased &lt;br&gt;
Gray box testing:&lt;br&gt;
Gray Box Testing is a software testing technique that combines elements of the Black Box Testing technique and the White Box Testing technique.&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%2Feu54uvnjozholwdbpcq0.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%2Feu54uvnjozholwdbpcq0.png" alt=" " width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objectives of Gray Box Testing:&lt;/strong&gt;&lt;br&gt;
• To provide the combined advantages of both black box testing and white box testing.&lt;br&gt;
• To combine the input of developers as well as testers.&lt;br&gt;
• To improve overall product quality.&lt;br&gt;
• To reduce the overhead of the long process of functional and non-functional testing.&lt;br&gt;
• To provide enough free time to developers to fix defects.&lt;br&gt;
• To test from the user's point of view rather than a designer's point of view.&lt;br&gt;
&lt;strong&gt;Example of Gray Box testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  DB testing and API Testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Boundary Value Analysis:&lt;/strong&gt;&lt;br&gt;
Boundary Value Analysis (BVA) is a test design technique used to identify test cases that target the edges of input value ranges. The approach focuses on the assumption that most errors occur at the boundaries rather than within the range itself.&lt;/p&gt;

&lt;p&gt;Here’s a concise breakdown of how BVA works in designing test cases:&lt;br&gt;
&lt;strong&gt;Identify Boundaries:&lt;/strong&gt; The first step is to determine the input ranges for the software being tested. This includes both minimum and maximum values.&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%2Fydzlcv6pb09bapfaon5d.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%2Fydzlcv6pb09bapfaon5d.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus on Edge Cases:&lt;/strong&gt; Instead of testing every single value, BVA emphasizes testing only the values at the boundaries. This typically includes:&lt;br&gt;
    -The minimum and maximum values.&lt;br&gt;
    -One value below the minimum and one above the maximum.&lt;br&gt;
    -Values just inside the boundaries.&lt;br&gt;
Benefit from Common Errors: Programmers often make mistakes when implementing logic for boundary conditions, such as confusion between ‘greater than’ (&amp;gt;) and ‘greater than or equal to’ (≥). BVA can uncover these types of logical errors efficiently.&lt;br&gt;
&lt;strong&gt;Test Case Generation:&lt;/strong&gt; For each boundary identified, test cases are generated. For example, if a function accepts values from 1 to 10, the test cases would include:&lt;br&gt;
    -0 (below minimum)&lt;br&gt;
    -1 (minimum)&lt;br&gt;
    -5 (within range)&lt;br&gt;
    -10 (maximum)&lt;br&gt;
    -11 (above maximum)&lt;br&gt;
&lt;strong&gt;Support for Comprehensive Testing:&lt;/strong&gt; Boundary Value Analysis is particularly useful in cases where the input data heavily influences the system's behavior, such as financial applications. It allows for a focused test effort while ensuring that critical edge scenarios are confirmed.&lt;br&gt;
o   Complementary Techniques: BVA is often paired with other testing methods, such as Equivalence Partitioning, which broadens the coverage by ensuring that not only boundaries but also representative values within each partition are tested.&lt;br&gt;
&lt;strong&gt;Implementation in Testing Lifecycle:&lt;/strong&gt; Often used during the testing phase, BVA assists testers in defining precise test cases, thereby improving the efficiency of the testing process.&lt;br&gt;
&lt;strong&gt;Test Coverage Improvement:&lt;/strong&gt; Utilizing BVA helps ensure that critical conditions are verified, leading to higher test coverage and increasing confidence in the software's performance under various scenarios.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In summary, Boundary Value Analysis is invaluable in software testing for identifying critical test cases that focus on edge values, ultimately enhancing the quality and reliability of software products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Equivalence Partitioning&lt;/strong&gt; (EP) is a testing technique used to reduce the number of test cases while still maintaining a high level of test coverage. The fundamental premise of EP is that inputs can be grouped into partitions or classes that are expected to exhibit similar behavior. Testing one representative value from each partition is deemed sufficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps in Equivalence Partitioning:&lt;/strong&gt;&lt;br&gt;
Identify Input Domain: Analyze the input field to understand its valid and invalid states. For instance, consider an age input field that accepts values between 20 and 50.&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%2Fyrf9w10c4fgp7ab29ylu.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%2Fyrf9w10c4fgp7ab29ylu.png" alt=" " width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Define Partitions&lt;/strong&gt;: Divide the inputs into various classes, typically including:&lt;br&gt;
&lt;u&gt;Valid Partitions:&lt;/u&gt;&lt;br&gt;
Input within the valid range (e.g., 20-50)&lt;br&gt;
&lt;u&gt;Invalid Partitions:&lt;/u&gt;&lt;br&gt;
Values below the minimum (e.g., 19 or lower)&lt;br&gt;
Values above the maximum (e.g., 51 or higher)&lt;br&gt;
Any invalid data types (e.g., letters, special characters)&lt;br&gt;
Select Test Cases: From each partition, select one representative value. Using the earlier example:&lt;br&gt;
Valid: 20 (exact lower limit), 30 (mid-range), 50 (exact upper limit)&lt;br&gt;
Invalid: 19 (just below minimum), 51 (just above maximum), and "string" (invalid data type)&lt;/p&gt;

&lt;p&gt;Example Overview:&lt;br&gt;
In the example of the age field accepting values between 20 and 50:&lt;br&gt;
&lt;u&gt;Valid Partitions:&lt;/u&gt;&lt;br&gt;
Acceptable values: 20, 30, 40, 50&lt;br&gt;
&lt;u&gt;Invalid Partitions:&lt;/u&gt;&lt;br&gt;
Below range: 19&lt;br&gt;
Above range: 51&lt;br&gt;
Invalid data type: "text"&lt;br&gt;
By choosing representative values from these partitions (for instance, testing with 20, 30, 19, and "string"), you effectively cover the necessary scenarios without needing to test every single number between the boundaries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Equivalence Partitioning:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Efficiency&lt;/strong&gt;: Reduces the total number of test cases necessary for comprehensive coverage.&lt;br&gt;
&lt;strong&gt;Error Detection:&lt;/strong&gt; Identifies potential errors in data handling at both edges of input ranges and various data types.&lt;br&gt;
In summary, Equivalence Partitioning helps testers focus their efforts by identifying representative values from different classes, ensuring that a limited number of carefully selected test cases can adequately validate software behavior.&lt;/p&gt;

&lt;p&gt;Artificial Intelligence&lt;br&gt;
In General AI (Artificial Intelligence) is the ability of a computational system to perform task associated with human intelligence like problem solving, decision making.&lt;br&gt;
For Example:&lt;br&gt;
AI is like teaching a child. At first, you show the child many examples — like pictures of apples and banana. Over time, the child learns to tell them apart on their own. AI works the same way, but with computers learning from data instead of real-life experience.&lt;/p&gt;

&lt;p&gt;In 2025 AI's presence is everywhere, in my situation I use AI as peer for asking doubts, sharing my feedback and correcting grammar mistake in email.&lt;/p&gt;

&lt;p&gt;The Future of Manual Testing in the Age of AI:&lt;/p&gt;

&lt;p&gt;Testing is a standard process in IT to ensure the delivery of high-quality software. Without testing, a software product cannot be released to the market with confidence. Manual testing forms the foundation of any testing process. Before an application is proposed for release, it must be well-understood, and impact analysis should be carried out. For this purpose, a manual testing team is essential to understand the requirements clearly.&lt;br&gt;
Only when the requirements are well understood can AI models be trained effectively to support the testing process. Even in 2025, AI remains unreliable in certain cases. It will not completely replace manual testers but will serve as a powerful assistant. AI helps testers speed up their work, reduce repetitive tasks, and allow them to focus on more critical and exploratory aspects of testing.&lt;br&gt;
In the future, AI can also play a role in training juniors, helping the testers grasp concepts faster, reducing time spent on repetitive activities, and allowing them to focus on self-development and advanced skills.&lt;br&gt;
In conclusion, AI requires human supervision to be effective, while humans can benefit from AI’s assistance in handling complex systems. Rather than replacing each other, AI and humans will work in partnership to achieve efficiency and quality in software testing.&lt;/p&gt;

&lt;p&gt;Reference:&lt;br&gt;
-Input got from testing course training session.&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/software-testing/software-testing-manual-testing" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/software-testing/software-testing-manual-testing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.guru99.com/manual-testing.html" rel="noopener noreferrer"&gt;https://www.guru99.com/manual-testing.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/certified-tester-foundation-level-ctfl/learn" rel="noopener noreferrer"&gt;https://www.udemy.com/course/certified-tester-foundation-level-ctfl/learn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Images are drawn with the help of draw.io site&lt;/p&gt;

&lt;p&gt;Feedbacks are welcome.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My views on future of manual testing in the age of AI</title>
      <dc:creator>Vidhya</dc:creator>
      <pubDate>Sun, 07 Sep 2025 13:21:29 +0000</pubDate>
      <link>https://dev.to/vidhyarjun/my-views-on-future-of-manual-testing-in-the-age-of-ai-e09</link>
      <guid>https://dev.to/vidhyarjun/my-views-on-future-of-manual-testing-in-the-age-of-ai-e09</guid>
      <description>&lt;p&gt;&lt;strong&gt;Artificial Intelligence&lt;/strong&gt;&lt;br&gt;
In General AI (Artificial Intelligence) is the ability of a computational system to perform task associated with human intelligence like problem solving, decision making.&lt;br&gt;
For Example:&lt;br&gt;
AI is like teaching a child. At first, you show the child many examples — like pictures of apples and banana. Over time, the child learns to tell them apart on their own. AI works the same way, but with computers learning from data instead of real-life experience.&lt;/p&gt;

&lt;p&gt;In 2025 AI's presence is everywhere, in my situation I use AI as peer for asking doubts, sharing my feedback and correcting grammar mistake in email.&lt;/p&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;Testing is a standard process in IT to ensure the delivery of high-quality software. Without testing, a software product cannot be released to the market with confidence. Manual testing forms the foundation of any testing process. Before an application is proposed for release, it must be well-understood, and impact analysis should be carried out. For this purpose, a manual testing team is essential to understand the requirements clearly.&lt;br&gt;
Only when the requirements are well understood can AI models be trained effectively to support the testing process. Even in 2025, AI remains unreliable in certain cases. It will not completely replace manual testers but will serve as a powerful assistant. AI helps testers speed up their work, reduce repetitive tasks, and allow them to focus on more critical and exploratory aspects of testing.&lt;br&gt;
In the future, AI can also play a role in training juniors, helping the testers grasp concepts faster, reducing time spent on repetitive activities, and allowing them to focus on self-development and advanced skills.&lt;br&gt;
In conclusion, AI requires human supervision to be effective, while humans can benefit from AI’s assistance in handling complex systems. Rather than replacing each other, AI and humans will work in partnership to achieve efficiency and quality in software testing.&lt;/p&gt;

</description>
      <category>testing</category>
    </item>
    <item>
      <title>My Inference on Boundary Value Analysis and Equivalence partitioning</title>
      <dc:creator>Vidhya</dc:creator>
      <pubDate>Sun, 07 Sep 2025 13:15:32 +0000</pubDate>
      <link>https://dev.to/vidhyarjun/my-inference-on-boundary-value-analysis-and-equivalence-partitioning-n2m</link>
      <guid>https://dev.to/vidhyarjun/my-inference-on-boundary-value-analysis-and-equivalence-partitioning-n2m</guid>
      <description>&lt;p&gt;&lt;strong&gt;Boundary Value Analysis:&lt;/strong&gt;&lt;br&gt;
Boundary Value Analysis (BVA) is a test design technique used to identify test cases that target the edges of input value ranges. The approach focuses on the assumption that most errors occur at the boundaries rather than within the range itself.&lt;/p&gt;

&lt;p&gt;Here’s a concise breakdown of how BVA works in designing test cases:&lt;br&gt;
&lt;strong&gt;Identify Boundaries:&lt;/strong&gt; The first step is to determine the input ranges for the software being tested. This includes both minimum and maximum values.&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%2Fydzlcv6pb09bapfaon5d.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%2Fydzlcv6pb09bapfaon5d.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus on Edge Cases:&lt;/strong&gt; Instead of testing every single value, BVA emphasizes testing only the values at the boundaries. This typically includes:&lt;br&gt;
    -The minimum and maximum values.&lt;br&gt;
    -One value below the minimum and one above the maximum.&lt;br&gt;
    -Values just inside the boundaries.&lt;br&gt;
Benefit from Common Errors: Programmers often make mistakes when implementing logic for boundary conditions, such as confusion between ‘greater than’ (&amp;gt;) and ‘greater than or equal to’ (≥). BVA can uncover these types of logical errors efficiently.&lt;br&gt;
&lt;strong&gt;Test Case Generation:&lt;/strong&gt; For each boundary identified, test cases are generated. For example, if a function accepts values from 1 to 10, the test cases would include:&lt;br&gt;
    -0 (below minimum)&lt;br&gt;
    -1 (minimum)&lt;br&gt;
    -5 (within range)&lt;br&gt;
    -10 (maximum)&lt;br&gt;
    -11 (above maximum)&lt;br&gt;
&lt;strong&gt;Support for Comprehensive Testing:&lt;/strong&gt; Boundary Value Analysis is particularly useful in cases where the input data heavily influences the system's behavior, such as financial applications. It allows for a focused test effort while ensuring that critical edge scenarios are confirmed.&lt;br&gt;
o   Complementary Techniques: BVA is often paired with other testing methods, such as Equivalence Partitioning, which broadens the coverage by ensuring that not only boundaries but also representative values within each partition are tested.&lt;br&gt;
&lt;strong&gt;Implementation in Testing Lifecycle:&lt;/strong&gt; Often used during the testing phase, BVA assists testers in defining precise test cases, thereby improving the efficiency of the testing process.&lt;br&gt;
&lt;strong&gt;Test Coverage Improvement:&lt;/strong&gt; Utilizing BVA helps ensure that critical conditions are verified, leading to higher test coverage and increasing confidence in the software's performance under various scenarios.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In summary, Boundary Value Analysis is invaluable in software testing for identifying critical test cases that focus on edge values, ultimately enhancing the quality and reliability of software products.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Equivalence Partitioning&lt;/strong&gt; (EP) is a testing technique used to reduce the number of test cases while still maintaining a high level of test coverage. The fundamental premise of EP is that inputs can be grouped into partitions or classes that are expected to exhibit similar behavior. Testing one representative value from each partition is deemed sufficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps in Equivalence Partitioning:&lt;/strong&gt;&lt;br&gt;
Identify Input Domain: Analyze the input field to understand its valid and invalid states. For instance, consider an age input field that accepts values between 20 and 50.&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%2Fyrf9w10c4fgp7ab29ylu.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%2Fyrf9w10c4fgp7ab29ylu.png" alt=" " width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Define Partitions&lt;/strong&gt;: Divide the inputs into various classes, typically including:&lt;br&gt;
&lt;u&gt;Valid Partitions:&lt;/u&gt;&lt;br&gt;
Input within the valid range (e.g., 20-50)&lt;br&gt;
&lt;u&gt;Invalid Partitions:&lt;/u&gt;&lt;br&gt;
Values below the minimum (e.g., 19 or lower)&lt;br&gt;
Values above the maximum (e.g., 51 or higher)&lt;br&gt;
Any invalid data types (e.g., letters, special characters)&lt;br&gt;
Select Test Cases: From each partition, select one representative value. Using the earlier example:&lt;br&gt;
Valid: 20 (exact lower limit), 30 (mid-range), 50 (exact upper limit)&lt;br&gt;
Invalid: 19 (just below minimum), 51 (just above maximum), and "string" (invalid data type)&lt;/p&gt;

&lt;p&gt;Example Overview:&lt;br&gt;
In the example of the age field accepting values between 20 and 50:&lt;br&gt;
&lt;u&gt;Valid Partitions:&lt;/u&gt;&lt;br&gt;
Acceptable values: 20, 30, 40, 50&lt;br&gt;
&lt;u&gt;Invalid Partitions:&lt;/u&gt;&lt;br&gt;
Below range: 19&lt;br&gt;
Above range: 51&lt;br&gt;
Invalid data type: "text"&lt;br&gt;
By choosing representative values from these partitions (for instance, testing with 20, 30, 19, and "string"), you effectively cover the necessary scenarios without needing to test every single number between the boundaries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Equivalence Partitioning:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Efficiency&lt;/strong&gt;: Reduces the total number of test cases necessary for comprehensive coverage.&lt;br&gt;
&lt;strong&gt;Error Detection:&lt;/strong&gt; Identifies potential errors in data handling at both edges of input ranges and various data types.&lt;br&gt;
In summary, Equivalence Partitioning helps testers focus their efforts by identifying representative values from different classes, ensuring that a limited number of carefully selected test cases can adequately validate software behavior.&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
-Input got from testing course training session.&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/software-testing/software-testing-manual-testing" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/software-testing/software-testing-manual-testing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.guru99.com/manual-testing.html" rel="noopener noreferrer"&gt;https://www.guru99.com/manual-testing.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/certified-tester-foundation-level-ctfl/learn" rel="noopener noreferrer"&gt;https://www.udemy.com/course/certified-tester-foundation-level-ctfl/learn&lt;/a&gt;&lt;br&gt;
Images are drawn with the help of draw.io site&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Manual Testing</title>
      <dc:creator>Vidhya</dc:creator>
      <pubDate>Sun, 07 Sep 2025 12:55:41 +0000</pubDate>
      <link>https://dev.to/vidhyarjun/manual-testing-4m5a</link>
      <guid>https://dev.to/vidhyarjun/manual-testing-4m5a</guid>
      <description>&lt;p&gt;&lt;strong&gt;Manual testing&lt;/strong&gt; is process of evaluation of software with involvement of a person to find bugs and issue. This approach helps ensure the software works as intended and meets user needs.&lt;br&gt;
Characteristics of Manual Testing:&lt;br&gt;
• Human-Centric – Testers execute test cases like end users, providing input and checking results.&lt;br&gt;
• Exploratory – Involves investigative testing without predefined cases to uncover unexpected issues.&lt;br&gt;
• Flexible – Testers adapt test cases or explore new scenarios as requirements change.&lt;br&gt;
• Early Start – Can be performed in the initial stages of development to catch issues early.&lt;br&gt;
• Handles Complexity – Suitable for testing complex workflows and component interactions.&lt;br&gt;
• UI Evaluation – Effective for assessing user interface design, usability, and responsiveness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of Manual Testing:&lt;/strong&gt;&lt;br&gt;
Wherever human intervention is required, manual testing is the only way to handle it.&lt;br&gt;
Complex testing can be handled&lt;br&gt;
Negative Test cases work only in Manual testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantage of Manual Testing:&lt;/strong&gt;&lt;br&gt;
Time consuming for repetitive test execution like regression testing.&lt;br&gt;
Error may occur due to carelessness&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Manual Testing&lt;/strong&gt;&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%2Fwatqr691oas5u46f0fyx.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%2Fwatqr691oas5u46f0fyx.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;White box testing:&lt;/strong&gt;&lt;br&gt;
In White Box Testing technique/glass box Testing, the person will check the internal structure of the system like designs, coding, etc., manually. &lt;br&gt;
White Box Testing Example&lt;br&gt;
Consider the following piece of code:&lt;/p&gt;

&lt;p&gt;Here, the development team will review the entire coding part line by line to ensure the correctness of the code. It includes following methods or coverage&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Statement Coverage&lt;/li&gt;
&lt;li&gt;  Branch Coverage&lt;/li&gt;
&lt;li&gt;  Path Coverage&lt;/li&gt;
&lt;li&gt;  Cyclomatic Coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Statement Coverage:&lt;/strong&gt;&lt;br&gt;
Statement Coverage includes each are every line of code is works as expected or not.&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%2Fqtb7kicddinjm85j8k87.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%2Fqtb7kicddinjm85j8k87.png" alt=" " width="800" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal of WhiteBox testing in software engineering is to verify all the decision branches, loops, and statements in the code.&lt;br&gt;
To exercise the statements in the above white box testing example, WhiteBox test cases would be&lt;br&gt;
• A = 1, B = 1&lt;br&gt;
• A = -1, B = -3&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Branch Coverage:&lt;/strong&gt;&lt;br&gt;
Branch Coverage includes each are every branch is performs as expected or not.&lt;br&gt;
Path Testing:&lt;br&gt;
 White box testing will be checks all possible execution paths in the program to sure about the each one of the functions behaves as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cyclomatic Testing:&lt;/strong&gt;&lt;br&gt;
Cyclomatic complexity is a metric that measures the complexity of a program by counting its decision points. Decision points refer to various condition in which the code’s behavior is exhibited.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Black Box testing:&lt;/strong&gt;&lt;br&gt;
Black Box Testing (close box testing) is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths. Black Box Testing mainly focuses on input and output of software applications, and it is entirely based on software requirements and specifications. It is also known as Behavioral Testing.&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%2F8gip5dbxk4gcc5x4ixol.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%2F8gip5dbxk4gcc5x4ixol.png" alt=" " width="800" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features of Black Box Testing&lt;/strong&gt;&lt;br&gt;
• Functionality Focus: It validates whether the software meets its functional requirements by testing its behavior against expected outcomes.&lt;br&gt;
• No Internal Knowledge Required: Testers do not need programming or implementation knowledge, making it accessible to non-technical testers.&lt;br&gt;
• User-Centric Approach: Testing is performed from the perspective of an end-user, ensuring the application is intuitive and meets user expectations.&lt;br&gt;
• Independent Testing: Testers are independent of the development team, ensuring unbiased &lt;br&gt;
Gray box testing:&lt;br&gt;
Gray Box Testing is a software testing technique that combines elements of the Black Box Testing technique and the White Box Testing technique.&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%2Feu54uvnjozholwdbpcq0.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%2Feu54uvnjozholwdbpcq0.png" alt=" " width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objectives of Gray Box Testing:&lt;/strong&gt;&lt;br&gt;
• To provide the combined advantages of both black box testing and white box testing.&lt;br&gt;
• To combine the input of developers as well as testers.&lt;br&gt;
• To improve overall product quality.&lt;br&gt;
• To reduce the overhead of the long process of functional and non-functional testing.&lt;br&gt;
• To provide enough free time to developers to fix defects.&lt;br&gt;
• To test from the user's point of view rather than a designer's point of view.&lt;br&gt;
&lt;strong&gt;Example of Gray Box testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  DB testing and API Testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reference:&lt;br&gt;
-Input got from testing course training session.&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/software-testing/software-testing-manual-testing" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/software-testing/software-testing-manual-testing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.guru99.com/manual-testing.html" rel="noopener noreferrer"&gt;https://www.guru99.com/manual-testing.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.udemy.com/course/certified-tester-foundation-level-ctfl/learn" rel="noopener noreferrer"&gt;https://www.udemy.com/course/certified-tester-foundation-level-ctfl/learn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Images are drawn with the help of draw.io site&lt;/p&gt;

&lt;p&gt;Feedbacks are welcome.&lt;/p&gt;

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