<?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: AeroSiva</title>
    <description>The latest articles on DEV Community by AeroSiva (@aerosiva).</description>
    <link>https://dev.to/aerosiva</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%2F1149325%2Fece91502-0c1a-4ba6-b434-31da9bbff888.png</url>
      <title>DEV Community: AeroSiva</title>
      <link>https://dev.to/aerosiva</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aerosiva"/>
    <language>en</language>
    <item>
      <title>Selenium Architechture and Virtual Environment</title>
      <dc:creator>AeroSiva</dc:creator>
      <pubDate>Tue, 03 Oct 2023 16:26:14 +0000</pubDate>
      <link>https://dev.to/aerosiva/selenium-architechture-and-virtual-environment-3kbf</link>
      <guid>https://dev.to/aerosiva/selenium-architechture-and-virtual-environment-3kbf</guid>
      <description>&lt;h2&gt;
  
  
  Selenium architecture:
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In Selenium Framework Selenium WebDriver supports overall browser-based automation tests majorly. WebDriver is the remote-control interface component that allows test programs to instruct and interact with browsers, manipulate DOM elements in a web page, and control the user agent’s behaviour. 
Selenium WebDriver and Selenium RC were merged to form Selenium 2.0 and later upgraded to Selenium 3.0 now Selenium 4.0 is further developed.
Now, all companies widely use a 3X version of Selenium. Now 4x version has been introduced these two have completely two different architectures.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Selenium WebDriver 3.0 Architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lV5S1XDD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ecbfyi9sychbb5q9vd1w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lV5S1XDD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ecbfyi9sychbb5q9vd1w.png" alt="Client libraries communicates to Browser driver through JSON Wire Protocol Over HTTP and then browser driver and browser communicates by means of HTTP over HTTP Server" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Selenium Client Libraries
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Selenium client libraries or language bindings permit Selenium to support multiple languages to write test scripts like Ruby, C#, Python, and Java. It contains classes and methods required to write test automation scripts. It provides an application programming interface (API), i.e., a set of functions that performs the Selenium commands from the test script.
Web Driver protocol clients (They are thin wrappers around WebDriver protocol HTTP calls) and WebDriver-based tools are two major groups (These are higher-level libraries that allow us to work with WebDriver automation).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Json wire protocol
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Selenium WebDriver 3.0 uses JSON to communicate between Selenium client libraries and browser drivers. The request sent by the client is converted into an HTTP request for the understanding of the server and it again returns information in the JSON format to the client. It uses Layer 5 of the OSI reference model.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Browser Driver
&lt;/h2&gt;

