<?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: Shiva Ramakrishnan</title>
    <description>The latest articles on DEV Community by Shiva Ramakrishnan (@shivark2010).</description>
    <link>https://dev.to/shivark2010</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%2F1264894%2F2df08f9d-c842-4d14-b51c-70d6ca2e38a3.png</url>
      <title>DEV Community: Shiva Ramakrishnan</title>
      <link>https://dev.to/shivark2010</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shivark2010"/>
    <language>en</language>
    <item>
      <title>Task 18</title>
      <dc:creator>Shiva Ramakrishnan</dc:creator>
      <pubDate>Thu, 30 May 2024 10:42:17 +0000</pubDate>
      <link>https://dev.to/shivark2010/task-18-28md</link>
      <guid>https://dev.to/shivark2010/task-18-28md</guid>
      <description>&lt;p&gt;&lt;strong&gt;Python Selenium Architecture in Detail&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python Selenium is a robust framework for automating web browser interactions, primarily used for web application testing. Understanding its architecture is crucial to harness its capabilities effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Components:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium WebDriver:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The WebDriver is the core component of Selenium, providing a programming interface to create and execute test scripts. It interacts with the browser on a lower level than the older Selenium RC, allowing for more complex and nuanced interactions with web elements.&lt;/p&gt;

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

&lt;p&gt;ChromeDriver, GeckoDriver, etc.: Each browser (e.g., Chrome, Firefox, Safari, Edge) has a corresponding driver that serves as a bridge between the Selenium commands and the browser's native functionality. These drivers are essential for translating Selenium commands into actions that the browser can understand and perform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium Client Libraries:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are language-specific bindings provided by Selenium for different programming languages, including Python. The Python library (selenium) allows developers to write test scripts in Python that communicate with the WebDriver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium Server/Grid:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Selenium Server can run WebDriver tests on remote machines, enabling distributed testing. Selenium Grid builds on this by allowing the parallel execution of tests across different browsers and environments, which is particularly useful for cross-browser testing.&lt;br&gt;
Workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Script Creation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A test script is written using the Selenium Python library. This script includes commands to initiate browser sessions, navigate to web pages, perform actions on web elements (like clicks, form submissions, and navigation), and verify expected outcomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebDriver Initialization:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The script starts by initializing the WebDriver instance, which involves specifying the browser driver (e.g., ChromeDriver for Chrome).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser Interaction:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The WebDriver sends commands to the browser driver, which in turn controls the browser. Actions like opening URLs, clicking buttons, and filling out forms are performed at this stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command Execution and Response:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The browser driver executes the commands and returns the results back to the WebDriver. The script can then assert these results to determine if the test has passed or failed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result Logging and Reporting:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The outcomes of the test are logged, and reports are generated. These can be integrated with testing frameworks for better management and analysis.&lt;br&gt;
Example:&lt;/p&gt;

&lt;p&gt;Here’s a simple example of a Selenium script in Python:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;from selenium import webdriver&lt;br&gt;
from selenium.webdriver.common.keys import Keys&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Initialize WebDriver
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;driver = webdriver.Chrome(executable_path='/path/to/chromedriver')&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Open a webpage
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;driver.get("http://www.example.com")&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Interact with web elements
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;search_box = driver.find_element_by_name("q")&lt;br&gt;
search_box.send_keys("Selenium Python")&lt;br&gt;
search_box.send_keys(Keys.RETURN)&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Verify results
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;assert "No results found." not in driver.page_source&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Close the browser
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;driver.quit()&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;A Python virtual environment is a self-contained directory that contains a Python installation for a particular version of Python, plus several additional packages. It’s a crucial tool for managing dependencies and ensuring a consistent development environment across different projects.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Dependency Management:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Virtual environments allow different projects to use different versions of the same package without conflict. This is essential when one project requires a specific version of a library that is incompatible with another project.&lt;/p&gt;

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

&lt;p&gt;Each virtual environment is isolated from the system Python and other virtual environments. This prevents changes in one environment from affecting other projects or the system installation, ensuring stability and predictability.&lt;/p&gt;

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

&lt;p&gt;Virtual environments make it easy to reproduce a working environment. By creating a requirements.txt file that lists all dependencies, you can recreate the environment on any machine, ensuring consistency across development, testing, and production stages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simplified Collaboration:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When working in a team, using a virtual environment ensures that all team members are working with the same versions of packages, reducing "it works on my machine" issues.&lt;br&gt;
**&lt;br&gt;
Security:**&lt;/p&gt;

