<?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: Supriya</title>
    <description>The latest articles on DEV Community by Supriya (@supriya16).</description>
    <link>https://dev.to/supriya16</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%2F1267038%2Fe55ec125-b5dd-4ffd-9ee9-b84f1bbb560b.png</url>
      <title>DEV Community: Supriya</title>
      <link>https://dev.to/supriya16</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/supriya16"/>
    <language>en</language>
    <item>
      <title>"Inside the Box: Exploring Black Box and White Box Testing Techniques"</title>
      <dc:creator>Supriya</dc:creator>
      <pubDate>Sat, 10 Feb 2024 06:27:56 +0000</pubDate>
      <link>https://dev.to/supriya16/inside-the-box-exploring-black-box-and-white-box-testing-techniques-4g9l</link>
      <guid>https://dev.to/supriya16/inside-the-box-exploring-black-box-and-white-box-testing-techniques-4g9l</guid>
      <description>&lt;p&gt;In the world of Software testing, there are two eminent testing methodologies which are contrasting yet complimenting to each other and they are called Black box and White box testing. &lt;br&gt;
Lets take a deep dive into the boxes. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Black Box Testing:&lt;/strong&gt;&lt;br&gt;
In this testing technique the internal code or structure of the application is not known. By treating the software as an non transparent entity, testers simulate real-world user interactions to validate its behavior against specified customer requirements. &lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; We validate the login process in an application by entering the username and password.&lt;/p&gt;

&lt;p&gt;Now, lets take a look at some of the most important black box techniques, &lt;/p&gt;

&lt;h2&gt;
  
  
  Boundary value Analysis:
&lt;/h2&gt;

&lt;p&gt;Boundaries are a crucial point where the chances of errors occurring is more. Hence designing test cases for the boundary values of the input increases the probability of finding errors which helps in making our testing efficient. One test case of each boundary value is written and both valid and invalid test cases are tested. &lt;br&gt;
Test case Example: For an application the Age criteria to sign up is 18 to 60 age. Hence the test cases will be tested as follows,&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%2Fafdj35soayvk8i8hye67.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%2Fafdj35soayvk8i8hye67.png" alt="Image description" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;Decision table testing is a black-box testing technique used to identify different combinations of inputs and their associated actions or outputs in a system. It is particularly useful when dealing with complex business logic or decision-making processes.&lt;br&gt;
The tester needs to create a table, each column in the table represents a different input condition, and each row represents a unique combination of input conditions. Next we need to fill the table with the output for each input combination. &lt;/p&gt;

&lt;p&gt;Test case Example: &lt;/p&gt;

&lt;p&gt;For a banking application when a user tries to login using Email and password, the decision table can be derived as follows, &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%2Fv8a49t9gkduz2ze4xeo7.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%2Fv8a49t9gkduz2ze4xeo7.png" alt="Image description" width="608" height="146"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Use case testing:&lt;/strong&gt;&lt;br&gt;
It is a type of Black box testing technique in which we identify the test cases that covers entire system on transaction by transaction basis from start to end. &lt;br&gt;
Test cases are interactions between user(Actor) and the software application(System). &lt;/p&gt;

&lt;p&gt;Test case Example:&lt;br&gt;
For a banking application when a user tries to login using mail id and password, the Use cases will be derived as follows, &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%2Farwv2gpapp0ko37fude9.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%2Farwv2gpapp0ko37fude9.png" alt="Image description" width="408" height="472"&gt;&lt;/a&gt;&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%2F5swaif2r3mlig5ge4d57.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%2F5swaif2r3mlig5ge4d57.png" alt="Image description" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;White box testing:&lt;/strong&gt;&lt;br&gt;
White box testing, also known as clear box testing, structural testing, or glass box testing, is a software testing technique where the internal structure, design, and implementation of the software are examined thoroughly. &lt;/p&gt;

&lt;p&gt;Unlike black box testing, where the tester tests the functionality of the software without any knowledge of its internal workings, in white box testing, the tester has access to the source code and uses this knowledge to design test cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LCSAJ Methodology:&lt;/strong&gt;&lt;br&gt;
LCSAJ called as Linear Code Sequence and Jump, is a white box testing technique used in the context of testing programming language or low-level machine code. &lt;/p&gt;

&lt;p&gt;In LCSAJ testing, the goal is to ensure that all the different sequences of assembly instructions in a program are executed and tested thoroughly. This technique helps in identifying potential bugs or errors that might arise due to unexpected interactions between instructions or data dependencies.&lt;/p&gt;

&lt;p&gt;To perform LCSAJ testing, testers typically create test cases that cover all possible contiguous sequences of assembly instructions in the program. This ensures comprehensive coverage of the code and helps in uncovering hidden defects.&lt;/p&gt;