&lt;p&gt;Browsers that support selenium have unique browser drivers like ChromeDriver for Google Chrome and GeckoDriver for Mozilla Firefox. It takes commands from the test scripts and passes them to the browser and is responsible for user actions like mouse clicks, keyboard inputs, etc.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; This HTTP request is routed through the HTTP Server which in turn directly drives the command execution on the browser.&lt;/li&gt;
&lt;li&gt; The browser then sends back the test status to the HTTP Server, which in turn forwards it to the test automation script.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Browser
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Google Chrome, Mozilla Firefox, Microsoft Edge, and Apple’s Safari are some of the browsers Selenium supports it is also one of the components of Selenium Architecture. When these browsers receive a command it calls for respective commands and executes the test.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Selenium WebDriver 4.0 Architecture.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gWV2iU_a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sg31mhy0gjafsdydvxib.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gWV2iU_a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sg31mhy0gjafsdydvxib.jpg" alt="Client libraries communicates to Browser driver through W3C Protocols and then the browser driver and browser communicates by means of HTTP over HTTP Server" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Here Json wire protocol is replaced by the W3C protocol. The problem with JSON protocol is that the commands need to be converted into HTTP requests because the server only understands protocols but with the introduction of the W3C protocol there is no such need so the test can happen faster. &lt;/p&gt;
&lt;h2&gt;
  
  
  Virtual Environment
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;It is the way we can separate different Python environments for different projects.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3R4qZ0WH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/85eqnkrjvun2kkd0a95a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3R4qZ0WH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/85eqnkrjvun2kkd0a95a.jpg" alt="Virtual environment 1 has python version 2.7 and third party libraries like Numpy 1.14.4 and Matplotlib 2.2.5 and Virtual environment 2 have Python 3.6 version and libraries like pandas1.01.1 and pyspark2.4.8 and virtual environment 3 have python 3.1 and libraries like Pandas1.3.5 and Matplotlib3.5.1 " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Significance of virtual environment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Isolation &lt;br&gt;
If one is working on multiple projects and each project relies on packages like Flask, Django but in different versions, then installing these packages globally on his device may create conflicts and may even break the working projects. To avoid conflict virtual environment is created individually for every single project. And on these virtual environments, we can install all the necessary dependencies like libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dependency management&lt;br&gt;
 Easy to manage dependencies like libraries, online services, and programming scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Version Compatibility&lt;br&gt;
 Simultaneously working on different versions of Python in different projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean and Reproducible Environments&lt;br&gt;
 Easy to share projects and deploy we can give requirement files so the client can reproduce the environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security&lt;br&gt;
 By sandboxing Python projects it provides security to the project.&lt;br&gt;
 Also, it prevents unauthorized access to the global libraries installed in the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Portability&lt;br&gt;
 Packaging the entire project including its virtual environments project has higher portability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enabling Continuous Integration (CI) and Deployment&lt;br&gt;
 Virtual environments play an important role in CI/CD (Continuous Integration and Continuous Deployment) pipelines. These pipelines use virtual environments to set up reproducible build and test environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work on multiple Python projects&lt;br&gt;
 Usually, all IT workers including Developers and Testers work on multiple projects and it is highly useful in that case.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>So now,What is Selenium? and why do we need to use Selenium</title>
      <dc:creator>AeroSiva</dc:creator>
      <pubDate>Mon, 02 Oct 2023 02:56:36 +0000</pubDate>
      <link>https://dev.to/aerosiva/so-nowwhat-is-selenium-and-why-do-we-need-to-use-selenium-4e9n</link>
      <guid>https://dev.to/aerosiva/so-nowwhat-is-selenium-and-why-do-we-need-to-use-selenium-4e9n</guid>
      <description>&lt;h2&gt;
  
  
  So what is Selenium?
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;In short, Selenium is a suite of tools for automating web browsers. It remotely controls browser instances and emulates the user’s interaction with the browser. It allows users to simulate common activities performed by end users;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; Entering text in the field.&lt;/li&gt;
&lt;li&gt; Selecting dropdown values.&lt;/li&gt;
&lt;li&gt; Checking check boxes.&lt;/li&gt;
&lt;li&gt; Clicking links in the documents.&lt;/li&gt;
&lt;li&gt; Mouse movements.&lt;/li&gt;
&lt;li&gt; Execution of arbitrary JavaScript, Etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Who uses Selenium?
&lt;/h2&gt;

&lt;p&gt;The companies are using it for browser-based tests for functional test automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let us discuss about Short history of Selenium
&lt;/h2&gt;

&lt;p&gt;.&lt;br&gt;
    In Chicago &lt;strong&gt;&lt;em&gt;Jason Huggins&lt;/em&gt;&lt;/strong&gt; works in &lt;strong&gt;&lt;em&gt;Thoughtworks&lt;/em&gt;&lt;/strong&gt; consultancy, Where automatic testing of any application was done on Agile methodology. There he built a core of selenium mode as “JavaScript Test Runner” for testing an internal Time and Expenses application Plone._ Plone_ is a ready-to-run content management system, that offers a complete set of features needed by various organizations. When he shares it with his colleague it grows into what we see now due to its usage and contribution of many coders. Later initial development Shinya Kasatani in Japan wrapped the core into an IDE module in the Firefox browser to record tests and played it back to develop Selenium IDE. In 2007, With the support of Google Selenium RC and Selenium Grid, it gained much development. &lt;strong&gt;_Simon Stewarts _&lt;/strong&gt;at Thoughtworks Web testing tool called WebDriver and Jason’s Selenium project was merged into get better selenium as of today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Do we need to use SELENIUM ? First, let us understand various Test-Tool Suites.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Selenium IDE.&lt;/li&gt;
