<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Bindhu Ashokan</title>
    <description>The latest articles on Forem by Bindhu Ashokan (@bindhu_ashokan_15).</description>
    <link>https://forem.com/bindhu_ashokan_15</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%2F3853943%2Fc4401111-cfb7-48fa-83dc-2773ddb77977.jpg</url>
      <title>Forem: Bindhu Ashokan</title>
      <link>https://forem.com/bindhu_ashokan_15</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bindhu_ashokan_15"/>
    <language>en</language>
    <item>
      <title>Python Selenium architecture</title>
      <dc:creator>Bindhu Ashokan</dc:creator>
      <pubDate>Sun, 03 May 2026 08:40:48 +0000</pubDate>
      <link>https://forem.com/bindhu_ashokan_15/python-selenium-architecture-1kp2</link>
      <guid>https://forem.com/bindhu_ashokan_15/python-selenium-architecture-1kp2</guid>
      <description>&lt;h2&gt;
  
  
  Python Selenium Architecture
&lt;/h2&gt;

&lt;p&gt;The Selenium WebDriver architecture facilitates communication between your Python script and the web browser. it consists of four mani components:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Selenium Client Library:&lt;/strong&gt; This is python code you write. It includes the selenium commands you want to execute.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;you write test scripts using python.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It provides APIs like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;find_element()&lt;/li&gt;
&lt;li&gt;click()&lt;/li&gt;
&lt;li&gt;send_key()&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. WebDriver:&lt;/strong&gt; WebDriver acts as a bridge between your Python code and the browser.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Convert your commands into HTTP requests (JSON format).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Send them to browser driver.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Browser Drivers:&lt;/strong&gt; Each browser has its own driver&lt;br&gt;
&lt;strong&gt;Eg:&lt;/strong&gt; chrome driver for Chrome, gecko driver for Firefox.&lt;br&gt;
The driver act as an intermediary, receiving the HTTP requests and translating them into instructions the browser understands. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Browser:&lt;/strong&gt; The end-point where the actual execution happens(&lt;strong&gt;eg&lt;/strong&gt; Chrome, Safari, Edge).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flow:&lt;/strong&gt; Python Script - JSON Wire Protocol - Browser Driver - Real Browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working Flow of Selenium Architecture
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Python Script sends a command&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WebDriver converts it into JSON request&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browser Driver receives request&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browser executes  action&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Response is sent back &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is the significance of the Python Virtual Environment? Give some examples in support of your answer ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When developing software with Python, a basic approach is to install Python on your machine, install all your required libraries via the terminal, write all your code in a single .py file or notebook, and run your Python program in the terminal.&lt;/p&gt;

&lt;p&gt;This is a common approach for a lot of beginners and many people transitioning from working with Python for data analytics.&lt;/p&gt;

&lt;p&gt;This works fine for simple Python scripting projects. But in complex software development projects, like building a Python library, an API, or software development kit, often you will be working with multiple files, multiple packages, and dependencies. As a result, you will need to isolate your Python development environment for that particular project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can have multiple environments, with multiple sets of packages, without conflicts among them. This way, different projects’ requirements can be satisfied at the same time.&lt;br&gt;
You can easily release your project with its own dependent modules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up a Virtual Environment
&lt;/h2&gt;

&lt;p&gt;Here's a quick guide on how to set up and use a virtual environment:&lt;/p&gt;

&lt;p&gt;Install Python Virtual Environment&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pip install virtualenv&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Verify Python Virtual Environment&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtualenv --version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create Virtual Environment ( To create project folder )&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;virtualenv&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;cd&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Activate Virtual Environment&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scripts\activate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deactivate Virtual Environment&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scripts\deactivate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install Python Selenium Module&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pip install selenium&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install Python WebDriver Manager Module&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pip install webdriver-manager&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The use of Python Virtual Environments is essential for managing project dependencies effectively and ensuring that different projects can coexist peacefully on the same system.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>automation</category>
      <category>python</category>
      <category>testing</category>
    </item>
    <item>
      <title>Selenium and Its Relevance in Automation Testing with Python</title>
      <dc:creator>Bindhu Ashokan</dc:creator>
      <pubDate>Thu, 30 Apr 2026 17:09:44 +0000</pubDate>
      <link>https://forem.com/bindhu_ashokan_15/selenium-and-its-relevance-in-automation-testing-with-python-3lmd</link>
      <guid>https://forem.com/bindhu_ashokan_15/selenium-and-its-relevance-in-automation-testing-with-python-3lmd</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Modern software applications are updated often with new features, interface improvements, and bug fixes. Testing these changes manually each time can take a lot of time and effort. It can also lead to mistakes because repetitive tasks are hard to perform perfectly. To improve efficiency, companies use automation testing tools. One of the most popular tools for web automation testing is Selenium.&lt;/p&gt;

