<?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: Indhumathi</title>
    <description>The latest articles on DEV Community by Indhumathi (@indhumathi).</description>
    <link>https://dev.to/indhumathi</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%2F1230978%2F268a25be-7f8e-4d84-9d86-5596f3f8d031.jpeg</url>
      <title>DEV Community: Indhumathi</title>
      <link>https://dev.to/indhumathi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/indhumathi"/>
    <language>en</language>
    <item>
      <title>Selenium Architecture</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Wed, 27 Mar 2024 08:26:23 +0000</pubDate>
      <link>https://dev.to/indhumathi/selenium-architecture-4b39</link>
      <guid>https://dev.to/indhumathi/selenium-architecture-4b39</guid>
      <description>&lt;p&gt;The main purpose of automation testing is to minimize the time and effort of testers and generate accurate test results of end user. A tool combined with practical knowledge about the system is used to automate test execution. In an automation testing the automation test engineer, would know about the Selenium, is one tool that you would have used as main tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzmc6u4toph4u9ssnz1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzmc6u4toph4u9ssnz1f.png" alt="Image description" width="661" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium Client Libraries&lt;/strong&gt;&lt;br&gt;
     These developers have made it possible to support different programming languages of our choice – Java, Python, C#, Ruby, JavaScript, etc. &lt;br&gt;
It allows us to write the Selenium automation scripts to support multiple languages.&lt;br&gt;
It provides an application programming interface (API), that is, a set of functions that performs the Selenium commands from the test script and is not a testing framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON Wire Protocol&lt;/strong&gt;&lt;br&gt;
     JavaScript Object Notation is a data interchange format based on a subset of the JavaScript Programming Language. It is for storing and transferring data. The JSON wire protocol provides the capability of transferring data between Selenium scripts and browser drivers.&lt;br&gt;
    This Json ire Protocol provides support for data structures like arrays and objects, making data reading and writing more comfortable.&lt;br&gt;
     The JSON sent requests by the client are altered into HTTP requests format for the server to understand and converted back to JSON format while sending it back to the client Server again. These kind of process of data transfer is called serialization.&lt;br&gt;
    In this method, the internal logic of the browser is not disclosed, and the server can communicate with the client libraries, even that is with unfamiliar programming language too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser Drivers&lt;/strong&gt;&lt;br&gt;
     These drivers act as a bridge between the Selenium client libraries and the real browsers. They help us in running commands of selenium on the browser. &lt;br&gt;
    It is the main responsible for this driver is to executing user actions, like clicking the mouse, navigating the pages, clicking the button, etc., on the browser. &lt;br&gt;
   For every supported browser in the Selenium, have a unique browser driver. These browser drivers take commands from the Selenium test scripts and pass them to the respective browsers.&lt;br&gt;
    ChromeDriver, FirefoxDriver, SafariDriver, OperaBrowser, EdgeDriver, and HtmlUnitDriver are Some popular browser drivers in Selenium.&lt;/p&gt;

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

&lt;p&gt;1.Multi-Browser Compatibility&lt;br&gt;
2.Multiple Language Support&lt;br&gt;
3.Speed &amp;amp; Performance&lt;br&gt;
4.Community Support&lt;br&gt;
5.Open Source &amp;amp; Portable&lt;br&gt;
6.Work On Different OS&lt;br&gt;
7.Add-ons &amp;amp; Reusability&lt;br&gt;
8.Simple Commands&lt;br&gt;
9.Reduced test Execution time&lt;br&gt;
10.No Server installation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
      The JSON Wire protocol over HTTP was the primarily used mode of communication between the Selenium client libraries and the browser driver in Selenium 3.0. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4cxo147gujbgsuem6guc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4cxo147gujbgsuem6guc.jpg" alt="Image description" width="752" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This protocol was replaced with the new WebDriver W3C (World Wide Web Consortium) protocol with the introduction of Selenium 4.0&lt;br&gt;
     This will be less unreliable and more stable With WebDriver W3C Protocol. Stability in this is a major reason to shift to Selenium 4.0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SIGNIFICANCE OF PHYTHON VIRTUAL ENVIRONMENT&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Python Virtual Environment&lt;/strong&gt;&lt;br&gt;
       A Python Virtual Environment is a powerful tool for managing dependencies and creating isolated spaces for your Python projects. &lt;strong&gt;Let’s delve into its significance:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Isolation and Independence:&lt;/strong&gt;&lt;br&gt;
A virtual environment provides an isolated space where you can work on your Python projects separately from your system-installed Python.&lt;br&gt;
You can set up your own libraries and dependencies without affecting the system-wide Python installation.&lt;br&gt;
Each virtual environment acts as a sandbox, allowing you to keep project-specific packages separate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Scenario-Based Use Cases:&lt;/strong&gt;&lt;br&gt;
    Imagine you’re simultaneously working on two web-based Python projects:&lt;br&gt;
Project A uses Django 4.0.&lt;br&gt;
Project B uses Django 4.1.&lt;br&gt;
Without virtual environments, both projects would share the same directories for storing and retrieving third-party libraries.&lt;br&gt;
This creates a problem because Python can’t differentiate between different versions of the same package in the system-wide “site-packages” directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtual environments come to the rescue:&lt;/strong&gt;&lt;br&gt;
     Each environment contains its own set of dependencies, ensuring that Project A and Project B remain independent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Creating a Virtual Environment:&lt;/strong&gt;&lt;br&gt;
     To create a virtual environment, you can use the virtualenv tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install it using:&lt;/strong&gt;&lt;br&gt;
$ pip install virtualenv&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test your installation:&lt;/strong&gt;&lt;br&gt;
$ virtualenv --version&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a new virtual environment:&lt;/strong&gt;&lt;br&gt;
$ virtualenv my_env&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deactivate Python Virtual Environment&lt;/strong&gt;&lt;br&gt;
  (virtualenv_name)$ deactivate&lt;/p&gt;