&lt;li&gt; Selenium WebDriver.&lt;/li&gt;
&lt;li&gt; Selenium RC.&lt;/li&gt;
&lt;li&gt; Selenium Grid.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Selenium IDE.
&lt;/h2&gt;

&lt;p&gt;• It is an easy-to-use browser extensions like&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Google’s – Chrome/Chromium.&lt;/li&gt;
&lt;li&gt; Mozilla’s - Firefox.&lt;/li&gt;
&lt;li&gt; Microsoft – Edge
• Generally, it is the most efficient way to develop a test case. Developed by &lt;strong&gt;&lt;em&gt;Shinya Kasatani&lt;/em&gt;&lt;/strong&gt; from Japan.
• It records the User’s actions in the browser using existing Selenium controls with parameters defined by the context of that element.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Selenium WebDriver.
&lt;/h2&gt;

&lt;p&gt;• At the core of selenium is the WebDriver, an interface to write instruction sets that can be run interchangeably in many browsers.&lt;br&gt;
• WebDriver uses browser automation APIs provided by browser vendors to control the browser and run tests. This is as if a real user is operating the browser.&lt;br&gt;
• API-Application programming Interface is the set of commands used to manipulate WebDriver.&lt;br&gt;
• WebDriver passes commands to the Browser through the Driver and gets information back via the same path.&lt;br&gt;
• Driver – Responsible for controlling the actual browser and is specific to the Browser such as &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; ChromeDriver for Google Chrome.&lt;/li&gt;
&lt;li&gt; GeckoDriver for Mozilla Firefox.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These Drivers are generally executable modules that run on the system within the browser itself and not in the system executing the test suite.&lt;br&gt;
• Tests may or may not be executed in the same system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WDUq2OB9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6bsuca1qpvbb7xusoeb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WDUq2OB9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6bsuca1qpvbb7xusoeb0.png" alt="WebDriver sends commands to Driver and Driver sends commands to Browser,While the Browser sends back information to the Driver and Driver inturn sends the information to the WebDriver" width="569" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium RC&lt;/strong&gt;&lt;br&gt;
• It is now WebDriver.&lt;br&gt;
• It supports various languages like Python, PHP, C#, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P_6GHZTx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6xtifwmrs3mqmm13bj6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P_6GHZTx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6xtifwmrs3mqmm13bj6.png" alt="WebDriver sends commands to the Remote driver and it send commands to the Driver and Driver sends commands to Browser,While the Browser sends back information to the Driver and Driver inturn sends the information to the Remote driver which inturn sends information to the WebDriver" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Selenium Grid
&lt;/h2&gt;