&lt;p&gt;By isolating dependencies, virtual environments reduce the risk of version conflicts and security vulnerabilities that can arise from globally installed packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;br&gt;
**&lt;br&gt;
**Creating a Virtual Environment:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python3 -m venv myenv&lt;/code&gt;&lt;br&gt;
This command creates a virtual environment named myenv.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Activating a Virtual Environment:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On Windows:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;myenv\Scripts\activate&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Installing Packages:&lt;/strong&gt;&lt;br&gt;
Once activated, you can install packages specific to the project:&lt;br&gt;
&lt;code&gt;pip install requests&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freezing Dependencies:&lt;/strong&gt;&lt;br&gt;
To save the current environment’s packages into a requirements.txt file:&lt;/p&gt;

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

&lt;p&gt;Recreating the Environment:&lt;/p&gt;

&lt;p&gt;On a new machine, you can set up the same environment using:&lt;br&gt;
&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Task 17</title>
      <dc:creator>Shiva Ramakrishnan</dc:creator>
      <pubDate>Thu, 30 May 2024 10:28:58 +0000</pubDate>
      <link>https://dev.to/shivark2010/task-17-12ln</link>
      <guid>https://dev.to/shivark2010/task-17-12ln</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Selenium?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium is an open-source package of tools specifically built for automating web browsers. Initially developed by Jason Huggins in 2004, Selenium has grown to become one of the most extensively used technologies for web automation. It helps testers and developers to generate automated tests for online applications across different browsers and operating systems, utilizing various programming languages like Java, C#, Python, Ruby, and JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components of Selenium:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium is not a single tool but a suite consisting of numerous components, each with its specific functionalities:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Selenium IDE (Integrated Development Environment):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A basic, user-friendly browser extension for Firefox and Chrome.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ideal for beginners, it permits recording and playback of user interactions with the browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Useful for building short test scripts and for prototyping.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Selenium WebDriver:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It's a more advanced tool than the Selenium IDE; it offers a programming interface for writing and running test scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports a wide range of programming languages and browsers, including Chrome, Firefox, Safari, and Edge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Interacts directly with the browser, more closely resembling the actions of an actual user.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.Selenium Grid:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enables the execution of test scripts on multiple machines simultaneously.&lt;/li&gt;
&lt;li&gt;Facilitates parallel testing, reducing the time required for test execution.&lt;/li&gt;
&lt;li&gt;Useful for testing applications across different browser and OS combinations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4.Selenium RC (Remote Control):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An older tool that has been largely deprecated in favor of WebDriver.&lt;/li&gt;
&lt;li&gt;Allowed writing automated web application UI tests in any programming language.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Use Selenium for Automation?&lt;/strong&gt;&lt;br&gt;
Selenium's widespread adoption in the industry can be attributed to several compelling advantages:&lt;/p&gt;

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