&lt;p&gt;This article explains what Selenium is, why it is widely used for automation, and how it works with Python in automation testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is selenium?
&lt;/h2&gt;

&lt;p&gt;Selenium is an open-source framework used to automate web browsers, primarily for testing web applications across different browsers and platforms. It’s widely adopted by developers and testers because it supports multiple programming languages and allows cross-browser, cross-platform testing.&lt;/p&gt;

&lt;p&gt;The most important part of Selenium is WebDriver, which communicates directly with the browser and executes automation commands.&lt;/p&gt;

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

&lt;p&gt;Selenium is not a single tool but a suite of tools, which includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selenium WebDriver&lt;/strong&gt; - Automates browser actions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selenium IDE&lt;/strong&gt; - Record and playback tool&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selenium Grid&lt;/strong&gt; - Runes test in parallel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selenium Drivers&lt;/strong&gt; - Connect selenium to browser &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With selenium, you can automate tasks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Clicking button&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Entering text into forms&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigating between pages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verifying UI elements&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;There are plenty of automation tools available today, but Selenium still remains one of the top choices for testers. It’s simple, flexible, and works well with almost any setup. Here are some of the main reasons why testers prefer Selenium for automation testing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cross-Browser Support&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Works with Chrome, Firefox, Edge, Safari, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensures applications behave consistently across different browsers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Language Flexibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Supports multiple programming languages (Python, Java, C#, Ruby, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python is especially favored for its simplicity and readability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Open Source&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No licensing costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Large community support with constant updates and resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Integration with Testing Frameworks&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Works seamlessly with frameworks like pytest, unittest, and CI/CD tools (Jenkins, GitHub Actions).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enables structured test cases, reporting, and continuous testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Automation of Real User Actions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Simulates clicks, typing, scrolling, and navigation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Validates how users interact with web applications.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Scalability with Selenium Grid&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Runs tests in parallel across multiple machines and browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Saves time and speeds up regression testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Handles Dynamic Web Content&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Supports waits (implicit/explicit) to deal with AJAX and JavaScript-heavy pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduces flaky tests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Role of Python in Selenium Automation
&lt;/h2&gt;

&lt;p&gt;Python is one of the most popular languages used with Selenium because of its simple syntax and readability. It allows testers to write automation scripts quickly without complicated code.&lt;/p&gt;

&lt;p&gt;Python also offers several testing frameworks and libraries that support automation projects. These tools help organize test cases, run them efficiently, and create test reports.&lt;/p&gt;

&lt;p&gt;Another benefit is the strong community support for both Python and Selenium, making learning and troubleshooting easier for beginners.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Selenium Script in Python
&lt;/h2&gt;

&lt;p&gt;from selenium import webdriver&lt;br&gt;
from selenium.webdriver.common.by import By&lt;/p&gt;

&lt;p&gt;driver = webdriver.Chrome()&lt;br&gt;
driver.get("&lt;a href="https://facebook.com%22" rel="noopener noreferrer"&gt;https://facebook.com"&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;heading = driver.find_element(By.TAG_NAME, "h1")&lt;br&gt;
print(heading.text)&lt;br&gt;
driver.quit()&lt;/p&gt;

&lt;p&gt;This script opens a browser, loads a webpage, finds a heading element, prints its text, and then closes the browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Selenium is a powerful and flexible tool for automating web application testing. It helps teams reduce manual effort, improve test accuracy, and run tests faster. When paired with Python, Selenium becomes even easier to use because Python’s clear syntax simplifies automation script development. Learning Selenium with Python is a valuable skill for anyone interested in software testing and automation.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>python</category>
      <category>testing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Common Manual Testing Techniques and The Future of Manual Testing in the age of AI</title>
      <dc:creator>Bindhu Ashokan</dc:creator>
      <pubDate>Thu, 02 Apr 2026 12:48:51 +0000</pubDate>
      <link>https://forem.com/bindhu_ashokan_15/common-manual-testing-techniques-and-the-future-of-manual-testing-in-the-age-of-ai-5bgl</link>
      <guid>https://forem.com/bindhu_ashokan_15/common-manual-testing-techniques-and-the-future-of-manual-testing-in-the-age-of-ai-5bgl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
        Software testing is a process of checking whether a software application working correctly or not Testers check the application to find bugs before it is used by real users. Manual testing is a type of software testing where testers check the application manually without using any automation tools. In this approach, a tester plays the role of an end user and checks whether the application behaves as expected. The blog explores common manual testing types and techniques, explains Boundary value Analysis and Decision Table Testing in detail and discusses how manual testing is evolving in the modern AI-driven &lt;br&gt;
software industry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manual Testing Techniques&lt;/strong&gt;&lt;br&gt;
  Manual testing techniques are structured methods used to design and execute test cases effectively. Unlike testing type, which define what to test, techniques focus on how to test. It has Three types &lt;strong&gt;White Box Testing (WBT), Black Box Testing (BBT) and Gray Box Testing (GBT)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. White Box Testing (WBT)&lt;/strong&gt;&lt;br&gt;
     The tester has full knowledge of internal works including the source code, data structures and algorithms it is also called as Glass testing, Unit testing.&lt;br&gt;
&lt;strong&gt;Techniques&lt;/strong&gt;&lt;br&gt;
         1. Branch Coverage&lt;br&gt;
         2. Path Coverage&lt;br&gt;
         3. Statement Coverage&lt;br&gt;
         4. Cyclometric Complexity&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Black Box Testing (BBT)&lt;/strong&gt;&lt;br&gt;
       The tester has no knowledge of the software internal structure, design or code. The focus is purely on the inputs and outputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
    Testing a login form by entering various valid and invalid username and password to see the system correctly grant or denies access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type of black box testing&lt;/strong&gt;&lt;br&gt;
       1.  Functional testing&lt;br&gt;
       2.  Nonfunctional testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Functional testing&lt;/strong&gt;&lt;br&gt;
         Functional testing verifies what a software system does by testing its specific features and operations against the specified requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Nonfunctional testing&lt;/strong&gt;&lt;br&gt;
          Nonfunctional testing verifies how the system performs those functions, focusing on quality attributes like speed, security and usability. Both are essential for delivering a high quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Gray Box Testing&lt;/strong&gt;&lt;br&gt;
          It is a combination of White box testing and Black box testing that mean we have partial access for the code and full access for the UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boundary Value Analysis (BVA)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Boundary Value Analysis focuses on testing values at the edges of input ranges, because most errors happen at boundaries. The Main advantage of BVA is its effectiveness in identifying boundary-related issues. By focusing on these critical points, testers can provide comprehensive test coverage for values that are statistically more likely to cause errors. This targeted approach is also cost-effective, as it efficiently uncovers significant defects. BVA remains a vital component of a robust testing strategy, ensuring software reliability and quality. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula&lt;/strong&gt;     n-1, n, n+1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Condition: User can enter age between 18 and 60&lt;/p&gt;

&lt;p&gt;Minimum=18 &lt;br&gt;
Input age:  17 18 19&lt;/p&gt;

&lt;p&gt;Maximum=60&lt;br&gt;
Input age: 59 60 61&lt;/p&gt;

&lt;p&gt;Boundary Valid Value: 18 19 59 60&lt;br&gt;
Boundary Invalid Value: 17 61&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decision Table Testing&lt;/strong&gt;&lt;br&gt;
         Decision table testing is a software testing technique used to test system behaviors for different combinations of inputs and their corresponding output using a tabular format. this is systematic approach. When the system has complex business rule, then the decision table testing technique helps in identifying the correct test cases.&lt;br&gt;
         The advantages of this approach are significant. It provides complete test coverage of all input combinations, minimizing the risk of overlooked scenarios. Moreover, it simplifies the identification of missing or conflicting business rules, enhancing the overall quality of the software specification. For large systems with numerous inputs and rules, the complexity of the table can become overwhelming. The process of creating and executing these tables can be time-consuming. Decision Table Testing proves to be an invaluable tool for ensuring software reliability and accuracy in complex environments. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Create a Login screen&lt;br&gt;
  Let's make a login screen with a decision table. A login screen with user id and password, Input boxes and submit button.&lt;br&gt;
  If Username and Password is correct the user will be redirected to the homepage, If the input is wrong error message will be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Future of Manual Testing using AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI Software Testing involves integrating artificial intelligence and machine learning algorithms into the software testing process. It provides more accurate results and saves time. In the market, variety of AI tools are available to enhance Manual Testing. These AI tools are revolutionizing four main functions of software testing like test case preparation, test data generation, predicting defects and analyzing results.&lt;/p&gt;

&lt;p&gt;Test Case Preparation&lt;/p&gt;

&lt;p&gt;AI can analyze user behavior, application descriptions, historical data to automatically generate test cases, focusing on critical areas and prioritizing high risk scenarios. AI can interpret natural language descriptions using NLP (Natural Language Processing) of testcases and it can automatically translate them into executable test scripts.&lt;/p&gt;

&lt;p&gt;Test Data generation&lt;br&gt;
AI can create test data that closely resembles real user inputs enhancing the quality of testing&lt;/p&gt;

&lt;p&gt;Test Execution&lt;br&gt;
AI can prioritize critical test cases, saving time and resources by executing only essential test cases. It can facilitate parallel execution across multiple environments, reducing execution time. It eliminates repetitive tests.&lt;/p&gt;

&lt;p&gt;Debugging&lt;br&gt;
AI can easily identify unusual patterns in application behavior, helping human tester to find potential issues and bugs. AI can also help identify areas where defects are more likely to occur so that testers focus their efforts on the most vulnerable part of application. AI can also analyze system logs and other data to help identify the root cause of the defects.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>testing</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