&lt;p&gt;This command creates a directory named my_env containing all the necessary executables for your Python project.&lt;br&gt;
You can also specify a specific Python interpreter (e.g., Python 3) when creating the environment:&lt;br&gt;
$ virtualenv -p /usr/bin/python3 virtualenv_name&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.Benefits&lt;/strong&gt;&lt;br&gt;
     &lt;strong&gt;Dependency Isolation:&lt;/strong&gt; Each project has its own isolated environment, preventing conflicts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Precise Dependency Management:&lt;/strong&gt; Install specific versions of packages for each project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration:&lt;/strong&gt; Share your project with others, ensuring consistent environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safe Experimentation:&lt;/strong&gt; Test new packages without affecting other projects.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SIGNIFICANCE OF PHYTHON VIRTUAL ENVIRONMENT</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Wed, 27 Mar 2024 08:25:49 +0000</pubDate>
      <link>https://dev.to/indhumathi/significance-of-phython-virtual-environment-4fgl</link>
      <guid>https://dev.to/indhumathi/significance-of-phython-virtual-environment-4fgl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Python Virtual Environment&lt;/strong&gt;&lt;br&gt;
       A Python Virtual Environment is a powerful tool for managing dependencies and creating isolated spaces for your Python projects. &lt;strong&gt;Let’s delve into its significance:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Isolation and Independence:&lt;/strong&gt;&lt;br&gt;
A virtual environment provides an isolated space where you can work on your Python projects separately from your system-installed Python.&lt;br&gt;
You can set up your own libraries and dependencies without affecting the system-wide Python installation.&lt;br&gt;
Each virtual environment acts as a sandbox, allowing you to keep project-specific packages separate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Scenario-Based Use Cases:&lt;/strong&gt;&lt;br&gt;
    Imagine you’re simultaneously working on two web-based Python projects:&lt;br&gt;
Project A uses Django 4.0.&lt;br&gt;
Project B uses Django 4.1.&lt;br&gt;
Without virtual environments, both projects would share the same directories for storing and retrieving third-party libraries.&lt;br&gt;
This creates a problem because Python can’t differentiate between different versions of the same package in the system-wide “site-packages” directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtual environments come to the rescue:&lt;/strong&gt;&lt;br&gt;
     Each environment contains its own set of dependencies, ensuring that Project A and Project B remain independent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Creating a Virtual Environment:&lt;/strong&gt;&lt;br&gt;
     To create a virtual environment, you can use the virtualenv tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install it using:&lt;/strong&gt;&lt;br&gt;
$ pip install virtualenv&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test your installation:&lt;/strong&gt;&lt;br&gt;
$ virtualenv --version&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a new virtual environment:&lt;/strong&gt;&lt;br&gt;
$ virtualenv my_env&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deactivate Python Virtual Environment&lt;/strong&gt;&lt;br&gt;
  (virtualenv_name)$ deactivate&lt;/p&gt;

&lt;p&gt;This command creates a directory named my_env containing all the necessary executables for your Python project.&lt;br&gt;
You can also specify a specific Python interpreter (e.g., Python 3) when creating the environment:&lt;br&gt;
$ virtualenv -p /usr/bin/python3 virtualenv_name&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.Benefits&lt;/strong&gt;&lt;br&gt;
     &lt;strong&gt;Dependency Isolation:&lt;/strong&gt; Each project has its own isolated environment, preventing conflicts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Precise Dependency Management:&lt;/strong&gt; Install specific versions of packages for each project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration:&lt;/strong&gt; Share your project with others, ensuring consistent environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safe Experimentation:&lt;/strong&gt; Test new packages without affecting other projects.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WHAT IS SELENIUM ? WHY DO WE USE FOR AUTOMATION?</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Tue, 19 Mar 2024 09:55:37 +0000</pubDate>
      <link>https://dev.to/indhumathi/what-is-selenium-why-do-we-use-for-automation-54n4</link>
      <guid>https://dev.to/indhumathi/what-is-selenium-why-do-we-use-for-automation-54n4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Selenium&lt;/strong&gt;&lt;br&gt;
     Selenium is most renowned open-source test automation frameworks. It is powerful tool for controlling web browsers through programs. It is simpler to test web applications for performance, compatibility, and usefulness.&lt;/p&gt;

&lt;p&gt;It is compatibility with programming languages like Java, Python, C#, Ruby, and etc to create Selenium Test Scripts. Developers and Testers can use Selenium’s features in the programming environment of their choice and in the language.&lt;/p&gt;

&lt;p&gt;Selenium is functional for all browsers, works on all major OS, and its scripts are written in various languages. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium Tool Suite&lt;/strong&gt;&lt;br&gt;
     Selenium Integrated Development Environment (IDE)&lt;br&gt;
     Selenium Remote Control (RC)&lt;br&gt;
     WebDriver&lt;br&gt;
     Selenium Grid&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qasmkw89b64bnjkhdug.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qasmkw89b64bnjkhdug.jpg" alt="Image description" width="717" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium IDE&lt;/strong&gt;&lt;br&gt;
  It enables testers to develop test cases without having to have a deep understanding of programming. This IDE provides a straightforward, user-friendly user interface for adding and updating test cases.&lt;/p&gt;

&lt;p&gt;Selenium IDE implemented as a Firefox Add-On and as a Chrome Extension.&lt;/p&gt;

&lt;p&gt;This was previously known as Selenium Recorder.&lt;br&gt;
This provides commands for performing actions in a browser and for retrieving data from the resulting pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium RC (Remote control)&lt;/strong&gt;&lt;br&gt;
       The first automated web testing tool that allows users to use a programming language they prefer. It can support the following programming languages:&lt;br&gt;
C#&lt;br&gt;
Java&lt;br&gt;
PHP&lt;br&gt;
Python&lt;br&gt;
Perl&lt;br&gt;
Ruby&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1wya2tgu2owz51ksnwe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1wya2tgu2owz51ksnwe.jpg" alt="Image description" width="556" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebDriver&lt;/strong&gt;&lt;br&gt;
        It is the often-used tool in the Selenium suite. It uses native OS level functionality rather than browser-based JavaScript commands to drive the browser. This WebDriver does not need a special server to execute tests. It implements a more modern and stable approach in automation. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbk6vi375vyqdbyedh4wf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbk6vi375vyqdbyedh4wf.jpg" alt="Image description" width="553" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium GRID&lt;/strong&gt;&lt;br&gt;
     It is a tool used together with Selenium Remote Control to run parallel tests across different machines and different browsers all at the same time.  Running multiple tests at once is called as Parallel execution. &lt;br&gt;
 Selenium GRID Saves time enormously. This must be perfect for organizations with oversized test suites. This Selenium Grid allows testers to spread test cases and execute them in parallel.&lt;/p&gt;