&lt;p&gt;• After the development of the WebDriver tests, one may need to run tests on multiple browsers and operating system combinations.&lt;br&gt;
• It is used to run test cases in different machines across different platforms.&lt;br&gt;
• The control on triggering the test cases is on the local end, an when the test cases are triggered, they are automatically executed by the remote end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LpAFMK6e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12u164la3z86nx6pke5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LpAFMK6e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/12u164la3z86nx6pke5e.png" alt="WebDriver sends commands to the Selenium server/Grid and it send commands to the Driver and Driver sends commands to Browser,While the Browser sends back information to the Driver and Driver inturn sends the information to the Selenium server/Grid which inturn sends information to the WebDriver" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Framework
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;An additional library is used as a support for WebDriver suites. This framework matches the language bindings.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; Junit for Java.&lt;/li&gt;
&lt;li&gt; Nunit for .NET.&lt;/li&gt;
&lt;li&gt; RSpec for Ruby.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The test framework is responsible for running and executing WebDriver and related steps in tests. Natural language frameworks /tools such as Cucumber may also exist as part of that Test framework box.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_JniJele--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jaakbed2gpe7wybf0cwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_JniJele--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jaakbed2gpe7wybf0cwq.png" alt="WebDriver sends commands to the Selenium server/Grid and it send commands to the Driver and Driver sends commands to Browser,While the Browser sends back information to the Driver and Driver inturn sends the information to the Selenium server/Grid which inturn sends information to the WebDriver and in this whole process WebDriver is placed within the Test Framework" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>automationtesting</category>
      <category>testing</category>
      <category>selenium</category>
    </item>
    <item>
      <title>And Finally for now can we once some thing regarding manual testing</title>
      <dc:creator>AeroSiva</dc:creator>
      <pubDate>Sun, 03 Sep 2023 17:20:03 +0000</pubDate>
      <link>https://dev.to/aerosiva/and-finally-for-now-can-we-once-some-thing-regarding-manual-testing-2mml</link>
      <guid>https://dev.to/aerosiva/and-finally-for-now-can-we-once-some-thing-regarding-manual-testing-2mml</guid>
      <description>&lt;h2&gt;
  
  
  Manual testing:
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;It is a software testing process in which test cases are executed manually without using any automated tool. Here all the test cases are manually executed by the tester in the end user perspective. The difference between the actual output and the expected output is termed as defect and the test report is also prepared manually. Manual testing is done before the automation testing. And as the tester gets familiar with the application in the end user perspective, it will be useful for the tester to check all the bugs and end user’s difficulty and is also useful to write automation testing scripts.&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Types of manual testing:&lt;br&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; White box testing: done by developer and the code is visible is so called a white box. Checks whether the cod is written as per the standard or not.&lt;/li&gt;
&lt;li&gt; Black Box testing: Done by test engineer and the code is not visible so called as Black box. Checks the functionality.&lt;/li&gt;
&lt;li&gt; Grey Box testing:  combination of both white box and black box. It requires requirement document to write test cases.
Some of the &lt;strong&gt;&lt;em&gt;tools&lt;/em&gt;&lt;/strong&gt; used by the manual testers for manual testing are: 
• Jira
• Jmeter
• Mantis
Drawbacks of manual testing:&lt;/li&gt;
&lt;li&gt; It needs large number of human resources and hence needs more money resource also.&lt;/li&gt;
&lt;li&gt; It is a time-consuming process.&lt;/li&gt;
&lt;li&gt; Tester develops test cases based on their skills and experience. There is no evidence that they have covered all functions or not.&lt;/li&gt;
&lt;li&gt; Test cases cannot be used again. Need to develop separate test cases for each new software.&lt;/li&gt;
&lt;li&gt; It does not provide testing on all aspects of testing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Some examples in support of my answer
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Need more resources: As this involves manually testing , IT companies need skilled and trained software testers which cost them extra man power and extra cost for the support of that man power.&lt;/li&gt;
&lt;li&gt; Time consuming:  As the tester need to execute each test cases manually it requires more time.
• Regression testing: It is not practically possible to make regression testing again and again with full perfection after each time modification is made in the program.&lt;/li&gt;
&lt;li&gt; Test case efficiency: In some cases if testers overlook some test cases, or mis interoret results, or make mistake while executing test cases, the efficiency of the test case may in question.
• Constraints: Due to time constraints and resource constraints it is not possible to check each and every test cases as expected so as to ensure the application is bug free.&lt;/li&gt;
&lt;li&gt;  Test case not reusable:  As the testers need to write again and again some same kind of work they may loss interest. And make mistake even when recreating test cases. It needs more time to test.&lt;/li&gt;
&lt;li&gt; All aspects of testing: not possible to perform extensive load testing and performance testing in a level of the market demand.
• Load testing, stress testing: Practically it is impossible to simulate real world level load and stress level within company by using manual testing.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>testing</category>
      <category>automation</category>
    </item>
    <item>
      <title>Here can we discuss about what is the difference between functional and non- functional testing briefly.</title>
      <dc:creator>AeroSiva</dc:creator>
      <pubDate>Sun, 03 Sep 2023 16:58:00 +0000</pubDate>
      <link>https://dev.to/aerosiva/here-can-we-discuss-about-what-is-the-difference-between-functional-and-non-functional-testing-briefly-2nb2</link>
      <guid>https://dev.to/aerosiva/here-can-we-discuss-about-what-is-the-difference-between-functional-and-non-functional-testing-briefly-2nb2</guid>
      <description>&lt;h2&gt;
  
  
  So first of all what is Functional Testing
