<?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: CK Yumna</title>
    <description>The latest articles on DEV Community by CK Yumna (@ck_yumna_79d0c6f93da60a72).</description>
    <link>https://dev.to/ck_yumna_79d0c6f93da60a72</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%2F3857168%2F1de71bee-b977-46a8-b7ea-6f3db57ee8b1.jpg</url>
      <title>DEV Community: CK Yumna</title>
      <link>https://dev.to/ck_yumna_79d0c6f93da60a72</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ck_yumna_79d0c6f93da60a72"/>
    <language>en</language>
    <item>
      <title>Selenium for automation testing</title>
      <dc:creator>CK Yumna</dc:creator>
      <pubDate>Sun, 03 May 2026 10:17:33 +0000</pubDate>
      <link>https://dev.to/ck_yumna_79d0c6f93da60a72/selenium-for-automation-testing-5e00</link>
      <guid>https://dev.to/ck_yumna_79d0c6f93da60a72/selenium-for-automation-testing-5e00</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What is Selenium&lt;/strong&gt;:
&lt;/h2&gt;

&lt;p&gt;Selenium is a free automated testing framework used to validate web applications across different browsers and platforms. We can use multiple programming languages like java, C#, python... to create Selenium test scripts. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Selenium has 4 components:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Selenium IDE&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium RC&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium Webdriver&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium Grid&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why do we use selenium for automation?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The need for selenium arises from the limitation of manual testing. As applications grow in complexity and require frequent updates, manually testing every feature becomes time - consuming and prone to human error. Selenium addresses this issue by enabling automated test scripts that can be executed repeatedly with high accuracy. It supports multiple browsers like Chrome, Firefox, Safari... &lt;/p&gt;

&lt;p&gt;Selenium closely mimics real user behavior on web applications. Unlike some testing tools that operate at the code level, Selenium interacts directly with the browser, ensuring realistic testing scenarios. &lt;br&gt;
It also supports integration with testing framework such as pytest, unittest etc.. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is the relevance of Selenium in automation testing using python?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Selenium with python enables quick test development , faster execution, and easier maintenance of test scripts. It also supports data - driven testing , allowing testers to run the same test with multiple sets of input data.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>beginners</category>
      <category>testing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Python Selenium Architecture</title>
      <dc:creator>CK Yumna</dc:creator>
      <pubDate>Sun, 03 May 2026 08:24:53 +0000</pubDate>
      <link>https://dev.to/ck_yumna_79d0c6f93da60a72/python-selenium-architecture-5fma</link>
      <guid>https://dev.to/ck_yumna_79d0c6f93da60a72/python-selenium-architecture-5fma</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Selenium is a tool to automate web based and mobile based applications.&lt;br&gt;
For web based applications selenium is having inbuild drivers to communicate but for mobile based , selenium will need the additional source to communicate and it is called appium.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  High Level Selenium Architecture
&lt;/h2&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%2Fipq0eailvs3ayur5fz5n.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%2Fipq0eailvs3ayur5fz5n.png" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Language Binding:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where we write our automation code. &lt;br&gt;
Languages supported by Selenium are java, python, C#...&lt;br&gt;
It convert our code into WebDriver commands. It acts as an interface between user code and Selenium.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Browser Drivers:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the middle layer that connects code to browser.&lt;br&gt;
Eg:&lt;br&gt;
ChromeDriver, EdgeDriver, SafariDriver ...&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;3. Browsers : *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Final executions happen here.&lt;br&gt;
Eg :&lt;br&gt;
Chrome, edge , safari ...&lt;/p&gt;
&lt;h2&gt;
  
  
  Internal Selenium Architecture :
&lt;/h2&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%2Fvkol0ktb3m2dmdj7qrrm.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%2Fvkol0ktb3m2dmdj7qrrm.png" alt=" " width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Web Driver class:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the main entry point in Selenium.&lt;br&gt;
Eg:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It initializes the browser session. It sends commands to the Remote Webdriver.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remote Webdriver:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is the core component of Selenium.&lt;br&gt;
It receives commands from Webdriver class. Then it receives the commands into JSON format. Then it sends requests to browser drivers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Browser engine :&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Handles actual rendering.&lt;br&gt;
It interprets the commands and interacts with DOM.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Browser Drivers:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;They bridge between Selenium and browser and it executes instructions in browser.&lt;/p&gt;

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

&lt;p&gt;A python virtual environment allows developers to manage project dependencies independently. It is especially useful when working on multiple projects with different library requirements.&lt;/p&gt;