&lt;p&gt;Selenium GRID is needed when run a huge test suite, that needs to complete in the soonest time possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using Selenium for Automated Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Language and Framework Support&lt;/strong&gt;&lt;br&gt;
         Selenium supports all major languages like Java, Python, JavaScript, C#, Ruby, and Perl programming languages for software test automation. Selenium converts any programming languages it into Selenium compatible codes in no time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Open-Source Availability&lt;/strong&gt;&lt;br&gt;
         The Main advantages of Selenium it is open-source availability. It helps the developers and software engineers in automating the web browser features and functionalities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Multi-Browser Support&lt;/strong&gt;&lt;br&gt;
        Selenium script is compatible with most used browsers in worldwide so no need to rewrite scripts for every browser, just one script for all browsers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Support Across Various Operating Systems&lt;/strong&gt;&lt;br&gt;
        It is necessary that your automation tool supports all different operating systems like Windows, Linux, Mac OS, UNIX, etc. Selenium test suites over any platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Ease Of Implementation&lt;/strong&gt;&lt;br&gt;
       It is very easy-to-use tool. It provides a user-friendly interface, so it helps to create and execute test scripts easily and effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Reusability and Integrations&lt;/strong&gt;&lt;br&gt;
     As we mentioned above that the test suites can be tested across multiple browsers and operating systems are reusable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Flexibility&lt;/strong&gt;&lt;br&gt;
     Selenium features like regrouping and refactoring of test cases becomes easier and more efficient so it helps developers and testers in quick changes to the code improving maintainability, minimizing complications, these features make Selenium more flexible and usable as compared to other automation testing tools. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Parallel Test Execution and Faster Go-to-Market&lt;/strong&gt;&lt;br&gt;
   The main purpose of automated testing is to save time and efforts, With the help of Selenium Grid, we can execute multiple tests in parallel to save time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Less Hardware Usage&lt;/strong&gt;&lt;br&gt;
     Selenium requires less hardware as compared to other testing tools like QTP, UFT, SilkTest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Easy to Learn and Use&lt;/strong&gt;&lt;br&gt;
     Selenium scripts are easy to learn it is not writing like hundred-page complex algorithm. &lt;br&gt;
&lt;strong&gt;11. Constant Updates&lt;/strong&gt;&lt;br&gt;
      Selenium community is constantly releasing constant upgrades are readily available and easy to understand. Compared to other tools it is cost-effective as well.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TASK 4 - MANUAL TESTING</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Sun, 24 Dec 2023 11:38:30 +0000</pubDate>
      <link>https://dev.to/indhumathi/task-4-manual-testing-47l1</link>
      <guid>https://dev.to/indhumathi/task-4-manual-testing-47l1</guid>
      <description>&lt;p&gt;&lt;strong&gt;MANUAL TESTING&lt;/strong&gt;&lt;br&gt;
       As the name itself suggests, this testing is the one in which application testing happens manually. The test cases are executed one by one by Testers manually without using any readymade tools, and then the results are verified.&lt;/p&gt;

&lt;p&gt;In this software testing, a tester carries out tests on the software by following a set of predefined test cases. Testers make test cases for the codes, test the software, and give the final report about that software to meets its user requirements. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D2fIR0XB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1pzal0tyvk13zmfrxd9e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D2fIR0XB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1pzal0tyvk13zmfrxd9e.jpg" alt="Image description" width="624" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The tester has to makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects.&lt;br&gt;
The manual testing verification is the most primitive form of software testing. Any new or updated applications must be tested manually before automation testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Need of Manual Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the changing trends in the software field, more and more software professionals prefer automated testing, but there are still multiple reasons which justify the need for manual testing. Few of them are:&lt;/p&gt;

&lt;p&gt;The main goal of this testing is to ensure that the application is bug-free, stable, in conformance with the requirements and delivers a stable product to the end users.&lt;br&gt;
It helps the test engineers get more familiar with the product and get an end-user perspective. This helps them to write correct test cases for the software application.&lt;br&gt;
Manual testing helps to verifies that the defects are fixed by the developer and that retesting has been done on the fixed defects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XjaSohTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1eb0ay17hbapu1gsnjlj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XjaSohTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1eb0ay17hbapu1gsnjlj.jpg" alt="Image description" width="733" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirement Analysis&lt;/strong&gt;&lt;br&gt;
       Tester has to study the software project documentation, guides, and Application Under Test (AUT). Analyse the requirements thoroughly from SRS.&lt;br&gt;
The Tester identifies test conditions, to check the basis of the test where tests basis is the crucial info on which test cases are based, like architecture, requirements, design specifications, product risk analysis, and interfaces.&lt;br&gt;
The tester has to plan the tests.&lt;br&gt;
To design the test environment set-up and determine the required tools and infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Plan Creation&lt;/strong&gt; &lt;br&gt;
      Tester has to Create a test plan covering all the requirements of the end user.&lt;br&gt;
These test cases help us follow a sequence to test functionality and various test scenarios such that we cover the entire application and check expected results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case Creation&lt;/strong&gt;&lt;br&gt;
      Tester has to design the test cases that cover all the requirements described in the documentation.&lt;br&gt;
After the analyses the necessities, now time to develop and hierarchize test cases by using methods and creating test data for those testing. &lt;br&gt;
Test cases function as reference guides for QA engineers, laying out as well as steps to test the distinct scenarios and functions within the software application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case Execution&lt;/strong&gt;&lt;br&gt;
      After the test case Review and baseline the test cases with the team lead and client. Then Execute the test cases on the application under test.&lt;/p&gt;

&lt;p&gt;Defect Logging &lt;br&gt;
     To Detect the bugs, log and report them to the developers is the primary thing in this stage. &lt;br&gt;
In this procedure to identify defects in the software under test or product by testing or keeping records from customers and making advanced versions of the product that mitigate and fix the flaws.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Defect Fix and Re-verification&lt;/strong&gt;&lt;br&gt;
    In this stage bugs are fixed, again execute the failing test cases to verify that they pass or not.&lt;/p&gt;

