<?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: shruthisrivathsan</title>
    <description>The latest articles on DEV Community by shruthisrivathsan (@shruthisrivathsan).</description>
    <link>https://dev.to/shruthisrivathsan</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%2F1185373%2F8685c853-af8d-4e5c-b190-efdfadcaae88.png</url>
      <title>DEV Community: shruthisrivathsan</title>
      <link>https://dev.to/shruthisrivathsan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shruthisrivathsan"/>
    <language>en</language>
    <item>
      <title>Selenium Architecture and Python Virtual Environment</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Wed, 24 Jan 2024 09:19:16 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/selenium-architecture-and-python-virtual-environment-5912</link>
      <guid>https://dev.to/shruthisrivathsan/selenium-architecture-and-python-virtual-environment-5912</guid>
      <description>&lt;p&gt;Testing is a vital part of software development and no product can be launched in the market without proper testing, Selenium is a web automated testing tool that supports cross-browser testing across various operating systems. It was developed in 2004 by Jason Huggins to make manual testing easier using JavaScript.&lt;/p&gt;

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

&lt;p&gt;It is a popular open-sourced library and a key component in automated testing in web applications. &lt;br&gt;
It is a collection of APIs that enable testers to use Java, Python, C#, Ruby or JavaScript to create test scripts to automate web browser actions and retrieve information from the web.&lt;/p&gt;

&lt;h2&gt;
  
  
  Components of Selenium
&lt;/h2&gt;

&lt;p&gt;The following are the main components of Selenium framework:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium IDE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It refers to Selenium Integrated Development Environment. It is a Firefox plug-in that allows testers to record and play back scripts. Usually it is used as a prototyping tool because of its simplicity. Its main advantage is that it does not require in-depth knowledge of programming languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium Remote Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is sometimes referred to as Selenium 1 because it was the first testing framework to be developed and was a preferred web automation framework. It is now an outdated technology that been replaced by WebDriver.&lt;/p&gt;

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

&lt;p&gt;It is a major component of Selenium architecture that n allows automating user actions with web browsers and communicating with the browsers through open-source APIs.&lt;br&gt;
It consists of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Selenium Client Library&lt;/em&gt;  consists of various language libraries for Python, Java, Ruby and other programming languages that can be used to write automation scripts and sends these commands to the network for execution. They are compatiable with W3C protocols like HTTP and TCP.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Selenium API&lt;/em&gt; is a set of rules and regulations that is used by a programming language to communicate. It helps in automation, without the tester understanding what is happening in the background.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;JSON Wire Protocol&lt;/em&gt; converts the commands that are written into JSON, transmits to the client or web browser using the HTTP protocol for execution.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Browser Drivers&lt;/em&gt; are used to carry out communication between Selenium scripts, libraries and the respective browser. &lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Browsers&lt;/em&gt; such as Mozilla Firefox, Internet Explorer, Google Chrome 12.0.712.0 and above, Safari, Opera 11.5 and above, Android and iOS are supported.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;It is used to run parallel tests on multiple devices running different browsers at different geographical locations simultaneously. It uses the Master-Slave Architecture, where a master device or process has control over how and when subordinate devices and processes use resources.&lt;/p&gt;

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

&lt;p&gt;Virtual environment is a tool that is helps to keep the libraries and dependencies for each project separate from each other. It is also helps to prevent dependency issues that may arise and also improves the compatibility of the versions used. It is one of the most important tools used by developers and testers.&lt;/p&gt;

&lt;p&gt;There are many advantages of using a virtual environment to work with the project. Some of them are as follows:&lt;/p&gt;

&lt;p&gt;In a scenario where a user has multiple projects, where each project requires different dependencies, creating different  virtual environments for each project makes it easier by avoiding unnecessary clashes.&lt;/p&gt;

&lt;p&gt;It ensures that a project will run correctly using the right libraries and versions.&lt;/p&gt;

