<?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: SATHEESH MADHAVARAPU</title>
    <description>The latest articles on DEV Community by SATHEESH MADHAVARAPU (@satheesh_madhavarapu_302a).</description>
    <link>https://dev.to/satheesh_madhavarapu_302a</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%2F2802108%2F5ea6b6b5-12a8-4999-ab3c-09770e64481f.jpg</url>
      <title>DEV Community: SATHEESH MADHAVARAPU</title>
      <link>https://dev.to/satheesh_madhavarapu_302a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/satheesh_madhavarapu_302a"/>
    <language>en</language>
    <item>
      <title>Python Selenium Architecture</title>
      <dc:creator>SATHEESH MADHAVARAPU</dc:creator>
      <pubDate>Sat, 19 Apr 2025 07:38:36 +0000</pubDate>
      <link>https://dev.to/satheesh_madhavarapu_302a/python-selenium-architecture-8c5</link>
      <guid>https://dev.to/satheesh_madhavarapu_302a/python-selenium-architecture-8c5</guid>
      <description>&lt;p&gt;Selenium Architecture with Python&lt;/p&gt;

&lt;p&gt;Selenium's architecture, when used with Python, typically involves several key components that work together to automate web browser interactions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Python Script (Test Script or Automation Script)&lt;br&gt;
This is the core of your automation logic. You write Python code using the Selenium API to define tasks such as opening a webpage, clicking buttons, entering text, or scraping content. This script serves as the starting point of the entire automation process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WebDriver&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;WebDriver is a browser automation engine that acts as a bridge between your Python script and the web browser. Selenium provides specific WebDrivers for each browser type—&lt;strong&gt;ChromeDriver&lt;/strong&gt; for Google Chrome, &lt;strong&gt;GeckoDriver&lt;/strong&gt; for Mozilla Firefox, and so on.&lt;/p&gt;