&lt;p&gt;The software developer makes changes in code alterations and verifies the modifications then he/she can build bug status as ‘Fixed’ and the bug issues are shifted to QA manual testing team. &lt;/p&gt;

&lt;p&gt;At this phase, the tester performs the further certification and testing of the altered code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TYPES OF MANUAL TESTING&lt;/strong&gt;&lt;br&gt;
     There are so many different methods to implement manual testing, but it is mainly classified into three types of manual testing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qd2sb_ZT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gw7s8ynf28vgtmim7krs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qd2sb_ZT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gw7s8ynf28vgtmim7krs.jpg" alt="Image description" width="623" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Black Box Testing&lt;/strong&gt;&lt;br&gt;
It is the type of testing where the tester testing the functions without the knowledge of about any internal structure or logical or code implementation. This test simply checks the inputs and user expected output it meets the requirements or not. This testing focus on user perspective only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;White Box Testing&lt;/strong&gt;&lt;br&gt;
It is the testing where the tester must have full knowledge of internal functions or structure, and logically it performs or not. In this testing user has to know code and implementation. It is completely developers' perspective only. It is also called as clear box or glass box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grey Box Testing&lt;/strong&gt;&lt;br&gt;
It is the testing that combines both black box testing and white box testing. This testing performs from both developer point of view and user point of view. In this testing we have some knowledge of how it works internally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools Used for Manual Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ffzaCrUf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27aumk9r1pxbvyx44klq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ffzaCrUf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27aumk9r1pxbvyx44klq.jpg" alt="Image description" width="586" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Link&lt;/strong&gt;&lt;br&gt;
   Web-based test management system that facilitates software QA. &lt;br&gt;
   The most user-friendly programs. &lt;br&gt;
   Available through a browser with good internet connection. &lt;br&gt;
   Supports cross-browser testing across different platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bugzilla&lt;/strong&gt;&lt;br&gt;
   Web-based bug-tracking tool that is developed by Mozilla. &lt;br&gt;
   This has simple bug search that it searches the complete text of the bug.&lt;br&gt;
  Supports various OS like Windows,Linux,Mac etc.,&lt;br&gt;
  It has the Facility to list the software bug in different format.&lt;br&gt;
  This has advance searching facility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jira&lt;/strong&gt; &lt;br&gt;
   This is the Manual testing tool that helps the teams to assign, track, report, and manage work and bring the teams together. &lt;br&gt;
This tool is one which is compatible with agile software projects also. &lt;br&gt;
It has the Option to track and manage the bugs and defects in the software application.&lt;br&gt;
This will Prioritize and assign tasks.&lt;br&gt;
Collaborate with team members is possible.&lt;br&gt;
In this we can Easily generate reports and track progress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LoadRunner&lt;/strong&gt; &lt;br&gt;
   Most widely used performance testing tools. &lt;br&gt;
   The purpose of this tool is to categorize the most prevalent causes of performance problems.&lt;br&gt;&lt;br&gt;
  Simulates real-world user behaviour and load.&lt;br&gt;
  Identifies bottlenecks and performance issues.&lt;br&gt;
  Scalable architecture for large-scale testing.&lt;br&gt;
  Provides detailed reports and analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apache JMeter&lt;/strong&gt;&lt;br&gt;
      It has Open-source load testing tool for analysing and measuring the performance of a variety of services in software application. It has an easy-to-use user interface. &lt;br&gt;
Simulates various types of loads (web, database, etc.).&lt;br&gt;
Highly configurable and extensible.&lt;br&gt;
Integrates with various plugins for additional features.&lt;br&gt;
Provides comprehensive performance reports and graphs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ADVANTAGES AND DISADVANTAGES OF MANUAL TESTING&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C75CBzBq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6c5dloc2pe7p22moocq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C75CBzBq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6c5dloc2pe7p22moocq.jpg" alt="Image description" width="560" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ADVANTAGES&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast and accurate visual feedback&lt;/li&gt;
&lt;li&gt;Less expensive&lt;/li&gt;
&lt;li&gt;No coding is required.&lt;/li&gt;
&lt;li&gt;It is suitable in case of unplanned changes to the application, as it can be adopted easily. so, its Efficient for unplanned changes&lt;/li&gt;
&lt;li&gt;It uses black box testing, so don’t need programming knowledge.&lt;/li&gt;
&lt;li&gt;Easy for new testers to learn.&lt;/li&gt;
&lt;li&gt;The tester interacts with the apps as a real user, to spot usability and user interface issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DISADVANTAGES&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; It is less reliable as it does not provide testing on all aspects of testing.&lt;/li&gt;
&lt;li&gt; It comparatively large number of human resources needed.&lt;/li&gt;
&lt;li&gt; Testers cannot use a given test case again so cannot be reused. &lt;/li&gt;
&lt;li&gt; Testers need to develop separate test cases for each new &lt;/li&gt;
&lt;li&gt;application for the software.&lt;/li&gt;
&lt;li&gt; In this tester develops test cases based on their skills and 
previous experiences. So, there is no proof that they have covered, 
all functions in the software applications. &lt;/li&gt;
&lt;li&gt; If the project is large, then this type of testing process is 
time-consuming.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;EXAMPLE:&lt;br&gt;
LOGIN WEB PAGE&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FdI60KNk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zuuri85h2b2lrhxmjbrj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FdI60KNk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zuuri85h2b2lrhxmjbrj.jpg" alt="Image description" width="229" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The user provides the correct username and password the user will be redirected to the homepage. If the user input is wrong, an error message will be displayed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Test Case 1 – Username and password both were wrong. It shows an error message.&lt;br&gt;
Test Case 2 – Username was correct, but the password was wrong. It shows an error message.&lt;br&gt;
Test Case 3 – Username was wrong, but the password was correct. It shows an error message.&lt;br&gt;
Test Case 4 – Username and password both were correct, and the user navigated to the homepage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile Banking Test Cases&lt;/strong&gt;&lt;br&gt;
    Banking applications allow the users to experience financial services that banks offer more easily for the end user.&lt;br&gt;