&lt;p&gt;Selenium supports all major web browsers, ensuring that applications are tested across different environments.&lt;br&gt;
This cross-browser functionality helps in identifying and fixing browser-specific issues early in the development cycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Multi-Language Support:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium offers bindings for numerous programming languages, providing flexibility to testers and developers.&lt;br&gt;
Teams can use a language they are comfortable with, integrating Selenium with existing technology stacks seamlessly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Parallel Test Execution:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Selenium Grid, tests can be run in parallel on multiple machines, significantly speeding up the testing process.&lt;br&gt;
This capability is crucial for continuous integration/continuous deployment (CI/CD) pipelines, where quick feedback is essential.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Community and Ecosystem:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As an open-source tool, Selenium has a vast and active community.&lt;br&gt;
A rich ecosystem of plugins and extensions enhances its capabilities, making it easier to integrate with other tools and frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Real User Simulation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium WebDriver interacts with the browser in a manner similar to how a human would, providing more accurate test results.&lt;br&gt;
It can handle complex user interactions, including clicking, typing, and navigating through pages, which are crucial for end-to-end testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Scalability and Flexibility:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium can be integrated with various testing frameworks like TestNG, JUnit, and NUnit.&lt;br&gt;
It supports data-driven testing, allowing tests to run with different sets of data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Applications&lt;/strong&gt;&lt;br&gt;
Selenium's versatility makes it suitable for a wide range of testing scenarios:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Functional Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Validates the functionality of web applications to ensure they perform as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Regression Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ensures that new changes or updates do not adversely affect existing functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Load Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While not a primary load testing tool, Selenium can be integrated with tools like JMeter to simulate multiple users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Cross-Browser Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ensures compatibility across different browsers, critical for a consistent user experience.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TASK 4</title>
      <dc:creator>Shiva Ramakrishnan</dc:creator>
      <pubDate>Wed, 07 Feb 2024 03:57:44 +0000</pubDate>
      <link>https://dev.to/shivark2010/task-4-3dmm</link>
      <guid>https://dev.to/shivark2010/task-4-3dmm</guid>
      <description>&lt;p&gt;&lt;strong&gt;Manual Testing: Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Manual testing is a type of software testing where testers manually execute test cases without using any automation tools. In this process, the tester plays the role of an end user and tests the software to identify bugs or any unexpected behavior. Manual testing is an essential part of the software development life cycle (SDLC) and is performed before automated testing or in conjunction with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Manual Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Early Detection of User Experience Issues:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; In a web application, manual testers can identify user interface issues such as navigation problems, layout inconsistencies, or colour contrasts that may affect the user experience. Automation tools may not catch these issues as effectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adaptability to Changes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; During the development phase, when requirements are changing frequently, manual testing allows testers to quickly adapt to the changes. Test cases can be modified or created on the fly to address new functionalities or changes in existing ones.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Exploratory Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Testers can perform exploratory testing to uncover unforeseen issues by interacting with the application unscripted. This is particularly useful when dealing with complex systems with unexpected scenarios.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cost-Effective for Small Projects:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; In smaller projects with limited resources, the cost of developing and maintaining automated test scripts might outweigh the benefits. Manual testing can be a more cost-effective solution in such cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Human Insight and Intuition:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Testers can apply their domain knowledge, intuition, and experience to identify subtle issues that may not be covered in automated test scripts. This human touch is valuable in detecting issues related to usability, accessibility, and other non-functional aspects.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks of Manual Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Time-Consuming:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Executing a large set of test cases manually can be time-consuming. In situations where frequent regression testing is required, the time spent on repetitive tasks could be better utilized in automated testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Limited Scalability:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; As the size and complexity of a project increase, manual testing becomes less scalable. It may become challenging to cover all test scenarios and maintain a high level of test coverage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Subject to Human Error:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Testers are susceptible to errors, and manual testing may lead to inconsistencies in the testing process. Human error might result in missed defects or inaccuracies in test execution.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Repetitive Tasks:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Testers often need to repeat the same set of test cases, especially during regression testing. This repetitive nature of manual testing makes it prone to oversight and boredom, leading to reduced effectiveness.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Not Suitable for Performance Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; In scenarios where thousands of users need to access an application simultaneously, manual testing is impractical. Automated tools are better suited for simulating large-scale user interactions to assess performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;In conclusion, manual testing offers several benefits, particularly in the early stages of the SDLC and for projects with limited scope and resources. Testers play a crucial role in ensuring the software's usability, identifying issues that automated tools might overlook, and adapting to rapidly changing requirements. However, manual testing has its drawbacks, including time consumption, scalability challenges, and the potential for human error.&lt;/p&gt;

&lt;p&gt;The choice between manual and automated testing depends on various factors, such as project size, complexity, budget, and the need for repetitive testing. Often, a combination of both manual and automated testing is employed to leverage the strengths of each approach. While automated testing excels in repetitive tasks, regression testing, and performance testing, manual testing provides a human perspective that is essential for ensuring a positive user experience and identifying complex, unforeseen issues. The key is to strike the right balance based on the specific requirements and constraints of the project at hand.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Task 3</title>
      <dc:creator>Shiva Ramakrishnan</dc:creator>
      <pubDate>Tue, 30 Jan 2024 13:33:14 +0000</pubDate>
      <link>https://dev.to/shivark2010/task-3-114f</link>
      <guid>https://dev.to/shivark2010/task-3-114f</guid>
      <description>&lt;p&gt;There are two types of software testing: functional testing and non-functional testing. Both types of testing concentrate on various facets of a system. With some instances in simple English, let's dissect their distinctions.&lt;/p&gt;