&lt;p&gt;LCSAJ testing is particularly important in critical software systems, such as those used in safety-critical applications or in embedded systems, where even small errors can have serious consequences.&lt;/p&gt;

&lt;p&gt;Example: &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%2Fj2rx4r2owzeo8n88kyvl.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%2Fj2rx4r2owzeo8n88kyvl.png" alt="Image description" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blackboxtesting</category>
      <category>whiteboxtesting</category>
      <category>testing</category>
      <category>qa</category>
    </item>
    <item>
      <title>Mastering the Manual testing Manifesto</title>
      <dc:creator>Supriya</dc:creator>
      <pubDate>Sun, 04 Feb 2024 16:54:23 +0000</pubDate>
      <link>https://dev.to/supriya16/mastering-the-manual-testing-manifesto-4e45</link>
      <guid>https://dev.to/supriya16/mastering-the-manual-testing-manifesto-4e45</guid>
      <description>&lt;p&gt;As we hear the word "Testing", the very first sequel word that comes into my mind is "Manual Testing". Manual testing is a type of software testing in which testers manually verify and validate if the end product satisfy the customer requirements and specifications in both Functional and Non-Functional aspects. The testing is performed in a similar way as an end user to identify bugs and defects in the software or application. &lt;/p&gt;

&lt;p&gt;We use the STLC(Software Testing Life Cycle) to perform any type of testing. The phases of STLC are as below: &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%2Fguajmup6yasswbv9u0k0.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%2Fguajmup6yasswbv9u0k0.png" alt="Image description" width="800" height="283"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;1. Requirement Analysis&lt;/em&gt;&lt;br&gt;
This is the very first phase of STLC where the testers analyze the project requirements by discussing it with various stakeholder and prepare the RTM(Requirement Traceability Matrix is a document where we associate the requirements with the corresponding test cases).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2.Test planning&lt;/em&gt;&lt;br&gt;
In this phase the test manager determines the Test plan or strategy, test tool selection, types of testing in scope, cost estimation, resource planning, Trainings required etc. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Test case development&lt;/em&gt;&lt;br&gt;
In Test case development phase, the test cases, scripts and data is created.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Test Environment setup&lt;/em&gt;&lt;br&gt;
In this phase, the environment for testing is setup on the basis of software and hardware requirement. Smoke testing is performed in this phase. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;5. Test Execution&lt;/em&gt;&lt;br&gt;
In this phase, Test cases, scripts are executed and the results are documented. The bugs/defects are also reported and post the defect is fixed, retesting is also done in this phase.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;6. Test Closure&lt;/em&gt;&lt;br&gt;
This is the last phase of STLC, where the testers report the test results and test completion metrics. In this phase EOTR (End of Testing report) is also prepared and submitted by the Testers. &lt;/p&gt;

&lt;p&gt;There are enormous types of Manual Testing which can be performed in both Functional and Non-Functional aspects. Here is an article on various types of Testing &lt;br&gt;
&lt;a href="https://dev.to/supriya16/functional-testing-vs-non-functional-testing-3ep3"&gt;https://dev.to/supriya16/functional-testing-vs-non-functional-testing-3ep3&lt;/a&gt;&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%2Fynxdwio7dr8foxew4o12.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%2Fynxdwio7dr8foxew4o12.jpg" alt="Image description" width="326" height="180"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Merits of Manual testing&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There is no environment limitations. We can perform manual testing in any kind of Application, Software, OS etc. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No programming language knowledge is required for developing and executing the test cases. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manual testing is the best approach for dynamically changing GUI(Graphic User Interface).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testers interact more with the AUT, which helps in finding the defects easily and making the application defect free. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Demerits of Manual Testing:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;As humans are tend to make errors, Manual testing provides less accuracy. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance testing is not possible in Manual testing as its nearly impossible to run the same test cases for n number of times. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing with large amount of data is a very tedious process and time consuming. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;*&lt;em&gt;Manual Testing Example for a Banking Application: &lt;br&gt;
*&lt;/em&gt;&lt;/em&gt;&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%2Fy9vnc33q16bcbn49m4qg.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%2Fy9vnc33q16bcbn49m4qg.png" alt="Image description" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a Banking application we could build lot of test cases Manually for instance,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A new customer wants to register themselves and then open a Stocks and Funds portfolio with the same bank. In this case we can develop test cases for the customer registration scenario, customer logging successfully scenario, customer adding funds to the account scenario, customer opening another Stock portfolio account with the bank scenario and customer adding funds from Savings account to Trading account scenario. &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>manualtesting</category>
      <category>importanceoftes</category>
      <category>qualityanalyst</category>
      <category>learning</category>
    </item>
    <item>
      <title>Functional Testing VS Non-functional Testing</title>
      <dc:creator>Supriya</dc:creator>
      <pubDate>Sun, 04 Feb 2024 06:23:01 +0000</pubDate>
      <link>https://dev.to/supriya16/functional-testing-vs-non-functional-testing-3ep3</link>
      <guid>https://dev.to/supriya16/functional-testing-vs-non-functional-testing-3ep3</guid>
      <description>&lt;h2&gt;
  
  
  FUNCTIONAL TESTING:
&lt;/h2&gt;

&lt;p&gt;Functional Testing is a type of software testing where the functional requirements and specifications of the application under test(AUT) is tested. In functional testing we provide input data and monitor the system's response to the input data and compare the output with expected output. We can perform functional testing Manually or in automated way.&lt;br&gt;
The scope mostly includes User interface, database, APIs of the software application.&lt;br&gt;
Example: &lt;br&gt;
If we are testing a banking website, under functional testing  the scope involves whether the website can perform tasks such as opening a new account for a customer, logging in functionality for an existing customer, adding and withdrawing money from the account etc. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Scope of functional testing: &lt;/u&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Basic Usability: We test if the user is able to navigate through the screens or not. &lt;/li&gt;
&lt;li&gt;Mainline functions: We test of the main functionalities and functions of the application&lt;/li&gt;
&lt;li&gt;User accessibility: The accessibility of the system is tested. &lt;/li&gt;
&lt;li&gt;Error Conditions: WE test of the application returns appropriate error messages are displayed or not in case of error conditions.&lt;/li&gt;
&lt;/ol&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%2F1q6o5pqcbd3uncmwdd3y.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%2F1q6o5pqcbd3uncmwdd3y.png" alt="Image description" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of functional testing:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Unit testing: In Unit testing we test smaller units of modules of the application. Also referred as "Component testing". &lt;/li&gt;
&lt;li&gt;Its primarily performed by Developers using White box approach. &lt;/li&gt;
&lt;li&gt;&lt;p&gt;The objective of unit testing is to deduct bugs in the earlier stage of development. &lt;br&gt;
Example: &lt;br&gt;
In a banking application, testing a unit of the application like Login page with different test cases like with valid username/password, invalid username and password etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration testing: In Integration testing we integrate the individual units and test the collective functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is performed by Testers on testing servers. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The scope of integration testing is to expose errors during the interaction between the individual units. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example: In a banking application, when a customer with a balance of 1000 $ withdraws 500$ and their balance should be updated to 500$. Here the different modules are Login, current balance, Withdraw, Transfer etc. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;System testing: In System testing the end to end application is tested. &lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is done on a production alike server by the testers. &lt;br&gt;
Example : Logging into a banking application, Checking the balance, making a transfer and then logging off. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Acceptance testing: &lt;br&gt;
It is done by the customers to check if the product satisfies the Acceptance criteria.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It helps is reducing the chances of issues occurring during the production. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regression testing: It is done to check the unchanged features of an application to make sure that changes like adding, deleting, modifying a feature doesn't impact the unchanged feature.&lt;br&gt;
Example: When a new feature like a button is added to display user's balance without logging in to the banking application, this functionality doesn't impact the existing logging feature.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Retesting: In this case we only test the failed test case to make sure that the previously raised defect in previous build are fixed in the current build. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smoke testing: In smoke testing we test the crucial functionalities of an application are working fine or not like logging in functionality. &lt;br&gt;
It is done in the initial build versions. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sanity testing: In Sanity testing we test for bug fixes or code changes in later builds. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  NON FUNCTIONAL TESTING:
&lt;/h2&gt;

&lt;p&gt;Non functional testing is used to verify the behavior and non function attribute of the system. The non functional attributes include performance, usability, maintainability, stability, portability etc. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;Scope of Non functional testing&lt;/u&gt;:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;More Usability: To increase usability, efficiency, maintainability, and portability of the software.&lt;/li&gt;
&lt;li&gt;Lower production risk: This type of testing is done to reduce the production related bugs with respect to non functional requirements of the software.&lt;/li&gt;
&lt;li&gt;Cost reduction: To help in the reduction of costs related to non-functional aspects of the product.&lt;/li&gt;
&lt;li&gt;Collect metrics: To collect and produce measurements and metrics for internal research and development and enhancing the knowledge in product behavior. &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Types of Non functional Testing:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Performance Testing: 
In this testing we check the performance and stability of the software under varying workloads. 
Performance testing scope includes testing the Speed, Scalability, Stability and Reliability(product is secure or not) of the software.
Example : A banking application's response time is usually 60 seconds for the login page and this response time doesn't change when 10000 users try to access the login page at the same time.&lt;/li&gt;
&lt;li&gt;Load Testing: 
In load testing we test if the software can handle huge transactions or increase in load. Load testing is done mostly by end users. 
Example : When a huge transaction load is passed to a Banking application. &lt;/li&gt;
&lt;li&gt;Volume Testing: 
In volume testing we test the software by passing huge volume at a time and checking system's response time. 
Example: When huge volume of data is passed to the system to check the banking applications response time. &lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>functionaltesting</category>
      <category>nonfunctionaltesting</category>
      <category>softwaretesting</category>
      <category>manualtesting</category>
    </item>
    <item>
      <title>Era of Software Testing</title>
      <dc:creator>Supriya</dc:creator>
      <pubDate>Sat, 27 Jan 2024 08:32:15 +0000</pubDate>
      <link>https://dev.to/supriya16/software-testing-n90</link>
      <guid>https://dev.to/supriya16/software-testing-n90</guid>
      <description>&lt;p&gt;Software testing is a process of verifying that our application or software is working without any defects. Software testing is used to make our application/software more user friendly and prevent any defects in the software at later point of time. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Types of Software testing, &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Functional testing:&lt;/strong&gt;&lt;br&gt;