Test the installation and setup of the mobile banking app.&lt;br&gt;
Verify the compatibility with different mobile device types (iOS, Android).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test the installation process and setup functions of the mobile banking app.&lt;/li&gt;
&lt;li&gt;Verify it works with different mobile device types like iOS, Android.&lt;/li&gt;
&lt;li&gt;Test the responsiveness of the app function on various screen sizes and resolutions.&lt;/li&gt;
&lt;li&gt;Verify that mobile check deposit functions working correctly.&lt;/li&gt;
&lt;li&gt;Test mobile bill payment and funds transfer process in a right manner.&lt;/li&gt;
&lt;li&gt;Verify the accuracy of notifications and alerts.&lt;/li&gt;
&lt;li&gt;Testing the offline functionality, such as viewing account balances without an internet connection is possible or not.&lt;/li&gt;
&lt;li&gt;Verify the ability to check between multiple user accounts.&lt;/li&gt;
&lt;li&gt;Test the mobile app's synchronization with the web-based banking platform.&lt;/li&gt;
&lt;li&gt;Verify that the app is accessible to all type of users with disabilities (ADA compliance).&lt;/li&gt;
&lt;li&gt;Test the performance of the mobile app under low-network conditions.&lt;/li&gt;
&lt;li&gt;Verify that biometric authentication works securely e.g., fingerprint, face ID works securely.&lt;/li&gt;
&lt;li&gt;Test mobile app updates and their impact on existing data.&lt;/li&gt;
&lt;li&gt;Verify that the mobile app supports various language preferences and localization.&lt;/li&gt;
&lt;li&gt;Test mobile app-specific features like remote account deactivation is available or not.&lt;/li&gt;
&lt;li&gt;Verify that mobile app data is protected against device theft or loss.&lt;/li&gt;
&lt;li&gt;Test the mobile app's ability to generate and scan QR codes for transactions.&lt;/li&gt;
&lt;li&gt;Verify the handling of interruptions (e.g., phone calls) during app use.&lt;/li&gt;
&lt;li&gt;Test the mobile app's accessibility on both smartphones and tablets.&lt;/li&gt;
&lt;li&gt;Verify the integration of mobile app analytics for performance monitoring. &lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>TASK 3 - FUNCTIONAL AND NON-FUNCTIONAL TESTING</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Mon, 18 Dec 2023 13:00:15 +0000</pubDate>
      <link>https://dev.to/indhumathi/task-3-functional-and-non-functional-testing-dg3</link>
      <guid>https://dev.to/indhumathi/task-3-functional-and-non-functional-testing-dg3</guid>
      <description>&lt;p&gt;&lt;strong&gt;FUNCTIONAL TESTING&lt;/strong&gt;&lt;br&gt;
It is a type of software testing which verifies that each function of the software application tested against the functional requirements and specifications. Functional testing mainly involves &lt;strong&gt;black box testing&lt;/strong&gt;, and it is not concerned about the source code of the software application.&lt;br&gt;
Every functionality of the system is undergoing testing by providing &lt;strong&gt;appropriate input, verifying the output and comparing the actual results with the expected results&lt;/strong&gt;. In this type of testing can be done manually.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qkJrwTLW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5w20m3xwtneyh85n64lt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qkJrwTLW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5w20m3xwtneyh85n64lt.jpg" alt="Image description" width="650" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Functional testing is particularly concerned with the &lt;strong&gt;result of processing&lt;/strong&gt;. It is performed before the non-functional testing. &lt;br&gt;
It verifies the operations and actions of an application than the behaviour of an application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples of Functional Testing Types&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pCPZNP-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7h5wuv7zg2gs9n2z1ep.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pCPZNP-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7h5wuv7zg2gs9n2z1ep.jpg" alt="Image description" width="316" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unit testing&lt;/strong&gt;&lt;br&gt;
      It is a type of software testing that focuses on &lt;strong&gt;individual units or components&lt;/strong&gt;of a software system. The purpose of this testing is to validate each unit of the software works as properly and meets the user requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smoke testing&lt;/strong&gt;&lt;br&gt;
    This testing method that determines whether the employed &lt;strong&gt;build is stable or not&lt;/strong&gt;. It acts as a confirmation of whether the quality assurance team can proceed the next step of testing. This testing is important in software development as it ensures the &lt;strong&gt;correctness of the system in initial stages&lt;/strong&gt;.&lt;br&gt;
 This Testing also called as &lt;strong&gt;Confidence Testing or Build Verification Testing&lt;/strong&gt;.&lt;br&gt;
It &lt;strong&gt;carried out by quality assurance engineers&lt;/strong&gt;. Smoke testing measure the &lt;strong&gt;stability of the software product&lt;/strong&gt; by performing testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration Testing&lt;/strong&gt;&lt;br&gt;
     In this testing where interaction between two or more different components within the software.&lt;br&gt;
Multiple Components need to be tested together.&lt;br&gt;
In this software modules are integrated logically and tested as a group.&lt;br&gt;
The need of this level of testing is to &lt;strong&gt;find out defects in the interaction between these software modules when they are integrated&lt;/strong&gt;.&lt;br&gt;
This focuses on checking data communication among these modules. Hence it is also called as ‘String Testing’ and sometimes &lt;strong&gt;‘Thread Testing’&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interface Testing&lt;/strong&gt;&lt;br&gt;
      This software testing that focuses on verifying the &lt;strong&gt;interaction between different components, modules, or systems&lt;/strong&gt;.&lt;br&gt;
It integrates the connection of two components is called interface. This interface in a computer may be anything like API’s, web services, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regression Testing&lt;/strong&gt;&lt;br&gt;
   It &lt;strong&gt;ensures that new code changes in the software do not cause any effects on the existing functionalities. The previous code still works once the latest code changes are modified&lt;/strong&gt;.&lt;br&gt;
For example, we make a little change to the source code for any reason like adding new functionality, optimization, etc. then our program may fail in the previously designed test suite for obvious reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Acceptance&lt;/strong&gt;&lt;br&gt;
   It is &lt;strong&gt;performed by the end user or the client to verify the software system before moving the software to the business environment&lt;/strong&gt;. These are done in the final phase of testing after functional, integration and system testing are done.&lt;br&gt;
This is also called as &lt;strong&gt;End-User Testing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NON-FUNCTIONAL TESTING&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
    It is type of Software testing to check non-functional aspects software application. It is designed to test the accessibility of a system as per nonfunctional parameters which are never addressed by functional testing. &lt;br&gt;