&lt;p&gt;Tests for functionality:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition:&lt;/strong&gt;&lt;br&gt;
Verification of the software's compliance with the requirements is done through functional testing. It concentrates on the actions taken by the system, verifying that its intended functions are carried out accurately. The outputs produced for specific inputs and the system's general behaviour are the focus of functional testing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Input and Output Testing:&lt;/strong&gt; -  Consider yourself evaluating an internet calculator. After entering numbers and operators, you do computations and verify that the outcomes fit your expectations. This guarantees accurate execution of the calculator's fundamental operations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Interface Examining:&lt;/strong&gt; - Checking that buttons, links, and forms function as intended is a part of functional testing for e-commerce applications. For example, the item you have selected should be added to your shopping cart when you click the "Add to Cart" button.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; - &lt;strong&gt;Database Testing:&lt;/strong&gt; When testing a login system, functional testing entails confirming that users can log in with valid information and that user credentials are correctly maintained in the database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Incorporation Testing:&lt;/strong&gt; - Functional testing ensures that a system's many modules communicate with one another smoothly. Integration testing in a social media application makes sure that a message posted by a user updates both their profile and their followers' feeds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;API Testing:&lt;/em&gt;* - Take into consideration a weather app that obtains information from a third-party source. Functional testing verifies whether user inputs are used to correctly retrieve and display weather information in the application.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The purpose of functional testing&lt;br&gt;
Ensuring the software fulfils the criteria and carries out its intended functions accurately is the main objective. It emphasizes the "what"—that is, what the system is meant to accomplish.&lt;/p&gt;

&lt;p&gt;Testing That Isn't Functional:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition:&lt;/strong&gt;&lt;br&gt;
Aspects unrelated to particular behaviours or functions are assessed through non-functional testing. Rather, it evaluates the system's attributes including dependability, security, performance, and usability. Non-functional testing examines the effectiveness of the system's operation rather than its functionality.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Evaluation of Performance:&lt;/strong&gt; - Assume you utilize an internet banking program. Performance testing determines how well the system manages many users at once. When numerous users are logging into their accounts at once, does it react quickly?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; - &lt;strong&gt;Usability Testing:&lt;/strong&gt; Usability testing determines whether a mobile app's user interface is intuitive. Can users complete things like purchasing or changing settings on the app with ease of use?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stability Assessment:&lt;/strong&gt; - Reliability testing guarantees that, in the event of a significant load, an airline reservation system won't crash or give false results. Even at busy times, users should be able to consistently book flights.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testing for Security:&lt;/strong&gt; - Security testing evaluates the degree to which sensitive data is protected in an online payment system. To prevent unwanted access, it verifies that user data—especially payment information—is handled securely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Checking for Scalability:&lt;/strong&gt; -Think of a social media network. Scalability testing assesses how smoothly the system expands as new users sign up. Will it continue to function normally as more people use it, or will it become slower?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Aim of Non-Functional Examination:&lt;/strong&gt;&lt;br&gt;
In terms of performance, usability, dependability, and other quality features, non-functional testing seeks to verify that the program satisfies specific requirements. The "how" is the main focus, including the system's functionality, security, and dependability.&lt;/p&gt;