&lt;p&gt;Virtual environment makes it easier to run the same project on different machines. When many people work on the same project at the same time, a commonly generated code can be shared along with all the dependencies.&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>seleniumarchitecture</category>
      <category>python</category>
      <category>virtualenvironment</category>
    </item>
    <item>
      <title>Selenium</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Mon, 22 Jan 2024 11:36:07 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/selenium-20p6</link>
      <guid>https://dev.to/shruthisrivathsan/selenium-20p6</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Selenium?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Selenium is an open-sourced automated testing tool that is used to test web applications across various browsers. It was developed by Jason Huggins in 2004 and was written in Java. It is a powerful automation tool that can be used to validate and verify a web application. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is Selenium so popular?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selenium is easy to use as it provides a user-friendly interface that helps create and execute tests easily and effectively. &lt;/li&gt;
&lt;li&gt;It is a publicly available automation framework that is freely accessible to anyone. It is therefore an open-sourced framework.&lt;/li&gt;
&lt;li&gt;It saves a lot of time and effort as multiple tests can be run in parallel.&lt;/li&gt;
&lt;li&gt;It is platform independent and can work with various operating systems like Windows, Mac, Linux/Unix.&lt;/li&gt;
&lt;li&gt;It works with various web browsers like Safari, Chrome, Microsoft Edge and Firefox. &lt;/li&gt;
&lt;li&gt;Tests can be coded in various programming languages including Java, Python, Ruby,Perl and PHP and Selenium converts it into compatible source in no time. &lt;/li&gt;
&lt;li&gt;Selenium can be integrated with tools like JUnit and TestNG for test management.&lt;/li&gt;
&lt;li&gt;It can also use with with testing frameworks like PyTest and Python Behave and also with CI/CD framework like Jenkins.&lt;/li&gt;
&lt;li&gt;Selenium requires less hardware compared to other testing tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although Selenium has a number of advantages, it also has a few disadvantages that need to be taken into consideration.&lt;br&gt;
These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It has limited support for desktop applications and is mainly designed for online application testing.&lt;/li&gt;
&lt;li&gt;The program writing time is high and requires good programming skills.&lt;/li&gt;
&lt;li&gt;Selenium does not have built in reporting capabilities and testers must therefore depend on third-party reporting tools.&lt;/li&gt;
&lt;li&gt;You cannot automate CAPTCHA and SMS based OTP web applications.&lt;/li&gt;
&lt;li&gt;It has a small community so it lacks proper online support so you need to put a lot of efforts to find solution to your problem.&lt;/li&gt;
&lt;li&gt;Seleniums automation depends on the browser's automation capabilities which can sometimes lead to inconsistencies across different browsers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, although there are a few disadvantages to using Selenium for automation testing, it is widely used because of it flexibility and easy of use. &lt;/p&gt;

</description>
      <category>selenium</category>
      <category>automation</category>
      <category>python</category>
    </item>
    <item>
      <title>Manual Testing</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Mon, 30 Oct 2023 19:10:30 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/manual-testing-2p45</link>
      <guid>https://dev.to/shruthisrivathsan/manual-testing-2p45</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Manual testing is the process of testing a software manually by a tester, without using any automated tools. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Testing is done by following a set of predetermined tasks that need to be performed in order to check the performance of an application from an end user perspective. &lt;/p&gt;

&lt;p&gt;The tester performs a series of tests to check if the inputs entered produce the desired output. In the process of testing a software, bugs and other errors are also corrected either by the tester or the developer. &lt;/p&gt;

&lt;p&gt;For example, in order to check a website developed, user login credentials are verified by checking output when the username format or password is incorrect.  &lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Flexibility:&lt;/em&gt;&lt;br&gt;
Manual testing allows a tester to have a wide range of testing scenarios that can be tested. The tester is able to understand that end user experience and provide the necessary changes to improve user experience.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Early detection of bugs:&lt;/em&gt;&lt;br&gt;
By manually testing the software, the tester is able to identify bugs and other serious flaws quickly and inform the developers. This avoids expensive rework later in the development cycle.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Detect more bugs:&lt;/em&gt;&lt;br&gt;
 Manual testers can detect subtle bugs in the software that may be overlooked in automation testing, for example visual inconsistency or usability.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Better understanding of user experience:&lt;/em&gt;&lt;br&gt;