&lt;strong&gt;Non-functional testing involves evaluating a system's performance, reliability, usability, efficiency, maintainability, and scalability&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q3th-2Eg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibsujd31oc4322m1hu61.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q3th-2Eg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ibsujd31oc4322m1hu61.jpg" alt="Image description" width="467" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each software application has its own functionality. For &lt;strong&gt;Example&lt;/strong&gt;, &lt;strong&gt;we can't expect a food delivery app to deliver your favourite dishes when you click on “Order food&lt;/strong&gt;.” The role of a n*&lt;em&gt;on-functional tester is to test if you can easily the user navigate to the “Order food” button&lt;/em&gt;*. They must also test if more than the ‘n’ number of users could place an order simultaneously from any browser/OS/device configuration it gives the results in a efficient time. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jqhni6tw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1vjjglqob5iepq9e2r4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jqhni6tw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1vjjglqob5iepq9e2r4.jpg" alt="Image description" width="549" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation Testing&lt;/strong&gt;&lt;br&gt;
        It is a type of software testing that involves testing the documented test cases developed before or during the testing process begins. Like a &lt;strong&gt;user manual&lt;/strong&gt; all the sequence of steps are documented clearly. &lt;br&gt;
It requires** Test Case document, Test description, Test case report, Test logs**. &lt;/p&gt;

&lt;p&gt;After the testing completed, the test summary remains which is a collective analysis of all test reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation Testing&lt;/strong&gt;&lt;br&gt;
      It is a type of software testing that verifies the installation process of software and verify that the software is installed correctly on various systems and configurations. &lt;br&gt;
This process helps to ensure that the software can be easily installed, configured, and uninstalled without any issues.&lt;/p&gt;

&lt;p&gt;The main goal of installation testing is to verify that the &lt;strong&gt;software installation correctly on different operating systems, hardware, and software configurations to ensure that it can be installed and configured correctly&lt;/strong&gt;, and that the software’s functionality is not compromised during in the installation process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Testing&lt;/strong&gt;&lt;br&gt;
      It is a type of software testing that verifies software applications perform properly under their expected workload. This testing technique carried out to &lt;strong&gt;determine system performance in terms of speed, responsiveness, stability and scalability of a software application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal of performance testing is to measure system performance under various loads and conditions and ensure that the system can handle the expected number of users or transactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Load Testing&lt;/strong&gt;&lt;br&gt;
    This test ensures &lt;strong&gt;the real-world load on the system to see how it performs under stress&lt;/strong&gt;. It helps to determine the maximum number of users or transactions the system can handle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stress Testing&lt;/strong&gt;&lt;br&gt;
    It is a type of load testing that tests any potential issues that may occur under heavy load conditions. Stress testing helps to &lt;strong&gt;identify the breaking point of the system and ability to handle a high load&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability Testing&lt;/strong&gt;&lt;br&gt;
     It is a type of testing to ensures how the application scales with increasing workload and to measure at what point the software product or the system stops scaling and identify the reason behind it.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt; - Testing of a web page depends on the number of users, usage of CPU, network usage while scalability testing of a web server depends on the number of requests processed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability Testing&lt;/strong&gt;&lt;br&gt;
     It is a type of software testing that ensures the ability of a system to perform its &lt;strong&gt;intended function consistently and without failure over an extended period of time&lt;/strong&gt;. &lt;br&gt;
The need of reliability testing is to identify and address issues that which situation can cause the system to fail or to become unavailable like &lt;strong&gt;Data crashes&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security Testing&lt;/strong&gt;&lt;br&gt;
  It is a type of software testing that mainly focuses on evaluating the security of a system or application. The need of security testing is to identify &lt;strong&gt;vulnerabilities and potential threats&lt;/strong&gt; and to ensure that the system is protected against &lt;strong&gt;unauthorized access, data breaches, and other security-related issues.&lt;/strong&gt;&lt;br&gt;
It determines that the software system and application are free from any threats or risks that can cause a loss.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Differences between Functional and Non-functional Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FJ1lGjOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hncywbmn6j0ciym7jmbl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FJ1lGjOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hncywbmn6j0ciym7jmbl.jpg" alt="Image description" width="645" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key Difference Between Functional Testing and Non-Functional Testing&lt;/p&gt;

&lt;p&gt;Functional testing verifies each function whereas Non-Functional testing verifies non-functional aspects like performance, usability, reliability, etc.&lt;/p&gt;

&lt;p&gt;Functional testing can be done manually whereas Non-Functional testing is hard to perform manually.&lt;/p&gt;

&lt;p&gt;Functional testing is based on &lt;strong&gt;User’s requirements&lt;/strong&gt; whereas Non-Functional testing is based on &lt;strong&gt;User’s expectations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Functional testing has a goal to validate software actions whereas Non-Functional testing has a goal to validate the performance of the software.&lt;/p&gt;

&lt;p&gt;The Functional Testing example is to check the &lt;strong&gt;login functionality&lt;/strong&gt; whereas a Non-Functional testing example is to check the dashboard should &lt;strong&gt;load in 2 seconds&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Functional testing is performed before the non-functional testing.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>beginners</category>
      <category>automation</category>
    </item>
    <item>
      <title>TASK 2 -TESTING TECHNIQUES</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Sun, 17 Dec 2023 13:25:51 +0000</pubDate>
      <link>https://dev.to/indhumathi/testing-techniques-1p26</link>
      <guid>https://dev.to/indhumathi/testing-techniques-1p26</guid>
      <description>&lt;p&gt;&lt;strong&gt;BOUNDARY VALUE ANALYSIS&lt;/strong&gt;&lt;br&gt;
      Boundary testing is the process of testing between boundaries or extreme ends between partitions of the input values. So these extreme ends like &lt;strong&gt;Maximum-Minimum, Lower- Upper, Start- End, Just Inside-Just Outside values&lt;/strong&gt; are called boundary values and the testing is called “boundary testing”. &lt;/p&gt;

&lt;p&gt;Boundary testing is the type of &lt;strong&gt;black box testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Based on this testing the boundary values of valid and invalid partitions. In this Testing Behaviour at the edge of the equivalence partition is more likely to be incorrect than the behaviour within the partition, so boundaries are an area where testing is likely to yield defects.&lt;/p&gt;

