<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Prasanth V on Medium]]></title>
        <description><![CDATA[Stories by Prasanth V on Medium]]></description>
        <link>https://medium.com/@prasanth.v_35809?source=rss-a5955d7dc8b6------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*0eMFacFKlB-aPARZ</url>
            <title>Stories by Prasanth V on Medium</title>
            <link>https://medium.com/@prasanth.v_35809?source=rss-a5955d7dc8b6------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 31 May 2026 18:47:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@prasanth.v_35809/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Implementing BDD Automation Testing with Cucumber in Python.]]></title>
            <link>https://medium.com/@prasanth.v_35809/implementing-bdd-automation-testing-with-cucumber-in-python-aae99f1cbd8b?source=rss-a5955d7dc8b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/aae99f1cbd8b</guid>
            <dc:creator><![CDATA[Prasanth V]]></dc:creator>
            <pubDate>Fri, 22 Sep 2023 10:19:04 GMT</pubDate>
            <atom:updated>2023-10-20T10:18:16.288Z</atom:updated>
            <content:encoded><![CDATA[<p>In this blog, we will understand the concepts of BDD, understand the power of Cucumber, and discover how to create efficient and maintainable automated tests for Python projects.</p><p>By <a href="https://medium.com/u/a5955d7dc8b6">Prasanth V</a> — “Keep calm and automate on — the mantra of a proficient automation tester.”</p><p><em>This document presents the fundamental ideas and technologies required for automating web-based applications using Selenium WebDriver, Cucumber, and Python</em></p><blockquote><strong>What is Cucumber?</strong></blockquote><p>Cucumber is a tool that facilitates behavior-driven development (BDD), allowing for the definition of testing steps in plain English language (Gherkin). This makes it easily comprehensible to non-technical team members and business stakeholders. Cucumber is versatile and supports various programming languages such as Java, C#, Ruby, and Python, among others.</p><blockquote><strong>What is Selenium?</strong></blockquote><p>Selenium is an automation testing tool (open source) that can execute several functional test cases for web-based applications across multiple browsers. It supports multiple languages like Java, C#, Ruby, python, etc.</p><blockquote><strong>What is BDD?</strong></blockquote><p>Behavior Driven Development (BDD) is a method for crafting test cases in a format easily comprehensible to humans, utilizing Gherkin as a tool. BDD serves the dual purpose of enhancing communication between analysts and developers while also closing the divide between manual QA testers and automation testers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/498/1*8IeIVs6bS0uNDPZxxl8t1w.gif" /></figure><p><strong>Example:</strong></p><p>Let us understand with this simple example which we will add in the feature file.</p><pre>Feature: Caratlane Login<br><br>  Scenario: Login to caratlane with valid parameters<br>    Given Launching chrome browser<br>    When Open caratlane Login page<br>    And  Enter userName &quot;xxxxxxxx6@caratlane.com&quot;<br>    And  click continue to login button<br>    And  Enter Password &quot;YYYYYY&quot;<br>    And  click on the Login button<br>    Then User must logined successfully</pre><p>Let’s now explore the intent behind each keyword within the Gherkin syntax.</p><p><strong>Feature</strong>: What are we testing?<br><strong>Scenario</strong>: How are we testing it?<br><strong>Given</strong>: What is the starting state?<br><strong>When</strong>: What do we do?<br><strong>Then</strong>: What should happen?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*dINIz6Y9nApBa-sO.jpeg" /></figure><blockquote><strong><em>Why use Cucumber with Selenium?</em></strong></blockquote><ol><li>Cucumber simplifies the process of reading and comprehending the application’s workflow.</li><li>Selenium enables the execution of your functional test cases in web browsers.</li><li>By combining Cucumber and Selenium, the divide between technical and non-technical team members is eliminated.</li><li>Simplifies the understanding of test cases for clients.</li></ol><blockquote><strong>Create Project in pycharm:</strong></blockquote><p>Create a Python Project as shown in the screenshot.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/808/1*whiPXX1-dxD4_cBiBsoPIA.png" /></figure><blockquote>Adding Package files in the project:</blockquote><p>Click on the File&gt; Setting &gt;Python interpreter Add all the libraries downloaded Selenium, Cucumber.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*1mQfzadVV209arkI.png" /></figure><blockquote><strong>Creating a Feature File:</strong></blockquote><ol><li>Create a new file in the testing directory of the Python project.</li><li>Name the file with an .feature extension. For example, testing.feature</li><li>In the feature file, write the feature name, scenarios, and test steps.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/231/1*dSOEBNkQ04ioFLmJrLXabw.png" /></figure><blockquote><strong><em>Add scenario in the Cucumber feature file:</em></strong></blockquote><p>Create a new file in the testing directory of the project.</p><ol><li>Name the file with an .py extension. For example, testing.feature.Steps.py.</li><li>In the step file, write the step definitions for the steps that are used in feature files.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/731/1*FL1PzXnYYfqizG6xjfGZsQ.png" /></figure><blockquote><strong>Create Step Definition :</strong></blockquote><p>A Step Definition that corresponds to and is connected with Gherkin language feature files. Essentially, a Step Definition defines the actions to be taken for each step mentioned in the feature files. For every step in the feature file, a corresponding step definition method should be included. This ensures that each step in the feature file (whether it’s a Given, When, or Then step) has an associated method that defines its execution.</p><p>When you execute a feature file with Cucumber, the framework automatically runs the step definition methods that are linked to the steps in that feature file.</p><p>To illustrate this process, we first create a StepDefinition package and then add a login.py within it to organize and manage the step definition methods.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/976/1*EYZ8M_29iAbumtIW_gNvFA.png" /></figure><blockquote><strong>Executing the Script:</strong></blockquote><p>We can execute the script using the behave command</p><blockquote><strong>Output of the script.</strong></blockquote><p>On successful execution, this is how the output is shown with each step mentioned.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*pABTPuYeJoflHpc09e8_Vw.gif" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2IpeLLmimp-wvAFs3rDCoQ.png" /></figure><p>Automating BDD tests with Python is a proactive approach that can significantly enhance the reliability and effectiveness testing process. By reducing the need for manual intervention and ensuring the precision of test results, can offer a more dependable testing experience. Embracing BDD automation with Python ensures that testing procedures consistently yield accurate results, leading to a more effective and engaging testing process.</p><blockquote><strong>References:</strong></blockquote><p><a href="https://cucumber.io/docs/cucumber/">Cucumber</a></p><h3>Meet the team!</h3><p><strong>Author</strong></p><p><a href="https://medium.com/u/a5955d7dc8b6">Prasanth V</a></p><p><strong>Reviewer</strong></p><p><a href="https://medium.com/u/a49f5aaf7243">Gokul M</a></p><p><strong>Editor</strong></p><p><a href="https://medium.com/u/edf661ca4697">Seema Jain</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aae99f1cbd8b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Python-Based Automation Using BDD]]></title>
            <link>https://medium.com/@prasanth.v_35809/python-based-automation-using-bdd-39aff215a233?source=rss-a5955d7dc8b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/39aff215a233</guid>
            <dc:creator><![CDATA[Prasanth V]]></dc:creator>
            <pubDate>Thu, 21 Sep 2023 10:06:02 GMT</pubDate>
            <atom:updated>2023-09-22T04:08:57.364Z</atom:updated>
            <content:encoded><![CDATA[<p><em>This document presents the fundamental ideas and technologies required for automating web-based applications using Selenium WebDriver, Cucumber, and Python.</em></p><p><strong><em>Python:</em></strong></p><p>Python is a powerful and versatile programming language that can be used to build all sorts of software, from websites and apps to data analysis tools and automation scripts.</p><p><strong><em>Advantages of using Python-based automation:</em></strong></p><ul><li><strong>Easy to learn and use: </strong>Python is beginner-friendly. It’s easy to grasp with its simple rules and has a big community for support.</li><li><strong>Save time and effort:</strong> Python automation simplifies tasks, saving both time and effort by handling them automatically.</li><li><strong>Increase productivity:</strong> Python automation makes more productive by handling tasks like report generation, leaving more time for important tasks like data reports.</li></ul><p><strong><em>Introduction to BDD:</em></strong></p><ol><li><strong>Behavior-Driven Development (BDD):</strong> We’ll explore the fundamental principles of BDD and draw distinctions between BDD and Test-Driven Development (TDD).</li><li><strong>Gherkin Language:</strong> We’ll delve into the syntax of Gherkin, encompassing elements such as Features, Scenarios, and the Given-When-Then structure, as well as touch upon tags, Background, and the utility of Scenario Outlines.</li><li><strong>Feature Files:</strong> We’ll address the art of crafting effective scenarios and organizing features for clarity and efficiency in BDD-driven projects.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/498/1*8IeIVs6bS0uNDPZxxl8t1w.gif" /></figure><p><strong><em>Integrating Cucumber with Selenium:</em></strong></p><ol><li><strong>Step Definitions:</strong> Connecting Gherkin Instructions with Python Logic using Annotations like @Given, @When, and @Then.</li><li><strong>Handling Hooks:</strong> Implementing Pre-Test and Post-Test Actions through Before and After Annotations to Set Conditions.</li><li><strong>Orchestrating Runs:</strong> Configuring CucumberOptions and Executing Tests using Runners.</li><li><strong>Better teamwork and communication:</strong> BDD boosts teamwork and communication within the team by establishing a shared language. This reduces confusion and ensures everyone is aligned.</li><li><strong>Increased focus on the needs of the business stakeholders:</strong> BDD involves business stakeholders from the start to make sure the software meets their needs and adds value.</li></ol><p><strong><em>Essential Tools for Python-Based BDD Automation</em></strong>Pycharm</p><ol><li>Selenium</li><li>Cucumber</li><li>Allure</li><li>Python</li><li>Pycharm</li><li>Chrome Driver</li></ol><p>To install the required packages, using the Python interpreter.</p><ol><li>Selenium</li><li>Cucumber</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1008/1*jUhR75X4H4Hf0PlimtajoA.png" /></figure><p>To create a Feature file and step file for a project using Cucumber and Selenium would typically follow these steps:</p><p><strong>What is a feature in Cucumber?</strong></p><p>The feature file is a crucial component of the Cucumber tool, serving as a platform for scripting acceptance steps in automated testing. These steps typically align with the application’s specifications. A feature file is a standard file format used for storing information about features, scenarios, and their corresponding descriptions that need to be tested.</p><p><strong><em>Creating a Feature File:</em></strong></p><ol><li>Create a new file in the testing directory of the Python project.</li><li>Name the file with an .feature extension. For example, testing.feature</li><li>In the feature file, write the feature name, scenarios, and test steps.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/650/1*tqqepuIYlowoxBW19EaRfA.png" /></figure><p><strong>What are Gherkin key words?</strong></p><p>Gherkin, the language used in Behavior-Driven Development (BDD) to write structured and human-readable scenarios, relies on specific keywords to define and structure features, scenarios, and steps. Here are some common Gherkin keywords:</p><p>In simple terms:</p><ol><li><strong>Feature</strong>: What are we testing?</li><li><strong>Scenario</strong>: How are we testing it?</li><li><strong>Given</strong>: What is the starting state?</li><li><strong>When</strong>: What do we do?</li><li><strong>Then</strong>: What should happen?</li></ol><p>Once the Gherkin file keywords are generated, they are used in the steps file (usually named steps.py) to implement the steps using Python code. The steps file is a Python module that contains functions that correspond to the Gherkin keywords.</p><p><strong><em>To create a step file using Cucumber, one would typically follow these steps</em></strong></p><ol><li>Create a new file in the testing directory of project.</li><li>Name the file with an .py extension. For example, testing.feature.Steps.py.</li><li>In the step file, write the step definitions for the steps that are using in feature files.</li></ol><p>For example, the following <strong>Gherkin</strong> scenario:</p><p><strong><em>Steps File.py</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*ApCMdF77Xb7NjgH3_rBdVQ.png" /></figure><blockquote><strong>Preview</strong></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*ZyMIK183kbWSZ1AI6LDE1A.gif" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=39aff215a233" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Security Testing.]]></title>
            <link>https://medium.com/@prasanth.v_35809/security-testing-bd48d882092b?source=rss-a5955d7dc8b6------2</link>
            <guid isPermaLink="false">https://medium.com/p/bd48d882092b</guid>
            <dc:creator><![CDATA[Prasanth V]]></dc:creator>
            <pubDate>Sat, 04 Feb 2023 08:35:43 GMT</pubDate>
            <atom:updated>2023-03-14T09:45:47.284Z</atom:updated>
            <content:encoded><![CDATA[<blockquote><strong>This article will help you on basic checks of Security Testing By </strong><a href="https://medium.com/u/a5955d7dc8b6"><strong>Prasanth V</strong></a><strong> — ”</strong>Be Calm I’m a Security Tester.<strong>”</strong></blockquote><p><strong>Security Testing</strong> is a type of Software Testing that uncovers vulnerabilities, threats, and risks in a software application and prevents malicious attacks from intruders. The purpose of Security Tests is to identify all possible loopholes and weaknesses of the software system which might result in a loss of information, revenue, and reputation at the hands of the employees or outsiders of the Organization.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BPUcoN78lmB0NNmTkcUknQ.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/193/1*n1iyt8w5YeE5jPHac8x9FA.gif" /></figure><blockquote><strong>Why security Testing?</strong></blockquote><p>Security testing is important because it helps to identify and mitigate security vulnerabilities in software applications, systems, and networks. As technology becomes more advanced, security threats also become more sophisticated, and as a result, the need for effective security testing has become increasingly important.</p><ol><li><strong>Protecting sensitive data:</strong> Security testing helps to identify vulnerabilities in software applications and networks, which can be exploited by attackers to gain unauthorized access to sensitive data, such as personal information, financial data, or intellectual property.</li><li><strong>Compliance with regulations:</strong> Security testing is often required by regulatory frameworks such as GDPR, and DSS, which mandate organizations to implement adequate security measures to protect sensitive data.</li><li><strong>Avoiding financial losses:</strong> Security breaches can result in significant financial losses for organizations, including the cost of remediation, loss of revenue, and damage to reputation.</li><li><strong>Maintaining customer trust:</strong> A security breach can have a devastating impact on an organization’s reputation and erode customer trust. Security testing helps to identify vulnerabilities and allows organizations to take proactive measures to protect their customers’ data.</li><li><strong>Legal liability:</strong> Organizations can be held legally liable for security breaches that result in the loss or theft of sensitive data. Security testing can help to minimize legal risk by identifying vulnerabilities and mitigating them before an attack occurs.</li></ol><p>In summary<strong>,</strong> security testing is essential to identify and mitigate security vulnerabilities in software applications, systems, and networks. It helps organizations to protect sensitive data, comply with regulations, avoid financial losses, maintain customer trust, and minimize legal liability.</p><blockquote><strong>How Security Testing done</strong></blockquote><p>Security testing involves a variety of techniques and tools that are used to identify and mitigate security vulnerabilities in software applications, systems, and networks. Here are some common methods used in security testing</p><ol><li><strong>Vulnerability scanning:</strong> This involves using automated tools to scan networks, systems, and applications for known vulnerabilities, such as unpatched software, weak passwords, or misconfigured servers.</li><li><strong>Penetration testing:</strong> Also known as pen testing, this involves attempting to exploit vulnerabilities in a controlled manner to identify potential security weaknesses. Pen testing can be conducted manually or using automated tools.</li><li><strong>Code review:</strong> This involves analyzing the source code of an application or system to identify potential security vulnerabilities. Code review can be conducted manually or using automated tools.</li><li><strong>Risk assessment:</strong> This involves identifying potential security risks and assessing their likelihood and impact. A risk assessment can help to prioritize security testing efforts and ensure that the most critical vulnerabilities are addressed first.</li><li><strong>Social engineering:</strong> This involves attempting to exploit human weaknesses, such as trust or lack of awareness, to gain unauthorized access to systems or data. Social engineering can include techniques such as phishing, pretexting, or baiting.</li></ol><p><strong><em>Tools Used for Security Testing:</em></strong></p><ol><li>Kali Linux</li><li>Burp Suite</li><li>Nexus</li></ol><blockquote><strong>Benefits of security testing?</strong></blockquote><ol><li><strong>Identification of security vulnerabilities:</strong> Security testing helps to identify security vulnerabilities in software applications, systems, and networks. This allows organizations to take proactive measures to mitigate these vulnerabilities before they can be exploited by attackers.</li><li><strong>Improved security posture:</strong> By identifying and addressing security vulnerabilities, organizations can improve their overall security posture. This can help to reduce the likelihood and impact of security breaches and increase customer trust.</li><li><strong>Reduced risk of data breaches:</strong> By identifying and mitigating security vulnerabilities, organizations can reduce the risk of data breaches. This can help to protect sensitive data, such as customer information, financial data, or intellectual property.</li><li><strong>Cost savings:</strong> Security breaches can result in significant financial losses, including the cost of remediation, lost revenue, and damage to reputation. By identifying and mitigating security vulnerabilities, organizations can reduce the likelihood and impact of security breaches, resulting in cost savings.</li><li><strong>Increased customer trust:</strong> By taking proactive measures to protect sensitive data, organizations can increase customer trust. This can lead to increased customer loyalty and revenue.</li></ol><p><strong><em>Example of Security Attack:</em></strong></p><ol><li>Phishing Attack</li><li>Bypass(Mainpulate the response)</li><li>ClickJacking Attack</li><li>SQL Injection</li></ol><blockquote>Overview of Hacking</blockquote><ol><li><strong>Reconnaissance: </strong>This is the <strong>first phase </strong>of hacking where we collect all sorts of info.</li></ol><ul><li><strong>Active reconnaissance</strong> is looking for information about the target network system, server, or application to increase the chances of the hacker being detected in the system. It is very risky for the attacker.</li><li><strong>Passive reconnaissance</strong> is the stealthier way of gaining information about the target. This is focused on information gathering about the company’s key members, essential facts about the company, finding out its IP addresses, and looking for other types of critical information about the company.</li></ul><p>2. <strong>Scanning: </strong>The second phase in an ethical hacker’s strategy is the scanning phase. This step involves using all the information obtained in the reconnaissance phase and applying it to look for vulnerabilities in the targeted area.</p><ul><li>There are different types of scans done by ethical hackers. They can scan for open ports or different services that are running unprotected in the organization.</li><li>Ethical hackers can also<strong> </strong>perform vulnerability scans to find weaknesses in the company servers, which can be exploited.</li></ul><p>3. <strong>Gaining Access: </strong>This is where the ethical hacker does the actual hacking. uses all the information obtained and analyzed from the previous two phases to launch a full-fledged attack on the system or network the ethical hacker is trying to infiltrate.</p><ul><li>Exploits all the exposed vulnerabilities and gains control of the system he has hacked.</li><li>Now the hacker can steal all the data he has available on hand, corrupt the systems, add viruses or other malicious entities, or manipulate it to his/her benefit.</li></ul><p>4. <strong>Maintaining Access:</strong> The ethical hacker has to maintain his access to the server until he fulfills his goal. Ethical hackers usually<strong> Trojans and other backdoors or rootkits</strong> accomplish this phase. They can also use this maintaining access phase to launch several other attacks to inflict more damage to the organization.</p><p>5. <strong>Clearing Tracks: </strong>This is the final step to complete the entire ethical hacking process. If this phase is completed successfully, the ethical hacker has managed to hack into a system or network.</p><ul><li>He/she could inflict as much damage as possible and has managed to leave the system without a trace.</li><li>They need to cover their tracks throughout to avoid detection while entering and leaving the network or server.</li><li>The security systems in place should not be able to identify the attacker.</li><li>The sign of a successful simulated cyber attack is if the security system never realized that an attack took place altogether.</li></ul><p>6. <strong>Reporting: </strong>This is the documentation part of ethical hacking, in this, we have to report the vulnerabilities found, their threats and risks, exploitation, etc.</p><ul><li>The report should be proper, understandable &amp; reproducible.</li><li>There should be a proper focus on the Impact and also submit proper <strong>Proof of Concept(PoCs)</strong>.</li><li>A PoC can be a screenshot or a Screen recorded Video.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bd48d882092b" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>