&lt;p&gt;Principal Distinctions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Functional Testing:&lt;/strong&gt; focuses on the functions and behaviours of the system.

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Non-Functional Testing:&lt;/em&gt; Concentrates on the reliability, usability, and other quality features of the system in addition to its overall performance.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Models:&lt;/strong&gt;&lt;br&gt;
Input and output testing, user interface testing, database testing, integration testing, and API testing are all included in functional testing.&lt;br&gt;
The category of &lt;em&gt;Non-Functional Testing&lt;/em&gt; include scalability, security, usability, dependability, and performance testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Aim:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Functional Testing:&lt;/em&gt; Verifies that the program executes its intended functions accurately.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Non-Functional Testing:&lt;/em&gt; To make sure the program satisfies specific standards for performance, usability, dependability, and other quality features.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In conclusion, functional testing verifies that the program performs as intended, and non-functional testing evaluates the software's effectiveness. In order to create software that not only satisfies the requirements but also works effectively, is dependable, safe, and easy to use, both kinds of testing are essential.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Task 2</title>
      <dc:creator>Shiva Ramakrishnan</dc:creator>
      <pubDate>Tue, 30 Jan 2024 13:21:41 +0000</pubDate>
      <link>https://dev.to/shivark2010/task-2-31en</link>
      <guid>https://dev.to/shivark2010/task-2-31en</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Boundary Value Analysis&lt;/strong&gt; is a way to test systems that looks at the edges or limits of what values should be sent to them. We don't test every possible input, so we only test numbers close to the minimum and maximum. To show this, if a program can handle numbers from 0 to 100, we would try it with 0, 1, 2, 99, 100, and 101. Errors often happen near these lines, so this helps find bugs. We can find mistakes better if we check these important points. Boundary Value Analysis is useful because it only needs to test a few scenarios to find a lot of possible problems. Still, it's not 100% safe. Errors don't always happen at the edges, they can happen anywhere. So, BVA is helpful, but it needs to be used with other testing methods for full software quality assurance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decision testing&lt;/strong&gt; makes sure that a piece of software always picks the right option, no matter what. Here's how it works: We build test cases based on the various possible decisions the program can make. For example, if a program decides to give a discount based on a customer's age, we'd test it with different ages to see if it gives the right discount. This method helps us find bugs related to decision-making logic. We want to make sure the program does what it's meant to do under different circumstances. Decision testing is important because programs often have to make choices, and we need to be sure they make the right ones. By testing these choices, we can catch errors early and make the program more reliable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use case testing&lt;/strong&gt; is a method to examine if a software program performs as it should in real-life settings. In basic terms, it involves evaluating how the software acts when users interact with it based on different situations or "use cases." A use case is like a story showing how a human (the user) interacts with the software to accomplish a given goal. Testers construct test cases that mirror these real-world events to guarantee the software performs correctly. For instance, in an e-commerce platform, a use case could be placing an order. Testers would then write tests to make sure that the ordering process—from adding products to the cart to payment—is smooth and error-free. Use case testing helps discover difficulties that users can encounter in their everyday interactions with the program, making it a crucial aspect of maintaining a great user experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LCSAJ&lt;/strong&gt;, or Linear Code Sequence and Jump testing, is a method used to check the integrity of software programs. In simple terms, it includes studying the flow of code execution by inspecting every potential sequence of statements and jumps within the program. Testers design test cases to verify that each line of code, together with any conditional jumps, is run at least once during testing. By doing this, they can uncover any potential mistakes or defects in the program's logic or flow. LCSAJ testing helps ensure thorough coverage of the codebase, increasing the possibility of identifying bugs or vulnerabilities. While it may involve more time compared to other testing methodologies, LCSAJ testing is essential for guaranteeing the resilience and reliability of software systems, particularly in critical or safety-sensitive applications where even little errors can have substantial repercussions.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Task 1</title>
      <dc:creator>Shiva Ramakrishnan</dc:creator>
      <pubDate>Wed, 24 Jan 2024 12:10:31 +0000</pubDate>
      <link>https://dev.to/shivark2010/task-1-3eha</link>
      <guid>https://dev.to/shivark2010/task-1-3eha</guid>
      <description>&lt;p&gt;The Software testing is similar to determining whether or not a computer program is ready to be used. It's the same as checking to see that there are no errors or problems before people start using it. The goal of this is to ensure that the program performs as it is intended to and does not make any mistakes. Testing happens in several steps while making the program, going from minor items to the full thing. There are a variety of tests that can be used to examine different components and determine whether or not they are compatible with one another and whether or not they are simple to use. Correcting errors at an earlier time is preferable because it is less complicated. The programme is tested to ensure that it works properly, is quick, and is secure. In the same way, it is similar to ensuring that an automobile works smoothly before people start driving it. When it comes to the modern method of creating software, continuous testing is an essential component in order to guarantee that the software will continue to function properly even after being updated. Generally speaking, software testing is an absolute necessity in order to ensure that programmes are of high quality and do not cause problems for users.&lt;/p&gt;

&lt;p&gt;Manual testing and automated testing are the two methods that are utilised in software testing. In manual testing, we verify by hand whether the software is proper or fits client needs without errors, but in automated testing, a script is used to perform the test, making it more dependable and effective than human testing. Therefore, we must be informed about software testing.&lt;/p&gt;

&lt;p&gt;The aim of testing is to verify that the software product is given to the user with no errors in the written code and in good quality, preventing any faults from arising. &lt;/p&gt;

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