&lt;p&gt;Equivalence Class Partitioning plays a good role in the boundary testing. It is type of black box testing technique which can be applied to all levels of software testing like unit, integration, system, etc. In this technique, input data units are divided into equivalent partitions that can be used to derive test cases which reduces time required for testing because of small number of test cases.&lt;/p&gt;

&lt;p&gt;Equivalence Partitioning or Equivalence Class Partitioning divides the input data of software into different equivalence data classes, where there is a range in the input field.&lt;/p&gt;

&lt;p&gt;The boundary value for a valid partition is consider as valid boundary value.&lt;br&gt;
The boundary value for an invalid partition is considered as invalid boundary value.&lt;br&gt;
For each variable we check- Minimum value, just above the minimum, Nominal Value, just below Max value, Max value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example 1&lt;/strong&gt;: Consider a system that accepts ages from 18 to 58.&lt;br&gt;
        Boundary Value Analysis (Age accepts 18 to 58)&lt;/p&gt;

&lt;p&gt;Invalid = (min - 1)&lt;/p&gt;

&lt;p&gt;Valid= (min, min + 1, nominal, max – 1, max)&lt;/p&gt;

&lt;p&gt;Invalid= (max + 1)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Valid Test cases&lt;/strong&gt;: Valid test cases for this below example might be any value entered greater than 18 and less than 58.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invalid Testcases&lt;/strong&gt;: When any value less than 18 and greater than 58 is entered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If We Take (17,18,19,37,55,58,59)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If we Enter the value - 18 &lt;br&gt;
If we Enter the value - 19&lt;br&gt;
If we Enter the value - 37&lt;br&gt;
If we Enter the value - 55&lt;br&gt;
If we Enter the value - 58&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The above are all Valid test cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If we Enter the value - 17&lt;br&gt;
If we Enter the value - 59&lt;br&gt;
&lt;strong&gt;The above are all Invalid test cases&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Example 2&lt;/strong&gt; Below is the example to combine Boundary Value and Equivalence Partitioning.&lt;/p&gt;

&lt;p&gt;Consider a field that accepts a &lt;strong&gt;minimum of 8 characters&lt;/strong&gt; and a &lt;strong&gt;maximum of 12 characters.&lt;/strong&gt; Then the partition of the test cases &lt;strong&gt;ranges 0 – 7, 8 – 12, 13 – 18.&lt;/strong&gt;&lt;br&gt;
Enter value &lt;strong&gt;0 to 7&lt;/strong&gt; character - &lt;strong&gt;Not accepted&lt;/strong&gt;.&lt;br&gt;
Enter &lt;strong&gt;8 to 12&lt;/strong&gt; character - &lt;strong&gt;Accepted&lt;/strong&gt;.&lt;br&gt;
Enter &lt;strong&gt;13 to 18&lt;/strong&gt; character - &lt;strong&gt;Not accepted&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DECISION TABLE TESTING&lt;/strong&gt;&lt;br&gt;
       Decision table testing is a type of software testing technique where the testers has used to &lt;strong&gt;test system behaviour for different input combinations&lt;/strong&gt;. This testing includes type of Black Box Testing. &lt;br&gt;
In this where the different input combinations and their corresponding system behaviour (Output) are captured in a tabular form. The output may be dependent on many input conditions, decision tables give a tabular view of various combinations of input conditions and these conditions are in the form of True(T) and False(F).That is why it is also called as a Cause-Effect table where Cause and effects are captured for better test coverage.&lt;/p&gt;

&lt;p&gt;This technique is an effective tool used for both complex software testing and requirements management. It helps to check all possible combinations of conditions for testing and the testers can also identify missed conditions easily.&lt;br&gt;
&lt;strong&gt;Example: Decision Base Table for Login Screen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OyrQFMxQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/viv8yn1bzp16e83e6avt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OyrQFMxQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/viv8yn1bzp16e83e6avt.jpg" alt="Image description" width="434" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The user provides the correct username and password the user will be redirected to the homepage. If the user input is wrong, an error message will be displayed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Test Case 1 – Username and password both were wrong. It shows an error message.&lt;br&gt;
Test Case 2 – Username was correct, but the password was wrong. It shows an error message.&lt;br&gt;
Test Case 3 – Username was wrong, but the password was correct. It shows an error message.&lt;br&gt;
Test Case 4 – Username and password both were correct, and the user navigated to the homepage.&lt;br&gt;
&lt;strong&gt;Example: Decision Table for Upload Screen&lt;/strong&gt;&lt;br&gt;
You can upload only ‘.jpg’ format image.&lt;br&gt;
file size less than 50kb&lt;br&gt;
resolution 250*250&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---Z1k5bqk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvy8jxfumrrzhkilgurs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---Z1k5bqk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvy8jxfumrrzhkilgurs.jpg" alt="Image description" width="652" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 1&lt;/strong&gt; - Upload a photo with format ‘.jpg’, size less than 50kb and resolution 250*250 and click on upload. The result is Photo should upload successfully.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 2&lt;/strong&gt; - User Upload a photo with format ‘.jpg’, size less than 50kb and resolution not 250*250 and click on upload. The result is Error message must be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 3&lt;/strong&gt;- User Upload a photo with format ‘.jpg’, size more than 50kb and resolution 250*250 and click on upload. The result is Error message size mismatch should be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 4&lt;/strong&gt; - User Upload a photo with format ‘.jpg’, size more than equal to 50kb and resolution not 250*250 and click on upload. The result is Error message size and resolution mismatch might be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 5&lt;/strong&gt; - User Upload a photo with format other than ‘.jpg’, size less than 50kb and resolution 250*250 and click on upload. The result is Error message for format mismatch must be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 6&lt;/strong&gt; - User Upload a photo with format other than ‘.jpg’, size less than 50kb and resolution not 250*250 and click on upload. The result is Error message format and resolution mismatch should be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 7&lt;/strong&gt; - User Upload a photo with format other than ‘.jpg’, size more than 50kb and resolution 250*250 and click on upload. The result is Error message for format and size mismatch must be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case 8&lt;/strong&gt; - User Upload a photo with format other than ‘.jpg’, size more than 50kb and resolution not 250*250 and click on upload. The result is Error message for format, size and resolution mismatch must be displayed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;USE CASE TESTING&lt;/strong&gt;&lt;br&gt;
       Use Case Testing is a part of black box testing, and it helps the developers and testers to identify test scenarios that exercise the whole system on each transaction basis from start to finish.&lt;br&gt;