Unit testing: In Unit testing we test smaller units of modules of the application. Also referred as "Component testing".&lt;br&gt;
Its primarily performed by Developers using White box approach.&lt;br&gt;
The objective of unit testing is to deduct bugs in the earlier stage of development.&lt;br&gt;
Example:&lt;br&gt;
In a banking application, testing a unit of the application like Login page with different test cases like with valid username/password, invalid username and password etc.&lt;/p&gt;

&lt;p&gt;Integration testing: In Integration testing we integrate the individual units and test the collective functionality.&lt;/p&gt;

&lt;p&gt;It is performed by Testers on testing servers.&lt;/p&gt;

&lt;p&gt;The scope of integration testing is to expose errors during the interaction between the individual units.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Non functional Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Performance Testing: In this testing we check the performance and stability of the software under varying workloads. Performance testing scope includes testing the Speed, Scalability, Stability and Reliability(product is secure or not) of the software. &lt;br&gt;
Example : A banking application's response time is usually 60 seconds for the login page and this response time doesn't change when 10000 users try to access the login page at the same time.&lt;/p&gt;

&lt;p&gt;Load Testing: In load testing we test if the software can handle huge transactions or increase in load. Load testing is done mostly by end users. Example : When a huge transaction load is passed to a Banking application.&lt;/p&gt;

&lt;p&gt;Volume Testing: In volume testing we test the software by passing huge volume at a time and checking system's response time. Example: When huge volume of data is passed to the system to check the banking applications response time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Software Development Lifecycle and Software Testing Lifecycle:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We need to know what is Software Development lifecycle and Software Testing lifecycle and the various test in them to understand what are the different types of software testing like Unit testing, integration testing, System testing and which type is best applicable for a given test case. It is also important for a tester to know how to write test cases for a given scenario and then get them executed. Below are the major steps in software testing lifecycle:&lt;/p&gt;

&lt;p&gt;1.Requirement Analysis&lt;br&gt;
This is the very first phase of STLC where the testers analyze the project requirements by discussing it with various stakeholder and prepare the RTM(Requirement Traceability Matrix is a document where we associate the requirements with the corresponding test cases).&lt;/p&gt;

&lt;p&gt;2.Test planning&lt;br&gt;
In this phase the test manager determines the Test plan or strategy, test tool selection, types of testing in scope, cost estimation, resource planning, Trainings required etc.&lt;/p&gt;

&lt;p&gt;3.Test case development&lt;br&gt;
In Test case development phase, the test cases, scripts and data is created.&lt;/p&gt;

&lt;p&gt;4.Test Environment setup&lt;br&gt;
In this phase, the environment for testing is setup on the basis of software and hardware requirement. Smoke testing is performed in this phase.&lt;/p&gt;

&lt;p&gt;5.Test Execution&lt;br&gt;
In this phase, Test cases, scripts are executed and the results are documented. The bugs/defects are also reported and post the defect is fixed, retesting is also done in this phase.&lt;/p&gt;

&lt;p&gt;6.Test Closure&lt;br&gt;
This is the last phase of STLC, where the testers report the test results and test completion metrics. In this phase EOTR (End of Testing report) is also prepared and submitted by the Testers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Significance of Software testing &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;cost saving: As we test the software frequently, this can prevent unnecessary fix at later stage. &lt;/li&gt;
&lt;li&gt;Good product quality and security: Software testing also helps in maintaining our product and avoiding the security breaches &lt;/li&gt;
&lt;li&gt;Customer satisfaction: Software testing also contributes to achieving customer satisfaction and gathering feedback on the application.&lt;/li&gt;
&lt;li&gt;Risk mitigation can be done by identifying issues at early stage and prevents critical problems during later stages of development and post-release.&lt;/li&gt;
&lt;li&gt;Verifying that the software meets specified requirements and performs its intended functionalities. &lt;/li&gt;
&lt;li&gt;Security enhancement can be achieved by detecting vulnerabilities and protecting the software against security threats and breaches.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>testing</category>
      <category>software</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