Manual testers gain a deeper knowledge of how the software works and how it is intended to work. This helps in finding potential issues and improves the end user experience.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Better testing coverage:&lt;/em&gt;&lt;br&gt;
A manual test is more creative and can think more creatively to explore different paths to check the software.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cost-effective:&lt;/em&gt;&lt;br&gt;
Manual testing is more cost-effective than automated testing especially in case of small projects or limited budgets.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Susceptible to human errors:&lt;/em&gt;&lt;br&gt;
Few bugs and defects may be overlooked due to tiredness, lack of focus and distraction.This is not the case with automated testing. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Time consuming:&lt;/em&gt;&lt;br&gt;
Manually testing every feature and every function takes many extra hours while in case of automated testing, tests are performed in a fraction of that time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Expensive:&lt;/em&gt;&lt;br&gt;
Manual testing can be expensive especially in case of big projects as it requires more resources such as employees, machines and time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Difficult to measure:&lt;/em&gt;&lt;br&gt;
It is sometimes difficult to measure the efficiency of the testing process as it is difficult to keep track of the quantity and quality of tests performed, test coverage attained and the errors discovered. &lt;/p&gt;

&lt;p&gt;In conclusion, manual testing has both benefits that make it crucial in software testing and drawbacks that can be challenging. It is important to take these into consideration before designing the testing process.&lt;/p&gt;

</description>
      <category>manualtesting</category>
    </item>
    <item>
      <title>Functional and Non-functional testing</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Wed, 25 Oct 2023 11:30:31 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/functional-and-non-functional-testing-o31</link>
      <guid>https://dev.to/shruthisrivathsan/functional-and-non-functional-testing-o31</guid>
      <description>&lt;p&gt;Software testing can be conducted in two different levels - functional and non-functional tests.&lt;/p&gt;

&lt;p&gt;Functional testing is a type of software testing where the basic functionalities of the application are checked against a predetermined set of specifications. It uses black box testing techniques to check if the given input generates the desired output.&lt;/p&gt;

&lt;p&gt;Non-functional testing verifies the application’s performance, reliability and user experience match the requirements. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difference between functional and non-functional testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In simple terms, functional testing checks the functions and features of the application while non-functional testing checks the performance of these functions.&lt;/li&gt;
&lt;li&gt;Functional testing checks if the key functions are operating and non-functional testing checks how the key functions are performing. &lt;/li&gt;
&lt;li&gt;Functional testing verifies that the software meets the expectations of the end-user. Non-functional testing verifies that the application is easy to use and reliable.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;In an application that is developed for online shopping, the following needs to be checked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Correct username and password that pull the customer’s details.&lt;/li&gt;
&lt;li&gt;Items displayed based on search.&lt;/li&gt;
&lt;li&gt;The number of items and total cost of the items added to the shopping cart.&lt;/li&gt;
&lt;li&gt;Interaction of the application with the payment portal.&lt;/li&gt;
&lt;li&gt;Delivery options, dates and confirmation of address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testing is done in phases where all possible inputs are evaluated first to test their functionality. Next the tests are executed manually or automatically and finally check if the output matches the desired output. This is done through various testing methods. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first level of testing is &lt;em&gt;Unit testing&lt;/em&gt; and it is usually done as and when a single block of code is developed. It verifies that every small input generates a desired output. For example, the ‘Continue’ button should be disabled until both the user name and password are entered.&lt;/li&gt;
&lt;li&gt;In &lt;em&gt;integration testing&lt;/em&gt;, the interaction between the different components are tested to verify that they work well together. For example, when the user enters into their account, their address, preferences and other user preferences are accessible and are correct.
&lt;/li&gt;
&lt;li&gt;In &lt;em&gt;interface testing&lt;/em&gt; the tester checks the interface of the system or components and how they work together. For example, when a user has selected the items and now proceeds to payment and delivery, the payment portal is checked for accuracy and security.
-_ User acceptance testing_ is the final stage of testing before the application is deployed and it validates if the software aligns with user expectation and business needs. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Examples of non-functional testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Under this type of testing, all the non-functional aspects of the software are tested. This includes:&lt;/p&gt;