&lt;/h2&gt;

&lt;p&gt;It is a &lt;strong&gt;black box testing&lt;/strong&gt;. Testing what the system actually does is functional testing. It is to check whether each function of the software application behaves as specified in the SRS document. It is testing all the functionalities by providing appropriate input to verify whether the &lt;strong&gt;&lt;em&gt;actual output is matching the expected output&lt;/em&gt;&lt;/strong&gt; or not.&lt;br&gt;
What the system actually does is functional testing&lt;br&gt;
To ensure that the product meets customer and business requirements and doesn’t have any major bugs&lt;br&gt;
To verify the accuracy of the software against expected output&lt;br&gt;
It is performed before non-functional testing&lt;br&gt;
Example of functional test case is to verify the login functionality&lt;/p&gt;

&lt;h2&gt;
  
  
  some Testing types are
&lt;/h2&gt;

&lt;p&gt;• Unit testing/ Component testing- it checks individual unit/module – usually done by Developer&lt;br&gt;
• Smoke testing – it is also called as day 0 testing, It is to check whether key features and key bugs, usually done on unstable build. The main purpose is to check whether the build is testable or not.&lt;br&gt;
• User Acceptance – Basically there are there are 2 user acceptance test viz. 1. Alpha, Beta. One done by inhouse developer or tester in the customer point of view. while another is done by limited number of end users. There is also third type namely Gamma testing – which is done at client place in the absence of inhouse developer and tester, and is done by Client-side developer or tester or by both.&lt;br&gt;
• Integration Testing – it is done by integrating 2 or more individual software units/ modules.&lt;br&gt;
• Regression testing- It is repeated testing of already tested software after modification , since the modification may brought new bugs or defects which wasn’t there before modification.&lt;br&gt;
• Localization – Adapting global software to specific region or locality.&lt;br&gt;
• Globalization – Adapted to varies region and language without any changes.&lt;br&gt;
• Interoperability-  It is done to check interaction either with two software or its components. There are five subtypes they are:1. Data type interoperability testing, 2. Semantic interoperability Testing, 3. Physical Interoperability testing, 4. Protocol Interoperability Testing (Security), 5. Data format Interoperability testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here then we see about Non-Functional Testing
&lt;/h2&gt;

&lt;p&gt;How well the system performs is non-functionality testing. Non-functional testing refers to the things such as performance, load, stress, scalability, security, compatibility etc., Here the main focus is to improve the user experience on how fast the system responds to a request.&lt;br&gt;
How well the system performs is non-functionality testing&lt;br&gt;
To ensure that the product stands up to customer expectations&lt;br&gt;
To verify the behavior of the software at various load conditions&lt;br&gt;
It is performed after functional testing&lt;br&gt;
Example of non-functional test case is to check whether the homepage is loading in less than 2 seconds&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Testing types are
&lt;/h2&gt;

