<?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: Indu Karthick kumar</title>
    <description>The latest articles on DEV Community by Indu Karthick kumar (@indu_karthickkumar_39374).</description>
    <link>https://dev.to/indu_karthickkumar_39374</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%2F2941924%2F222342ca-e794-4e25-8e8b-82eb2ea14e51.jpg</url>
      <title>DEV Community: Indu Karthick kumar</title>
      <link>https://dev.to/indu_karthickkumar_39374</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/indu_karthickkumar_39374"/>
    <language>en</language>
    <item>
      <title>Python Selenium Architecture and Significance of Python Virtual Environment</title>
      <dc:creator>Indu Karthick kumar</dc:creator>
      <pubDate>Wed, 04 Jun 2025 19:02:35 +0000</pubDate>
      <link>https://dev.to/indu_karthickkumar_39374/python-selenium-architecture-and-significance-of-python-virtual-environment-1g19</link>
      <guid>https://dev.to/indu_karthickkumar_39374/python-selenium-architecture-and-significance-of-python-virtual-environment-1g19</guid>
      <description>&lt;h2&gt;
  
  
  Python Selenium Architecture
&lt;/h2&gt;

&lt;p&gt;Selenium is a widely-used open-source tool designed for automating web browsers.&lt;/p&gt;

&lt;p&gt;When utilizing Selenium with Python, its architecture consists of several layers and components that collaborate to automate browser activities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&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%2Fu6yfmi8kvibudh0yz1jn.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%2Fu6yfmi8kvibudh0yz1jn.png" alt="Selenium Python Architecture" width="442" height="673"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Python Test Script
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Written using Selenium Python Bindings.&lt;/li&gt;
&lt;li&gt;Contains test logic: locate elements, click, send keys, assertions, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selenium WebDriver
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt; A Python library (selenium) that provides an interface to communicate with different browser drivers.&lt;/li&gt;
&lt;li&gt;Converts the Python commands into HTTP requests (JSON Wire Protocol was used by Selenium &amp;lt;= 3.x and now W3C WebDriver protocol is used by Selenium 4+).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Browser Drivers
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Acts as a bridge between WebDriver and browser.&lt;/li&gt;
&lt;li&gt;Examples: chromedriver for Chrome, geckodriver for Firefox.&lt;/li&gt;
&lt;li&gt;Accepts WebDriver commands in JSON format over HTTP (following the W3C WebDriver standard) and communicates with the actual browser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Browsers
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Actual browsers like Chrome, Firefox, Edge, Safari.&lt;/li&gt;
&lt;li&gt;Perform requested actions (like opening a URL, clicking a button, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Benefits of this architecture
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enables compatibility across different browsers.&lt;/li&gt;
&lt;li&gt;Maintains test logic that is independent of programming languages (the same architecture can be used in Java, C#, etc.).&lt;/li&gt;
&lt;li&gt;Facilitates remote execution through Selenium Grid.&lt;/li&gt;
&lt;li&gt;Separates test scripts from the browser, enhancing flexibility&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Python Virtual Environment
&lt;/h2&gt;

&lt;p&gt;A Python Virtual Environment is an independent directory that includes a specific version of Python along with its associated libraries. It segregates dependencies for various projects, avoiding conflicts and ensuring that each project operates in its own distinct environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advantages
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Prevent conflicts among various projects&lt;/li&gt;
&lt;li&gt;Maintain a clean and tidy system&lt;/li&gt;
&lt;li&gt;Install and test new packages securely&lt;/li&gt;
&lt;li&gt;This is particularly beneficial when multiple projects need different versions of the same package.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps to setup Python virtual environment
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1:
&lt;/h4&gt;

&lt;p&gt;Create a virtual environment. This creates a folder "venv" with its own Python and pip libraries.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -m venv your_project_env&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Note: pip is a package management system designed for installing and managing software packages developed in Python. It enables users to effortlessly install, upgrade, and uninstall Python packages from the Python Package Index (PyPI) as well as other repositories.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2:
&lt;/h4&gt;

&lt;p&gt;Activate the virtual environment for Windows&lt;/p&gt;

&lt;p&gt;&lt;code&gt;your_project_env\Scripts\activate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once the virtual environment is activated we can see the console is turned to (venv)&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%2Fqjbmrcloqjtyhrn2rq10.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%2Fqjbmrcloqjtyhrn2rq10.png" alt="PyCharm Console" width="456" height="39"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3:
&lt;/h4&gt;

&lt;p&gt;Install the required packages using &lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install package_name&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This installs the given "package_name" library only inside the virtual environment, not at global level.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4:
&lt;/h4&gt;

&lt;p&gt;Freeze the local package environment&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip freeze &amp;gt; requirements.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This requirement.txt with a list of all installed packages and their versions. It can be used to recreate the same environment later.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5:
&lt;/h4&gt;

&lt;p&gt;Deactivate the Environment&lt;br&gt;
To get back to the default Python environment &lt;br&gt;
&lt;code&gt;deactivate&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Examples to understand the use of Virtual Environment better
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Example 1:
&lt;/h4&gt;

&lt;p&gt;To create a weather application using virtual environment&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Create a virtual environment
python -m venv weather_env

# Activate the environment
# Windows:
weather_env\Scripts\activate

# Install the requests package
pip install requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the "requests" package can be used only within this project, without disturbing the global setup.&lt;/p&gt;

&lt;h4&gt;
  
  
  Example2:
&lt;/h4&gt;

&lt;p&gt;If I want to include fun jokes to one of my project, then it can be done via virtual environment, without changing the global setup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python -m venv add_joke
add_joke\Scripts\activate
pip install pyjokes

#importing the pyjokes inside the class
import pyjokes
print("😂 Start your day with a fun joke:", pyjokes.get_joke())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Example 3:
&lt;/h4&gt;

&lt;p&gt;Consider 2 different projects need different version of requests package, then activating virtual environment for each project with the required version of requests package allows the projects to run without any conflicts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Project A
python -m venv projectA_env
projectA_env\Scripts\activate
pip install requests==2.25.0

deactivate

# Project B
python -m venv projectB_env
projectB_env\Scripts\activate
pip install requests==2.31.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Example 4:
&lt;/h4&gt;

&lt;p&gt;Consider if we want to test a new script using "yagmail", we can use virtual environment instead of changing the global setup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python -m venv yagmail_env
yagmail_env\Scripts\activate
pip install yagmail
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can deactivate the venv once the testing is completed. &lt;/p&gt;

&lt;h2&gt;
  
  
  Summary:
&lt;/h2&gt;

&lt;p&gt;Whenever we start a new Python project, always create a virtual environment first. It’s one of the best habits we can develop as a Python beginner &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Selenium: Importance and Use in Web Automation with Python</title>
      <dc:creator>Indu Karthick kumar</dc:creator>
      <pubDate>Fri, 30 May 2025 18:12:37 +0000</pubDate>
      <link>https://dev.to/indu_karthickkumar_39374/selenium-importance-and-use-in-web-automation-with-python-23he</link>
      <guid>https://dev.to/indu_karthickkumar_39374/selenium-importance-and-use-in-web-automation-with-python-23he</guid>
      <description>&lt;h2&gt;
  
  
  What is Selenium?
&lt;/h2&gt;

&lt;p&gt;Selenium is a free and open-source tool created for automating the testing of web applications across various browsers and platforms.&lt;/p&gt;

&lt;p&gt;It allows for the automation of user actions, including clicking buttons, entering text, navigating between pages, and selecting options from drop-down menus.&lt;/p&gt;

&lt;p&gt;It is extensively utilized in both functional and regression testing, and it integrates seamlessly with frameworks like TestNG, JUnit, and pytest, as well as CI/CD tools like Jenkins.&lt;/p&gt;

&lt;p&gt;With its support for parallel execution and headless testing, Selenium enhances the speed, reliability, and efficiency of testing web applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Selenium Components
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Selenium Core: The original version created by Jason Huggins in 2004, utilizing a JavaScript-based framework. This version is now outdated due to several limitations:&lt;br&gt;
       It could only test web applications hosted on the same domain (same-origin policy)&lt;br&gt;
       Security restrictions imposed by browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium RC: An enhanced version of Selenium Core, which is now deprecated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium IDE: A user-friendly tool for recording and playback, ideal for beginners. However, it is not suitable for complex real-time projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium WebDriver: The most widely used component of Selenium in real-time projects. It interacts directly with the browser using native commands, offering speed, flexibility, and support for dynamic pages.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why use Selenium for automation?
&lt;/h2&gt;

&lt;p&gt;The following benefits of Selenium encourage its use for test automation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Selenium is an open-source tool with no licensing fees, making it accessible for both individuals and organizations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It supports multiple programming languages, including Java, Python, C#, Ruby, and JavaScript, providing great flexibility based on the development environment or the tester's expertise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cross-browser testing is achievable with browsers like Chrome, Firefox, Edge, Safari, and others.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It supports cross-platform functionality, allowing tests to be executed on various operating systems such as Windows, macOS, and Linux.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It easily integrates with testing frameworks and tools such as:&lt;br&gt;
  TestNG / JUnit / NUnit (testing frameworks)&lt;br&gt;
  Maven / Gradle (build tools)&lt;br&gt;
  Jenkins / GitHub Actions (CI/CD)&lt;br&gt;
  Allure / ExtentReports (reporting)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium WebDriver mimics real user interactions with the browser, which is beneficial for functional and regression testing of web applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parallel test execution is facilitated through Selenium Grid, enabling tests to run simultaneously across multiple machines and browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;large community and robust support, learning is straightforward, with easy access to assistance, tutorials, and updates. There are numerous plugins and third-party integrations available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium enables tests to be executed without launching the browser (headless mode). This capability is perfect for CI pipelines and enhances execution speed.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Selenium automation using Python
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Python is straightforward and easy to grasp, which enhances the conciseness and readability of Selenium test scripts. This is particularly beneficial for those new to automation 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%2Fb5rt8wc37qoti2fhu1s2.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%2Fb5rt8wc37qoti2fhu1s2.png" alt="Image description" width="533" height="432"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium officially supports Python, which ensures it is stable, thoroughly documented, and consistently updated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python facilitates rapid script development, leading to quicker creation and upkeep of test automation suites.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium offers excellent integration with the Python ecosystem, including&lt;br&gt;
pytest or unittest (for executing tests)&lt;br&gt;
Pandas and NumPy (for managing data)&lt;br&gt;
Allure and pytest-html (for generating reports)&lt;br&gt;
Requests (for hybrid frameworks combining API and UI testing)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python combined with Selenium is frequently utilized in Jenkins, GitHub Actions, GitLab CI, and similar platforms for the purpose of automated testing pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Summary:&lt;br&gt;
"With Python, Selenium becomes a powerful, easy, and scalable solution for web automation testing."&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Manual Testing Techniques and future of manual testing in the age of AI</title>
      <dc:creator>Indu Karthick kumar</dc:creator>
      <pubDate>Fri, 14 Mar 2025 07:23:52 +0000</pubDate>
      <link>https://dev.to/indu_karthickkumar_39374/manual-testing-techniques-and-future-of-manual-testing-in-the-age-of-ai-163o</link>
      <guid>https://dev.to/indu_karthickkumar_39374/manual-testing-techniques-and-future-of-manual-testing-in-the-age-of-ai-163o</guid>
      <description>&lt;p&gt;&lt;strong&gt;Common Manual Testing Techniques:&lt;/strong&gt;&lt;br&gt;
As a tester in Software development process, we need to make sure that the software product works as intended and meets high quality. In order to achieve this, we use various testing techniques like &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boundary value analysis&lt;/li&gt;
&lt;li&gt;Equivalence partitioning&lt;/li&gt;
&lt;li&gt;Decision table testing&lt;/li&gt;
&lt;li&gt;State transition Testing&lt;/li&gt;
&lt;li&gt;Use case testing&lt;/li&gt;
&lt;li&gt;Error guessing, etc
These techniques enable us to cover all possible test scenarios and identify as many defects as possible, ensuring the delivery of a high-quality application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Boundary value analysis (BVA):&lt;/strong&gt;  Input values near the boundaries are the place where the chances of defect occurrence are high. BVA focusses on testing the boundaries of the input range. For example, &lt;br&gt;
if a "Name" textbox accepts minimum 10 characters and maximum 20 characters, then in BVA values are:&lt;br&gt;
Boundary values for minimum input: 9, 10, 11&lt;br&gt;
Boundary value for maximum input: 19, 20, 21.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decision Table Testing:&lt;/strong&gt; This testing technique is used to test complex applications using combinations of inputs and the corresponding outputs.&lt;br&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Discount on clothes based on age and membership in the store/shop&lt;br&gt;
Condition1: Above 60?&lt;br&gt;
Condition 2: customer has membership in the shop?&lt;br&gt;
and&lt;br&gt;
Action 1: 20% discount&lt;br&gt;
Action 2: 10 % discount&lt;br&gt;
Action 3: No discount&lt;/p&gt;

&lt;p&gt;Age      Membership    20% disc    10% disc No disc&lt;br&gt;
Above 60     Yes       Yes             No           No&lt;br&gt;
Above 60     No            No              Yes          No&lt;br&gt;
Below 60     Yes       No              Yes          No&lt;br&gt;
Below 60     No            No              No           Yes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Future of Manual Testing in the Age of AI:&lt;/strong&gt;&lt;br&gt;
Artificial Intelligence(AI) cannot entirely replace the manual testing. Instead, it should be integrated with manual testing. AI must be trained by manual testers utilizing the application's testing history. This training enables AI to manage test scenarios independently, relying on historical data without requiring human intervention. Meanwhile, manual testing remains essential in areas that demand critical thinking, human intuition, and specialized knowledge.&lt;/p&gt;

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