&lt;p&gt;-_ Documentation testing_ is a type of black-box testing that verifies all the documents, user manuals, etc. It ensures that the documents on how to use the system matches with what the system does.&lt;br&gt;
-&lt;em&gt;Installation testing _checks if the application is installable in different operating systems without any bugs or errors. &lt;br&gt;
-_Performance testing&lt;/em&gt; checks the responsiveness, speed and stability of the application under different work loads.&lt;br&gt;
-_ Reliability testing &lt;em&gt;is the final stage of non-functional testing where the software is checked for stability and reliability during long-term usage. &lt;br&gt;
-_Security testing&lt;/em&gt; is done throughout the software development process and ensures that it is secure against potential security threats and attacks.&lt;/p&gt;

&lt;p&gt;Both functional and non-functional testing are very important in delivering the best application to meet the requirements put forth. &lt;/p&gt;

</description>
      <category>functionaltestin</category>
      <category>nonfunctional</category>
    </item>
    <item>
      <title>Software testing methods</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Fri, 20 Oct 2023 17:46:26 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/software-testing-methods-2mji</link>
      <guid>https://dev.to/shruthisrivathsan/software-testing-methods-2mji</guid>
      <description>&lt;p&gt;Software testing is important to check if the application does what it is supposed to do, is free of errors and bugs and meets the requirements. During the testing plan designing phase in STLC, test case scenarios are created to find defects in the test execution stage. These are done through various testing methods and testing techniques.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Testing methods are specific approaches used to test software.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They define the steps that the tester should follow to execute the test and what the desired result is. The following are the different methods of testing:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Black box testing:&lt;/em&gt; where the tester, as an end user, uses the software to test that it functions accurately in every situation and checks for performance defects, bugs, missing functions and other errors. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;White box testing&lt;/em&gt; where the tester, with a complete knowledge of the source code and the design documents, analyzes the code.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Grey box testing&lt;/em&gt; where the tester, with a partial knowledge of the code, tests for errors due to improper structure.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Regression testing&lt;/em&gt; where the tester checks for new defects after updates and changes made to the original software. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Testing techniques are specific tools and techniques used to implement testing methods.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They can be used to test different aspects of the software such as functionality, performance, security and reliability. The test cases can be entered manually or through automated tools.There are four commonly used testing techniques, and they are as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boundary Value Analysis:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As the name suggests, it is a process of testing input values closer to the boundaries or outside values that could throw an error. Test cases selected for this testing are closer to  minimum - maximum and inside -outside boundary.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example of BVA:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let’s take a case where the system accepts ages between 18 and 60. Here the valid test cases will be &lt;em&gt;17, 19, 59 and 61&lt;/em&gt;. Here 17 and 61 should show error as they are outside the boundaries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decision Table Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This process of testing is used when there are multiple inputs and their combination could lead to different output. The input and their corresponding outputs are captured in a table form. This technique is very effective in testing the software with the requirements. &lt;/p&gt;

&lt;p&gt;Example of DTT:&lt;/p&gt;

&lt;p&gt;In the scenario of testing a software for checking a ticket price based on age(discounted price for people over 60) and membership status, the test cases will be &lt;br&gt;
Members - &amp;lt; 60 and &amp;gt;61 and Non-members - &amp;lt;60 and &amp;gt;61.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Membership Status        &amp;lt;60          &amp;gt;61&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Members&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Non- Members&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use case testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The entire software is tested from end- to- end from a user’s perspective. It finds gaps in the system that will otherwise not be found in testing individual components. It is also a description of how a user uses the system.&lt;/p&gt;

&lt;p&gt;In the scenario of ordering pizza online with different options including &lt;em&gt;size, toppings, extra cheese, drinks and  add-ons&lt;/em&gt;, test cases will be created with multiple combinations to check for the right price.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linear Code Sequence &amp;amp; Jump Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a linear sequencing of code where the sequence starts from the beginning of the code or from a point where the control flow jumps. This is a white box testing method where the tester has access to the code.&lt;/p&gt;

&lt;p&gt;Different test cases can be created in LCSJT and for every test case  should specify the &lt;em&gt;start of the sequence, end of the sequence and a specific target line&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;In conclusion, testing techniques makes it possible to design better cases with lead to achievement of desired results.&lt;/p&gt;