Use case testing helps to identify the gaps in software that might not be identified by testing individual component and helps to identify the gaps in software that might not be identified by testing individual components.&lt;br&gt;
It is a type of end-to-end testing it won’t ensure the entire coverage of the user application and it will find out the defects in integration testing.&lt;br&gt;
Example: In this a person is represented by “P” and system by “S”. We create Use for a login functionality of a Web Application as displayed below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ujmZ80DS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q91d8ke4pf2txjjuhh6d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ujmZ80DS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q91d8ke4pf2txjjuhh6d.jpg" alt="Image description" width="708" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Person enters email and password and the next step, the system will validate the password.&lt;/li&gt;
&lt;li&gt;If the password is correct, then the access will be granted.&lt;/li&gt;
&lt;li&gt;If in case password is not valid system will display a message and ask for re-try three times.&lt;/li&gt;
&lt;li&gt;If Password, not valid three times system will ban the IP address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Linear code sequence and jump&lt;/strong&gt;&lt;br&gt;
       It is a white box testing technique to identify the code coverage, which begins at the start of the program and ends at the end of the program.&lt;br&gt;
It is also called JJ-path, standing for jump-to-jump path.&lt;br&gt;
LCSAJ means 100% Statement Coverage, Branch Coverage, procedure or Function call Coverage, Multiple condition Coverage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example: checking the Age Eligibility to Vote&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Input age of the person and check whether a person is eligible or not. &lt;/p&gt;

&lt;p&gt;Eligible - Age &amp;gt;= 18&lt;br&gt;
Not Eligible - Age &amp;lt; 18&lt;/p&gt;

&lt;p&gt;Check the condition, whether age is greater than or equal to &lt;br&gt;
18, will be eligible for the voting. &lt;/p&gt;

&lt;p&gt;If it is less than 18 the person will not be eligible for the voting.&lt;/p&gt;

</description>
      <category>testing</category>
    </item>
    <item>
      <title>TASK 1-SOFTWARE TESTING</title>
      <dc:creator>Indhumathi</dc:creator>
      <pubDate>Tue, 12 Dec 2023 11:21:44 +0000</pubDate>
      <link>https://dev.to/indhumathi/task-1-software-testing-124m</link>
      <guid>https://dev.to/indhumathi/task-1-software-testing-124m</guid>
      <description>&lt;p&gt;&lt;strong&gt;Software Testing&lt;/strong&gt;&lt;br&gt;
      Software Testing Is the Process of Identifying Defects in The Software and Eliminate the Bugs to Meet the End User Requirements with High Quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Need To Know About Software Testing&lt;/strong&gt;&lt;br&gt;
     The Need of Software Testing Is to Verify,Identify and Fixing the Issues Earlier in the Development Process in Order To reducing the cost And Effort of Fixing Them Later. So, Its Time Saver and Cost Effective. It Also Reduces the Risk in The Software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types Of Software Testing&lt;/strong&gt;&lt;br&gt;
     1. Manual Testing&lt;br&gt;
     2. Automation Testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manual Testing&lt;/strong&gt;&lt;br&gt;
     In Manual Testing, Humans Involves in The Process to Fix the Issues in The Software before the Automation Testing. This Testing does not require Any Automation Tools. It makes the user to get full knowledge about the Needs of The End Of the user. It Identify The bugs in the Earlier stages itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stages Of Manual Testing&lt;/strong&gt;&lt;br&gt;
     Unit Testing&lt;br&gt;
     Integration Testing&lt;br&gt;
     System Testing&lt;br&gt;
     UI Testing&lt;br&gt;
     Acceptance Testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;&lt;br&gt;
           It is the testing where individual components or functions have to tested separately. Example: In Calculator we have to test addition, subtraction, division, multiplication individually whether it performs in a right way and give output Correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Integration Testing&lt;/strong&gt;&lt;br&gt;
    It is the testing where number of units are integrated and then tested. Like two components or two functions are tested as a whole. Its the next step of unit testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System Testing&lt;/strong&gt;&lt;br&gt;
    It is the testing where all integrated components or functions tested as a whole. Like We Said in The Example of Calculator In unit testing, here it is tested as whole function in the calculator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UI Testing&lt;/strong&gt;&lt;br&gt;
    It is the testing involves visual elements of the software. UI Testing Checks the Graphical Interface Like fonts, menu, colors, checkboxes and more. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acceptance Testing&lt;/strong&gt;&lt;br&gt;
      Acceptance Testing ensures that to meet the business requirements of the user and also evaluate the product satisfy the user standards. It is the last stage to identify the bugs before releasing the product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types Of Manual Testing&lt;/strong&gt;&lt;br&gt;
      Black Box Testing&lt;br&gt;
      White Box Testing&lt;br&gt;
      Grey Box Testing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Black Box Testing&lt;/strong&gt;&lt;br&gt;
         It is the type of testing where the tester testing the functions without the knowledge of about any internal structure or logical or code implementation. This test simply checks the inputs and user expected output it meets the requirements or not. This testing focus on user perspective only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;White Box Testing&lt;/strong&gt;&lt;br&gt;
        It is the testing where the tester must have full knowledge of internal functions or structure, and logically it performs or not. In this testing user has to know code and implementation. It is completely developers' perspective only. It is also called as &lt;strong&gt;clear box or glass box&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grey Box Testing&lt;/strong&gt;&lt;br&gt;
      It is the testing that combines both black box testing and white box testing. This testing performs from both developer point of view and user point of view. In this testing we have some knowledge of how it works internally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation Testing&lt;/strong&gt;&lt;br&gt;
    In Automation Testing, it uses some specific software to test the functions. Many Cases we have to check N number of thing at a time so in these humans has not able to process it all at a time. so, automation testing needed at this time. So, it's Really a Time Saver. But Picking a Right Automation Tools Is Mandatory.&lt;/p&gt;

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