&lt;p&gt;• Performance Testing – Check the behavior of the application by applying load like response time, simulating multiple user, simulating many transactions.&lt;br&gt;
• Volume Testing- It is basically performed by increasing the volume of data in the database.&lt;br&gt;
• Scalability- is a type of load test.it teat how the system is gong to perform during sudden spike or fall of user request load.&lt;br&gt;
• Usability Testing- It is done by researchers either working in-person or remotely to find out what are all the places the users usually gets struck or confused, so that the user experience can be improved by solving the issues.&lt;br&gt;
• Load Testing- It is a type of performance testing. Specifically it tests the performance of the application when multiple users are using the application. &lt;br&gt;
• Stress Testing- also called as Endurance testing and Torture testing. Different things measured in this testing are pages per second, pages retrieved, Byte data, transaction per second Failure of connection. And all these are under stress condition.&lt;br&gt;
• Compliance Testing- Validate software’s compliance with the company’s standards, policies, and philosophies.&lt;br&gt;
• Portability Testing- How easy or difficult to transfer software or its components to another hardware, environment, software-Operating System.&lt;br&gt;
• Disaster Recover Testing – It is a type of system testing. It is important for mission-critical system like defense system, medical devices. And the failure are like power cut, external server not reachable, Wireless network system loss, external device not working properly.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>testing</category>
      <category>automaton</category>
    </item>
    <item>
      <title>Let we discuss about some topics like 1) Boundary Value Analysis 2) Decision Table Testing 3) Use Case Testing 4) LCSAJ Testing</title>
      <dc:creator>AeroSiva</dc:creator>
      <pubDate>Sun, 03 Sep 2023 16:43:59 +0000</pubDate>
      <link>https://dev.to/aerosiva/let-we-discuss-about-some-topics-like-1boundary-value-analysis2decision-table-testing3use-case-testing4lcsaj-testing-4k99</link>
      <guid>https://dev.to/aerosiva/let-we-discuss-about-some-topics-like-1boundary-value-analysis2decision-table-testing3use-case-testing4lcsaj-testing-4k99</guid>
      <description>&lt;p&gt;Boundary Value Analysis &lt;br&gt;
    It is one of the functional testing. It is based on testing the boundary values of valid and invalid partitions. Boundaries are values where testing is likely to yield defects.&lt;br&gt;
 For each variable we check-&lt;br&gt;
1)  Minimum value.&lt;br&gt;
2)  Just above the minimum.&lt;br&gt;
3)  Nominal Value.&lt;br&gt;
4)  Just below Max value.&lt;br&gt;
5)  Max value.&lt;br&gt;
For example:&lt;br&gt;
If the valid input is between 1 to 10. Then the boundary values are 0,1,2 and 9,10,11.&lt;br&gt;
Limitations:&lt;br&gt;
• It is useful when the product is under test.&lt;br&gt;
• BVA is quite rudimentary.&lt;br&gt;
Decision Table Testing&lt;br&gt;
    This technique is used if we have more conditions and we have to perform action based on the conditions at that moment.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The decision table have four parts they are.
Stubs   Entries
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Condition   C1&lt;br&gt;
C2&lt;br&gt;
C3&lt;br&gt;&lt;br&gt;
Rule&lt;br&gt;
Action  A1&lt;br&gt;
A2&lt;br&gt;
A3&lt;br&gt;&lt;br&gt;
Outputs&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Condition stubs.&lt;/li&gt;
&lt;li&gt; Action stubs&lt;/li&gt;
&lt;li&gt; Condition Entries.&lt;/li&gt;
&lt;li&gt; Action Entries.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example:&lt;br&gt;
    Condition:&lt;br&gt;
        1. Account has to be approved.&lt;br&gt;
        2. OTP to be matched&lt;br&gt;
        3. Sufficient amount to be present in the account&lt;br&gt;
    Action:&lt;br&gt;
        1. Transfer money.&lt;br&gt;
        2. Show alert message “insufficient account balance”&lt;br&gt;
        3. Block if any suspicious activity.&lt;br&gt;
        TC1 TC2 TC3 TC4 TC5&lt;br&gt;
Condition 1 Account already approved    T   T   T   T   F&lt;br&gt;
Condition 2 OTP Matched T   T   F   F   x&lt;br&gt;
Condition 3 Sufficient money    T   F   T   F   x&lt;br&gt;
Action 1    Transfer money  Execute&lt;br&gt;&lt;br&gt;
Action 2    Show insufficient money alert message       Execute&lt;br&gt;&lt;br&gt;
Action 3    Block the transaction           Execute Execute x&lt;/p&gt;

&lt;p&gt;Use Case Testing&lt;br&gt;
    It is a Black box testing.Use Case is a tool for defining the required user interaction. It depends on the user interaction and the response of the system to the user’s action. It is mainly user- oriented.  It tests the functional requirement of the system. It usually helps to uncover the integration defects, due to the incorrect interaction between different components.&lt;br&gt;