</description>
      <category>softwaretesting</category>
      <category>methods</category>
    </item>
    <item>
      <title>Software Testing</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Thu, 19 Oct 2023 11:16:36 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/software-testing-24bo</link>
      <guid>https://dev.to/shruthisrivathsan/software-testing-24bo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Software testing is the process of evaluating and verifying that an application does what it is supposed to do.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Testing evaluates the softwares operability, checks for and fixes bugs as and when the software is developed and improves performance and security thereby making it more comfortable for the end users. Although the main benefit of testing is to find errors and defects, it also helps to understand the expected outcome so that the tester can improve the quality of the product.&lt;/p&gt;

&lt;p&gt;Software development and testing go hand in hand and software testing can be thought of as the most crucial step in software development life cycle as it improves consistency and performance. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software Testing - then and now:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Earlier software testing was separated from the development process and was often conducted in the later stage of software development life cycle, after the product was built or executed. It was difficult to fix errors and retest at this stage as it led to time constraint and increased cost.&lt;/p&gt;

&lt;p&gt;Now, software testing is a part of the development process and the software developer and testers work side by side, thereby reducing time, errors and cost, as well as increasing the quality of the product. &lt;/p&gt;

&lt;p&gt;Execution of tests right from the early stages of software development and throughout the entire process, streamlines the process and delivers a risk-free and an user-friendly product.&lt;/p&gt;

&lt;p&gt;Over the years, software testing has evolved considerably as companies have adopted Agile and DevOps work environments. This has led to faster and more effective testing methodologies. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is testing important?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Finds defects early and saves money by avoiding extra 
costs to fix errors in the end product.&lt;/li&gt;
&lt;li&gt;Improves security of the product as security issues or 
breaches can be fixed immediately, thereby producing a 
very secure software.&lt;/li&gt;
&lt;li&gt;The expected quality of the product can be met by testing 
the software and making the relevant changes to improve 
the quality.&lt;/li&gt;
&lt;li&gt;Increases customer satisfaction. Software is developed 
with the purpose of customer satisfaction. Different 
customers have different requirements. With the help of 
testing it is possible to know the expectations of the end 
users and make required changes so as to create the best 
application for their needs.&lt;/li&gt;
&lt;li&gt;Helps check scalability - how well the software handles i. 
increased user traffic and data volume.&lt;/li&gt;
&lt;li&gt;Helps determine the performance of the product.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Software Testing Life Cycle&lt;/em&gt; is the systematic approach devised to test software of an application to ensure it meets the requirements, is secure and free of bugs and defects.  The following are the stages in STLC.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirement Analysis&lt;/li&gt;
&lt;li&gt;Devise testing plan&lt;/li&gt;
&lt;li&gt;Test case development&lt;/li&gt;
&lt;li&gt;Set up test environment&lt;/li&gt;
&lt;li&gt;Test execution&lt;/li&gt;
&lt;li&gt;Test closure&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;In manual testing test cases are manually entered by a tester without any automated tools. The tester identifies bugs, defects and defects and fixes them. There are different methods(both functional and nonfunctional) of software testing. The following are a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Black box testing:
This method checks the functionality of the software.&lt;/li&gt;
&lt;li&gt;White box testing
This method checks the internal structure, design and 
coding of the software.&lt;/li&gt;
&lt;li&gt;Grey box testing
This method is a combination of black box and white box 
methods where the tester has basic knowledge of the 
internal structure of the software.&lt;/li&gt;
&lt;li&gt;Regression testing
This method of testing checks if the updates or changes 
made have caused new defects in the existing functions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stages in Manual Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unit testing -  each component of the code is checked individually&lt;/li&gt;
&lt;li&gt;Integration testing - multiple units are integrated to check if the units to work together correctly&lt;/li&gt;
&lt;li&gt;System testing - to check the system meets the desired requirements&lt;/li&gt;
&lt;li&gt;User interface testing - checks user experience&lt;/li&gt;
&lt;li&gt;Acceptance testing - checks if the software as a whole is fit for the end user.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Software testing is therefore most important as it helps create high-quality applications with very few or no errors. A system that meets or even exceeds customer expectations leads satisfied customers and to potentially more sales.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Software Testing</title>
      <dc:creator>shruthisrivathsan</dc:creator>
      <pubDate>Thu, 19 Oct 2023 11:16:35 +0000</pubDate>
      <link>https://dev.to/shruthisrivathsan/software-testing-ola</link>
      <guid>https://dev.to/shruthisrivathsan/software-testing-ola</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Software testing is the process of evaluating and verifying that an application does what it is supposed to do.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Testing evaluates the softwares operability, checks for and fixes bugs as and when the software is developed and improves performance and security thereby making it more comfortable for the end users. Although the main benefit of testing is to find errors and defects, it also helps to understand the expected outcome so that the tester can improve the quality of the product.&lt;/p&gt;