&lt;p&gt;When you run your Python code, WebDriver:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Receives commands from your script,&lt;/li&gt;
&lt;li&gt;Translates them into browser-native commands,&lt;/li&gt;
&lt;li&gt;Communicates these commands to the browser using either the &lt;strong&gt;JSON Wire Protocol&lt;/strong&gt; or the newer W3C WebDriver Protocol&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Browser (Chrome, Firefox, etc.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the actual web browser that performs the automated actions triggered by Selenium. The browser executes operations such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clicking buttons,&lt;/li&gt;
&lt;li&gt;Filling out forms,&lt;/li&gt;
&lt;li&gt;Navigating between web pages,&lt;/li&gt;
&lt;li&gt;Extracting text or other elements from the page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is controlled entirely by the WebDriver during execution.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Browser Driver Executable&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each browser has a corresponding driver executable that Selenium uses to communicate with it. These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;chromedriver&lt;/code&gt; for Google Chrome,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;geckodriver&lt;/code&gt; for Mozilla Firefox.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These drivers must be compatible with the version of the browser being automated. If there's a mismatch, the automation process might fail or behave unpredictably.&lt;/p&gt;

&lt;p&gt;Significance of Python Virtual Environment&lt;/p&gt;

&lt;p&gt;What is a Virtual Environment?&lt;/p&gt;

&lt;p&gt;A virtual environment is a self-contained directory that includes a Python interpreter and its own independent set of installed packages and dependencies. This environment is isolated from the global Python installation on your system.&lt;/p&gt;

&lt;p&gt;Why Use a Virtual Environment?&lt;/p&gt;

&lt;p&gt;Using a virtual environment is considered a best practice in Python development because it helps avoid version conflicts between different projects. Each project can have its own dependencies without interfering with others. For example, one project may require Selenium version 4.0, while another may use version 3.14. A virtual environment keeps these dependencies separated.&lt;/p&gt;

&lt;p&gt;It also ensures that your project is easily shareable and reproducible. You can create a &lt;code&gt;requirements.txt&lt;/code&gt; file that lists all packages needed, allowing other developers to recreate the same environment using &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Selenium?</title>
      <dc:creator>SATHEESH MADHAVARAPU</dc:creator>
      <pubDate>Sat, 19 Apr 2025 07:31:01 +0000</pubDate>
      <link>https://dev.to/satheesh_madhavarapu_302a/what-is-selenium-45f1</link>
      <guid>https://dev.to/satheesh_madhavarapu_302a/what-is-selenium-45f1</guid>
      <description>&lt;p&gt;Selenium is an open-source automation tool primarily used for automating web browsers. That means you can use Selenium to simulate real user actions—like clicking buttons, filling forms, or navigating pages—on a website, but automatically through code.&lt;br&gt;
It supports multiple programming languages including Python, Java, C#, and JavaScript, but Python is a favorite due to its readability and ease of use.&lt;/p&gt;

&lt;p&gt;Why Do We Use Selenium Automation?&lt;/p&gt;

&lt;p&gt;Selenium is used in test automation because:&lt;br&gt;
Saves Time &amp;amp; Effort: Manual testing of websites is slow and repetitive. Selenium can automate this process, running through hundreds of test cases in minutes.&lt;br&gt;
Consistency: Unlike humans, automation won't forget steps or make typos. It ensures your website works the same way every time.&lt;br&gt;
Cross-Browser Testing: It works with multiple browsers like Chrome, Firefox, Safari, etc., so you can test your site across different platforms.&lt;br&gt;
Regression Testing: If you change some code in your app, you want to make sure you didn’t break anything else. Selenium can rerun all your previous test cases quickly.&lt;/p&gt;

&lt;p&gt;Relevance of Selenium in Automation Testing Using Python&lt;/p&gt;

&lt;p&gt;Python + Selenium is a powerful combo for web automation. Here’s why it’s relevant:&lt;br&gt;
Python is beginner-friendly: You can write and understand tests quickly.&lt;br&gt;
Fast development time: Python’s syntax is clean, making it quicker to write test scripts.&lt;br&gt;
Rich ecosystem: Python has libraries like unittest, pytest, and Behave (for BDD) that integrate well with Selenium for building strong testing frameworks&lt;br&gt;
Real-world use: Many companies and QA teams use Selenium with Python to test web apps as part of their CI/CD pipelines.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Future of Manual Testing in the age of AI</title>
      <dc:creator>SATHEESH MADHAVARAPU</dc:creator>
      <pubDate>Sun, 02 Feb 2025 11:16:44 +0000</pubDate>
      <link>https://dev.to/satheesh_madhavarapu_302a/the-future-of-manual-testing-in-the-age-of-ai-3ggb</link>
      <guid>https://dev.to/satheesh_madhavarapu_302a/the-future-of-manual-testing-in-the-age-of-ai-3ggb</guid>
      <description>&lt;p&gt;Manual testing is not disappearing. Today, many companies are opting for automation testing to identify bugs early, reduce testing time, and minimize the need for manual testers. However, there are certain test scenarios that cannot be replaced by automation. Striking a balance between manual and automated testing is the smartest approach.&lt;/p&gt;

&lt;p&gt;Human critical thinking, creativity, and logic cannot be replicated by AI or automated tools. Clarifying end-user questions, considering the priority and severity of an issue, and understanding the context of the problem are tasks that automation tools cannot handle effectively.&lt;/p&gt;

&lt;p&gt;Some human qualities, such as the ability to understand and address issues raised in the product and identify their root causes, cannot be replaced by AI or automated tools. Debugging skills, critical thinking, and logic application based on real-world scenarios are essential and remain beyond the reach of automated systems. Additionally, analyzing market trends and adapting to new requirements during the software development lifecycle (SDLC) are areas where AI cannot fully replace human input.&lt;/p&gt;

&lt;p&gt;Automated tools execute code based on predefined inputs or logic, which means they cannot perform real-time testing. This can lead to the oversight of complex scenarios or edge cases, resulting in unexpected issues that would typically be identified by an end user during app usage. Such missed issues can lead to product errors in real-world situations. For these critical tasks, manual testing remains irreplaceable.&lt;/p&gt;

&lt;p&gt;While automated testing with AI can be highly effective for repetitive tasks, generating complex scenarios, and analyzing large datasets, human testers continue to play a critical role in applying insights, particularly when it comes to understanding user experience and ensuring product quality.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Boundary Value Analysis in Software Testing</title>
      <dc:creator>SATHEESH MADHAVARAPU</dc:creator>
      <pubDate>Sun, 02 Feb 2025 08:36:15 +0000</pubDate>
      <link>https://dev.to/satheesh_madhavarapu_302a/boundary-value-analysis-in-software-testing-2j3c</link>
      <guid>https://dev.to/satheesh_madhavarapu_302a/boundary-value-analysis-in-software-testing-2j3c</guid>
      <description>&lt;p&gt;Boundary Value Analysis is used to identify defects or errors in software that occur at or around the boundary limits of input ranges or sizes. This technique is applied when the input data has specific range constraints. Testing should be done using both positive and negative approaches. The system should accept valid test data (positive test data) and reject invalid test data (negative test data). If the system accepts negative or invalid test data without rejection, it indicates a deviation in the developed code.&lt;/p&gt;

&lt;p&gt;Let's consider a scenario where an online education portal has specific requirements for the user ID and password: the user ID must consist of 10-12 numeric characters, and the password must consist of 3-5 characters.&lt;/p&gt;

&lt;p&gt;User ID:&lt;/p&gt;

&lt;h2&gt;
  
  
   Valid Test Data                                  
&lt;/h2&gt;

&lt;p&gt;1234567891&lt;br&gt;&lt;br&gt;
 12345678910&lt;br&gt;&lt;br&gt;
 123456789101&lt;br&gt;&lt;br&gt;
 0102030405&lt;br&gt;&lt;br&gt;
 9874441234      &lt;/p&gt;

&lt;h2&gt;
  
  
  Invalid Test Data 
&lt;/h2&gt;

&lt;p&gt;12345&lt;br&gt;
123456789101123456789101 &lt;/p&gt;

&lt;p&gt;Password:&lt;/p&gt;

&lt;h2&gt;
  
  
   Valid Test Data                                 
&lt;/h2&gt;

&lt;p&gt;111                                                         &lt;/p&gt;

&lt;p&gt;Invalid Test Data  &lt;/p&gt;




&lt;p&gt;1111111&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Exploring the Different Types of Manual Testing</title>
      <dc:creator>SATHEESH MADHAVARAPU</dc:creator>
      <pubDate>Sun, 02 Feb 2025 08:03:54 +0000</pubDate>
      <link>https://dev.to/satheesh_madhavarapu_302a/exploring-the-different-types-of-manual-testing-1m8n</link>
      <guid>https://dev.to/satheesh_madhavarapu_302a/exploring-the-different-types-of-manual-testing-1m8n</guid>
      <description>&lt;p&gt;Software testing is a critical step before delivering a project to the customer, as it helps identify defects and ensures that the software meets customer requirements efficiently. There are two primary methods of testing: manual testing and automation testing. Manual testing is a process in which a test engineer evaluates the software manually, without the use of automated tools.&lt;/p&gt;

&lt;p&gt;When performing manual testing, various testing approaches are involved to ensure that the software operates efficiently in all aspects, as per the customer's requirements. The types of manual testing include the following:&lt;/p&gt;

&lt;p&gt;1.Functional Testing: This technique ensures that the software meets user expectations and functions as per customer requirement.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Smoke Testing : This involves a quick check of the software after new changes are implemented to ensure that the main features are not broken.&lt;/li&gt;
&lt;li&gt;Exploratory Testing: This technique focuses on identifying critical issues by allowing the tester to explore the application without predefined test scenarios or test cases. The tester investigates the application from top to bottom and left to right to ensure the stability of its features.&lt;/li&gt;
&lt;li&gt;Performance Testing: This technique is used to evaluate the efficiency and stability of the software under heavy load. For example, testing the software’s stability when 100 users access it simultaneously.&lt;/li&gt;
&lt;li&gt;Regression Testing: This technique ensures that the existing functionality of the product is not broken due to new enhancements. It is also used to test whether new features impact the existing functionality.&lt;/li&gt;
&lt;li&gt;Integration Testing: This technique ensures that data transfer between two systems, facilitated by web services, functions correctly.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