Use case testing is generally produced from the SRS document. If specific User interaction scenario missed in the SRS document, probably the same be missed in the test case also.&lt;br&gt;
For example:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; User - Enters the mail Id.&lt;/li&gt;
&lt;li&gt; System – Validates the mail id.&lt;/li&gt;
&lt;li&gt; User – Enters the password.&lt;/li&gt;
&lt;li&gt; System – Validates the Password.&lt;/li&gt;
&lt;li&gt; System – Enter in to respective user mail.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Linear code sequence and jump (LCSAJ) Testing:&lt;br&gt;
    It is a white box testing used to test code coverage. Means what percentage of code is executed with the existing test cases.&lt;br&gt;
It has three components they are &lt;br&gt;
1)  Start of the segment.&lt;br&gt;
2)  End of the segment.&lt;br&gt;
3)  Target line &lt;br&gt;
The code usually executes from the start of the segment to the end of the segment and then the control flow breaks the sequential execution and jumps to the target line to transfer the control flow.&lt;br&gt;
For example:&lt;br&gt;
LCSAJ Number    Starting of the segment Ending of the segment   Target line to transfer control flow&lt;br&gt;
1   4   9   11&lt;br&gt;
2   4   13  7&lt;br&gt;
3   7   10  15&lt;br&gt;
4   7   13  7&lt;br&gt;
5   11  13  7&lt;/p&gt;

&lt;p&gt;100% LCSAJ coverage means the test data covers all the above LCSAJs in the table.&lt;br&gt;
And line density means number of times the a line number appears in LCSAJs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Want to know about Automation Testing ???</title>
      <dc:creator>AeroSiva</dc:creator>
      <pubDate>Sun, 03 Sep 2023 16:26:26 +0000</pubDate>
      <link>https://dev.to/aerosiva/want-to-know-about-automation-testing--24c5</link>
      <guid>https://dev.to/aerosiva/want-to-know-about-automation-testing--24c5</guid>
      <description>&lt;h2&gt;
  
  
  __ Here we are going to find answers for What is software testing ? what we need to know about software testing ? What is the relevance of software testing ?__
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;First what is Software:&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Software refers to a collection of programs, data, and instructions that tells a computer what to do. It enables hardware (the physical components of a computer) to perform specific tasks and functions.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Then what is Software Testing:&lt;/strong&gt;
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Software testing is the process of verifying and validating whether a software or application is quality or not that is checking whether it is
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;• bug-free, &lt;br&gt;
• meets the technical requirements, &lt;br&gt;
• is functioning efficiently and effectively.&lt;br&gt;
In software testing two important words are used they are&lt;br&gt;
    Verification: “Are we building the product right?” &lt;br&gt;
• it refers to the set of tasks that ensure that the software correctly implements a specific function.&lt;br&gt;
Validation: “Are we building the right product?”&lt;br&gt;
• it refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What are the Types of software testing:&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;There are mainly two types of software testing they are.
        1. Manual testing.
        2. Automation Testing.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Do you know about Manual testing:&lt;/strong&gt;&lt;br&gt;
This testing is done without using any automation tool or any script. The tester took over the role of end-user and test the software to identify defects.&lt;br&gt;
    Levels of the testing in manual are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; unit testing, &lt;/li&gt;
&lt;li&gt; integration testing, &lt;/li&gt;
&lt;li&gt; system testing, and &lt;/li&gt;
&lt;li&gt; user acceptance testing.
Testers use test plans, test cases, or test scenarios to test software to ensure the completeness of testing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Here is what you seeking for _Automation Testing / Test automation:&lt;/strong&gt;_
&lt;/h2&gt;

&lt;p&gt;Here in Automation testing the tester writes the scripts and uses another software to test the product. Here the automation of manual process takes place. Apart from regression testing, automation testing is also used to test the application from a load, performance, and stress point of view. It increases the test coverage, improves accuracy, and saves time and money when compared to manual testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  what we need to know about software testing?
&lt;/h2&gt;