&lt;p&gt;Software development and testing go hand in hand and software testing can be thought of as the most crucial step in software development life cycle as it improves consistency and performance. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software Testing - then and now:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Earlier software testing was separated from the development process and was often conducted in the later stage of software development life cycle, after the product was built or executed. It was difficult to fix errors and retest at this stage as it led to time constraint and increased cost.&lt;/p&gt;

&lt;p&gt;Now, software testing is a part of the development process and the software developer and testers work side by side, thereby reducing time, errors and cost, as well as increasing the quality of the product. &lt;/p&gt;

&lt;p&gt;Execution of tests right from the early stages of software development and throughout the entire process, streamlines the process and delivers a risk-free and an user-friendly product.&lt;/p&gt;

&lt;p&gt;Over the years, software testing has evolved considerably as companies have adopted Agile and DevOps work environments. This has led to faster and more effective testing methodologies. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is testing important?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Finds defects early and saves money by avoiding extra 
costs to fix errors in the end product.&lt;/li&gt;
&lt;li&gt;Improves security of the product as security issues or 
breaches can be fixed immediately, thereby producing a 
very secure software.&lt;/li&gt;
&lt;li&gt;The expected quality of the product can be met by testing 
the software and making the relevant changes to improve 
the quality.&lt;/li&gt;
&lt;li&gt;Increases customer satisfaction. Software is developed 
with the purpose of customer satisfaction. Different 
customers have different requirements. With the help of 
testing it is possible to know the expectations of the end 
users and make required changes so as to create the best 
application for their needs.&lt;/li&gt;
&lt;li&gt;Helps check scalability - how well the software handles i. 
increased user traffic and data volume.&lt;/li&gt;
&lt;li&gt;Helps determine the performance of the product.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Software Testing Life Cycle&lt;/em&gt; is the systematic approach devised to test software of an application to ensure it meets the requirements, is secure and free of bugs and defects.  The following are the stages in STLC.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirement Analysis&lt;/li&gt;
&lt;li&gt;Devise testing plan&lt;/li&gt;
&lt;li&gt;Test case development&lt;/li&gt;
&lt;li&gt;Set up test environment&lt;/li&gt;
&lt;li&gt;Test execution&lt;/li&gt;
&lt;li&gt;Test closure&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;In manual testing test cases are manually entered by a tester without any automated tools. The tester identifies bugs, defects and defects and fixes them. There are different methods(both functional and nonfunctional) of software testing. The following are a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Black box testing:
This method checks the functionality of the software.&lt;/li&gt;
&lt;li&gt;White box testing
This method checks the internal structure, design and 
coding of the software.&lt;/li&gt;
&lt;li&gt;Grey box testing
This method is a combination of black box and white box 
methods where the tester has basic knowledge of the 
internal structure of the software.&lt;/li&gt;
&lt;li&gt;Regression testing
This method of testing checks if the updates or changes 
made have caused new defects in the existing functions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stages in Manual Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unit testing -  each component of the code is checked individually&lt;/li&gt;
&lt;li&gt;Integration testing - multiple units are integrated to check if the units to work together correctly&lt;/li&gt;
&lt;li&gt;System testing - to check the system meets the desired requirements&lt;/li&gt;
&lt;li&gt;User interface testing - checks user experience&lt;/li&gt;
&lt;li&gt;Acceptance testing - checks if the software as a whole is fit for the end user.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Software testing is therefore most important as it helps create high-quality applications with very few or no errors. A system that meets or even exceeds customer expectations leads satisfied customers and to potentially more sales.&lt;/p&gt;

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