&lt;p&gt;It is very helpful when we are working on multiple projects. ie, for example if we are using Selenium version 4 in one project and Selenium version 3 in another project.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>automation</category>
      <category>python</category>
      <category>testing</category>
    </item>
    <item>
      <title>Task 1</title>
      <dc:creator>CK Yumna</dc:creator>
      <pubDate>Thu, 02 Apr 2026 11:40:54 +0000</pubDate>
      <link>https://dev.to/ck_yumna_79d0c6f93da60a72/task-1-73g</link>
      <guid>https://dev.to/ck_yumna_79d0c6f93da60a72/task-1-73g</guid>
      <description>&lt;h2&gt;
  
  
  Manual Testing :
&lt;/h2&gt;

&lt;p&gt;Before getting into Manual Testing ... lets quickly go through what is software testing?&lt;/p&gt;

&lt;p&gt;Software Testing is a phase in Software Development life Cycle used to detect the errors in the application or software developed.&lt;/p&gt;

&lt;p&gt;And Software Testing can be broadly classified into two:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manual testing&lt;/li&gt;
&lt;li&gt;Automation testing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Manual Testing is a type of software testing which is done by human. And this type of software testing consumes more time, and also there is chance of human errors.&lt;/p&gt;

&lt;p&gt;Different types of manual testing are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;White Box Testing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Black Box Testing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gray Box Testing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;White Box Testing&lt;/strong&gt;&lt;br&gt;
Once development activity is done and before converting the code into a working software, as a developer they have to check whether the code created is satisfying the client requirement or not.&lt;br&gt;
For that they will conduct a code level testing called &lt;strong&gt;White Box Testing&lt;/strong&gt;.&lt;br&gt;
White Box Testing is also known as:&lt;br&gt;
Glass box testing &lt;br&gt;
Transparent testing&lt;br&gt;
Unit testing&lt;/p&gt;

&lt;p&gt;some white box testing types are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;path testing : it checks all possible execution paths&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;loop testing : it checks the loops in the code works correctly ans efficiently&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;data flow testing : it tracks the flow in the code&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Black Box Testing&lt;/strong&gt;&lt;br&gt;
It is done by the Tester. No coding knowledge is needed for this type of testing. Here the tester tests every module or functionality using the UI and not the code part.&lt;/p&gt;

&lt;p&gt;It checks the software by pre-prepared test cases and if the the tester did not get the expected output then the tester will inform the developer team about the failure.&lt;/p&gt;

&lt;p&gt;Types of black box testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Functional testing : Here the tester checks whether each function or module works as expected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non - Functional testing : it tests on the non functional features of the software such as performance, load, quality...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regression testing: this type of testing is done when a new built is made or when any changes or updates is made to the software. it makes sure that the newly added code does not negatively effect the other working part of the software.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Gray Box Testing&lt;/strong&gt;&lt;br&gt;
It is a combination of both Black box and White box testing. Here the tester tests the software in both methods ... such as they will test it internally and also they will test the functionalities using test cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Boundary value analysis
&lt;/h2&gt;

&lt;p&gt;Boundary value analysis is a test case design technique... so lets first understand what are test cases?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test cases&lt;/strong&gt;&lt;br&gt;
Test cases are set of inputs along with their expected output used to verify whether a system works correctly.&lt;/p&gt;

&lt;p&gt;Now, Boundary value analysis is a test case design technique that is used to check the input at the boundary limits.&lt;/p&gt;

&lt;p&gt;ie, it checks at :&lt;/p&gt;

&lt;p&gt;n-1 , n and n+1&lt;/p&gt;

&lt;p&gt;for example:&lt;br&gt;
consider our lower bound is 10 and upper bound is 100.&lt;/p&gt;

&lt;p&gt;so the boundary value analysis tests the following inputs:&lt;br&gt;
9 , 10 , 11&lt;/p&gt;

&lt;p&gt;and &lt;/p&gt;

&lt;p&gt;99 , 100 , 101&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decision table testing&lt;/strong&gt;&lt;br&gt;
It tests the system with multiple conditions and their corresponding actions.&lt;/p&gt;

&lt;p&gt;The decision table gives a tabular view of actions based on different combinations of inputs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future of manual testing in the age of AI:
&lt;/h2&gt;

&lt;p&gt;The rise of AI helps in making the tasks of human easy.. like repetitive tasks can be automated , AI can do works using prior trained experience etc..&lt;/p&gt;

&lt;p&gt;But AI can't fully replace human intuition,  creativity .. like manual testers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;evaluate user experience&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;identify visual inconsistencies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;understand real world scenarios&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore we can conclude that AI won't replace manual testers job , rather it makes the work of the manual tester esy.&lt;/p&gt;

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