&lt;p&gt;*&lt;em&gt;1.    Types of Testing: *&lt;/em&gt;&lt;br&gt;
     1.Functional Testing – test whether the actual output matches the expected output or not.&lt;br&gt;
         i). Black box testing&lt;br&gt;
     2. Non-functional Testing – How well th system performs.&lt;br&gt;
         i). Performance Testing: Evaluates the system's performance under various conditions to ensure it meets performance requirements.&lt;br&gt;
         ii). Load Testing: Measures how the software performs under expected and peak loads.&lt;br&gt;
         iii). Usability Testing: Assesses how user-friendly the software is by observing how users interact with it.&lt;br&gt;
         iv). Load Testing: Measures how the software performs under expected and peak loads.&lt;br&gt;
          v). Compatibility Testing: Ensures the software works correctly on different devices, browsers, and operating systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Levels of testing.&lt;/strong&gt;&lt;br&gt;
      i). unit testing, &lt;br&gt;
      ii). integration testing, &lt;br&gt;
      iii). system testing, and &lt;br&gt;
      iv). user acceptance testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Software Developing Lifecycle (SDLC) Models.&lt;/strong&gt;&lt;br&gt;
      i).Waterfall model&lt;br&gt;
      ii). Prototyping model&lt;br&gt;
      iii). Iterative/ incremental model&lt;br&gt;
      iv). Spiral&lt;br&gt;
      v). V-model&lt;br&gt;
      vi). Agile model&lt;br&gt;
      vii). RAD model&lt;br&gt;
&lt;strong&gt;4.    Software Testing Life cycle (STLC)&lt;/strong&gt;&lt;br&gt;
     i. Requirement analysis- Requirement traceability matrix - RTM&lt;br&gt;
    ii. Test planning – Test strategy&lt;br&gt;
   iii. Test case development – Test case&lt;br&gt;
    iv. Test environment setup.&lt;br&gt;
     v. Test execution- Defect logging, Test dat preparation, Defect retesting, Test reporting.&lt;br&gt;
    vi. Test closure – test summary report, defect tracing, Test environment cleanup, Test closure report. Knowledge transfer, Feedback and improvement.&lt;br&gt;
&lt;strong&gt;5.    Test Case design Techniques.&lt;/strong&gt;&lt;br&gt;
    1.  Dynamic testing.&lt;br&gt;
     i. From SRD/ Black box testing.&lt;br&gt;
    ii. From structural component of a system.&lt;br&gt;
   iii. From testing experience&lt;br&gt;
    2.  Static testing&lt;br&gt;
     i. Review.&lt;br&gt;
    ii. Walkthrough&lt;br&gt;
   iii. Inspection&lt;br&gt;
   iv.  Technical review&lt;br&gt;
&lt;strong&gt;6.    Principles of Software testing.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;7.    Some important keywords used in software testing life cycle. some of them are.&lt;/strong&gt;&lt;br&gt;
     1. Continuous Testing&lt;br&gt;
     2. Security Testing&lt;br&gt;
     3. Alpha and Beta Testing.&lt;br&gt;
     4. Regression Testing&lt;br&gt;
     5. Code Coverage&lt;br&gt;
       1.Unit Testing&lt;br&gt;
       2.Integration Testing&lt;br&gt;
       3.User Acceptance Testing (UAT)&lt;br&gt;
           1.Alpha and Beta Testing&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the relevance of software testing ?
&lt;/h2&gt;

&lt;p&gt;Software testing is highly relevant and essential in the field of software development for several crucial reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Quality Assurance&lt;/li&gt;
&lt;li&gt; Defect Identification&lt;/li&gt;
&lt;li&gt; Risk Mitigation&lt;/li&gt;
&lt;li&gt; User Satisfaction&lt;/li&gt;
&lt;li&gt; Compliance and Regulations&lt;/li&gt;
&lt;li&gt; Cost Savings&lt;/li&gt;
&lt;li&gt; Continuous Improvement&lt;/li&gt;
&lt;li&gt; Release Confidence&lt;/li&gt;
&lt;li&gt; Competitive Advantage&lt;/li&gt;
&lt;li&gt;Customer Trust&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Maintenance.&lt;/li&gt;
&lt;li&gt;Documentation and Knowledge Sharing&lt;/li&gt;
&lt;/ol&gt;

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