<?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: Charishma</title>
    <description>The latest articles on DEV Community by Charishma (@charishma2122).</description>
    <link>https://dev.to/charishma2122</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%2F1185865%2F25580bea-c6c8-4f06-b7f5-05ca17dbaa62.png</url>
      <title>DEV Community: Charishma</title>
      <link>https://dev.to/charishma2122</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/charishma2122"/>
    <language>en</language>
    <item>
      <title>Understanding Selenium Architecture</title>
      <dc:creator>Charishma</dc:creator>
      <pubDate>Tue, 14 May 2024 14:25:38 +0000</pubDate>
      <link>https://dev.to/charishma2122/understanding-selenium-architecture-3n2f</link>
      <guid>https://dev.to/charishma2122/understanding-selenium-architecture-3n2f</guid>
      <description>&lt;p&gt;**Introduction to Selenium: **Selenium is a widely-used open-source automation tool primarily designed for web applications. It provides a suite of tools and libraries to automate web browsers across different platforms. The Selenium suite includes Selenium IDE, Selenium WebDriver, and Selenium Grid.&lt;/p&gt;

&lt;p&gt;1.** Selenium Components:**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium IDE:&lt;/strong&gt; This is a Firefox and Chrome extension used for recording and playback of interactions with the browser. It's primarily used for prototyping and simple automation tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium WebDriver:&lt;/strong&gt; WebDriver is the core component that provides APIs for interacting with web browsers programmatically. It communicates with the browser directly, controlling its behavior like clicking buttons, filling forms, etc.&lt;/p&gt;

&lt;p&gt;**Selenium Grid: **Selenium Grid allows for parallel test execution across multiple browsers, operating systems, and machines. It helps in reducing test execution time and increasing test coverage.&lt;/p&gt;

&lt;p&gt;2*&lt;em&gt;. Selenium WebDriver Architecture:&lt;/em&gt;*&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client Libraries:&lt;/strong&gt; These are language-specific bindings that provide methods and classes to interact with WebDriver. Examples include Selenium with Python, Java, C#, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON Wire Protocol:&lt;/strong&gt; WebDriver communicates with the browser using the JSON Wire Protocol over HTTP. It sends commands to the browser driver and receives responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser Drivers:&lt;/strong&gt; Each browser (Chrome, Firefox, Safari, etc.) requires a specific driver (ChromeDriver, GeckoDriver, etc.) to establish a connection and control actions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser Engine:&lt;/strong&gt; The actual browser engine (WebKit for Safari, Gecko for Firefox, etc.) interprets and renders web pages based on instructions from WebDriver.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Execution Flow:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Test Script: Developers/Testers write test scripts using WebDriver APIs in their preferred programming language (like Python, Java).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client Library:&lt;/strong&gt; The test script interacts with the WebDriver client library, which serializes commands into HTTP requests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON Wire Protocol:&lt;/strong&gt; The client library sends HTTP requests to the browser-specific driver using the JSON Wire Protocol.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser Driver:&lt;/strong&gt; The browser driver receives commands, translates them into browser-specific actions, and sends them to the browser engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser Engine:&lt;/strong&gt; The browser engine executes actions (like clicking buttons, entering text) on the web page and sends responses back through the same route.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Isolation of Dependencies:&lt;/strong&gt; Virtual environments in Python allow users to create isolated environments for projects. This isolation ensures that each project can have its dependencies without conflicting with system-wide Python installations or other projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dependency Management:&lt;/strong&gt; Virtual environments help manage project dependencies efficiently. Users can install specific versions of libraries for one project without affecting other projects or the system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Version Control: Virtual environments facilitate version control for Python packages. Developers can freeze and save dependencies along with specific versions, ensuring consistent behavior across different environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing:&lt;/strong&gt; Test automation scripts using Selenium with Python can benefit from virtual environments to manage Selenium and related library versions specific to each project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Development:&lt;/strong&gt; A web developer may use virtual environments to isolate Django or Flask dependencies for different web projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Science:&lt;/strong&gt; Data scientists can create separate environments for different machine learning projects, managing libraries like NumPy, Pandas, and TensorFlow independently.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Selenium's architecture encompasses various components like WebDriver, client libraries, browser drivers, and protocols, enabling seamless automation of web applications. Python virtual environments play a crucial role in isolating dependencies, managing versions, and maintaining project integrity, especially in scenarios like web development, data science, and test automation. Understanding these concepts empowers developers and testers to create robust automation solutions and manage Python projects efficiently.&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>automation</category>
      <category>python</category>
      <category>testing</category>
    </item>
    <item>
      <title>Understanding Selenium: An Introduction to Automated Web Testing</title>
      <dc:creator>Charishma</dc:creator>
      <pubDate>Fri, 15 Mar 2024 15:31:51 +0000</pubDate>
      <link>https://dev.to/charishma2122/understanding-selenium-an-introduction-to-automated-web-testing-2715</link>
      <guid>https://dev.to/charishma2122/understanding-selenium-an-introduction-to-automated-web-testing-2715</guid>
      <description>&lt;p&gt;In the world of software testing, ensuring the quality and reliability of web applications is crucial. Imagine having a powerful tool that can interact with your web application just like a human user would. That's where Selenium comes into play!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Selenium?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selenium is a powerful automation testing framework designed to streamline the testing process for web applications. It acts as your virtual assistant, capable of simulating user interactions such as clicking buttons, filling out forms, and navigating through web pages automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use Selenium?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As an automation tester, Selenium offers a n number of benefits that simplify and enhance the testing process:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Automated Testing&lt;/strong&gt;&lt;/em&gt;: With Selenium, you can automate the testing of your web application, significantly reducing the time and effort required for manual testing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Cross-Browser Compatibility:&lt;/strong&gt;&lt;/em&gt; Different web browsers may interpret your application differently. Selenium enables you to write tests that run seamlessly across multiple browsers, ensuring consistent functionality for all users.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Regression Testing:&lt;/strong&gt;&lt;/em&gt; Making changes to your code introduces the risk of new bugs. Selenium aids in running regression tests to ensure that your updates haven't broken any existing functionality.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Scalability:&lt;/strong&gt;&lt;/em&gt; As your web application evolves, so does the complexity of testing it. Selenium allows you to scale your testing efforts efficiently by automating repetitive tasks and handling increasing test suites.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Integration with CI Tools:&lt;/strong&gt;&lt;/em&gt; Selenium seamlessly integrates with Continuous Integration (CI) tools like Jenkins or Travis CI, enabling you to automatically run tests whenever new code is pushed, facilitating early detection of issues.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Cost-Effectiveness:&lt;/strong&gt;&lt;/em&gt; Automated testing with Selenium saves both time and money compared to manual testing, as it reduces the need for human resources and accelerates the testing process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does Selenium Work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the heart of Selenium lies the WebDriver, acting as a bridge between your test scripts and web browsers. WebDriver communicates with the browser using browser-specific drivers (e.g., ChromeDriver, GeckoDriver), enabling seamless interaction with web elements.&lt;/p&gt;

&lt;p&gt;You can write Selenium scripts using programming languages like Python, Java, or JavaScript, which interact with the WebDriver to execute commands such as navigating web pages, clicking buttons, inputting text, and validating results.&lt;/p&gt;

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

&lt;p&gt;Open Source: Selenium is an open-source tool, which means it's freely available for everyone to use.&lt;/p&gt;

&lt;p&gt;Cross-Browser Compatibility: Selenium supports multiple web browsers such as Chrome, Firefox, Safari, and Edge. This allows testers to ensure that their web applications work consistently across different browsers.&lt;/p&gt;

&lt;p&gt;Support for Multiple Programming Languages: Selenium provides support for various programming languages including Java, Python, C#, and JavaScript. &lt;/p&gt;

&lt;p&gt;Rich Set of Features: Selenium offers a comprehensive suite of tools and features for automation testing, including support for advanced testing scenarios like integration with Continuous Integration (CI) tools.&lt;/p&gt;

&lt;p&gt;Large Community and Resources: Selenium has a large and active community of users, which means there are plenty of resources, tutorials, and forums available for assistance and knowledge sharing.&lt;/p&gt;

&lt;p&gt;Disadvantages:&lt;/p&gt;

&lt;p&gt;Limited Support for Non-Web Applications: Selenium is primarily designed for testing web applications and does not offer robust support for testing non-web applications such as desktop or mobile apps.&lt;/p&gt;

&lt;p&gt;You need to have a knowledge of Selenium to work with it as you need to know Python and the framework as well.&lt;/p&gt;

&lt;p&gt;Selenium cannot automate CAPTCHA and SMS-based OTP web applications.&lt;/p&gt;

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

&lt;p&gt;In short, Selenium is a superhero tool for automation testers. It helps you test websites quickly and accurately, saving time and ensuring quality.&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>automation</category>
      <category>testing</category>
      <category>webbrowser</category>
    </item>
    <item>
      <title>Manual Testing</title>
      <dc:creator>Charishma</dc:creator>
      <pubDate>Tue, 24 Oct 2023 15:07:04 +0000</pubDate>
      <link>https://dev.to/charishma2122/manual-testing-5fcj</link>
      <guid>https://dev.to/charishma2122/manual-testing-5fcj</guid>
      <description>&lt;p&gt;*&lt;em&gt;In this blog, we’ll see the basics of manual testing. We’ll also cover the advantages and disadvantages of manual testing. *&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What is manual testing? *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Manual Testing is a type of software testing, where testers will manually find defects and bugs. Test cases are executed manually, by humans, without any support from tools or scripts.&lt;/p&gt;

&lt;p&gt;The goal of manual testing is to find errors, defects, and flaws in a software product. Manual testing is the most basic technology of all testing methods.&lt;/p&gt;

&lt;p&gt;Manual testing is a process in which we compare the behavior of software (it can be a component, module, feature, etc.) with the expected behavior that we defined during the initial phases of SDLC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do we need manual testing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The basic usability, look &amp;amp; feel of the application can be tested and evaluated by humans. Manual testing will be executed as per the user experience perspective.&lt;/p&gt;

&lt;p&gt;Manual verification always gives a broader perspective of the overall application. In this testing, testers write test cases test the software, and give the final report about that software. Manual testing is time-consuming testing because it is done by humans and there is a greater chance of human errors. &lt;/p&gt;

&lt;p&gt;Every new application must be manually tested before it can be automated. Manual Testing requires more effort than automation testing because every time we need to retest the software when there is new functionality is added. When we do the regression testing, there are more chances to miss out on the test cases.&lt;/p&gt;

&lt;p&gt;Automation testing can be done by tool/framework through the scripts. All the manual test cases will be defined through the code. Whenever testing needs to be done we can execute the scripts. With automation testing, we can reduce the total time of testing compared to manual testing. Here the chances of missing the bugs will be less. But all the test cases can't be automated, those test cases can be verified manually.&lt;/p&gt;

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

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

&lt;p&gt;*&lt;em&gt;- White Box Testing: *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;White box testing is an approach that allows testers to inspect and verify the inner workings of a software system and checks the internal code/logic, infrastructure, and integrations with external systems. This type of testing of software is started after a detailed design document.&lt;/p&gt;

&lt;p&gt;The white box testing contains various tests, which are as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Path testing&lt;/li&gt;
&lt;li&gt;Loop testing&lt;/li&gt;
&lt;li&gt;Condition testing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;White box testing mainly focuses on the looping statements, flow checks, whether the conditions are working fine, whether the exceptions are handled correctly or not., etc. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;- Black Box Testing: *&lt;/em&gt;&lt;br&gt;
The primary source of black box testing is a specification of requirements that are stated by the customer.&lt;/p&gt;

&lt;p&gt;Here the testing will be done on the application from the user’s perspective without any knowledge of its implementation. Black box testing checks that the system as a whole is working as expected.&lt;/p&gt;

&lt;p&gt;Black box testing mainly focuses on the requirements stated by the client. we verify the product/software end-to-end w.r.t test cases we designed. Here we test the behavior of the modules and boundaries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grey Box testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The grey-box testing strategy combines white-box and black-box testing approaches. It involves access to internal coding to design test cases as white box testing and testing cases are done at the functionality level as black box testing.&lt;/p&gt;

&lt;p&gt;Generally, Unit testing and integration come under Whitebox testing. System and Acceptance testing comes under black box testing. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Process of Manual testing: *&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Analyzing the requirements&lt;/li&gt;
&lt;li&gt;Creating the test plan and test description documents&lt;/li&gt;
&lt;li&gt;Review of the test plan&lt;/li&gt;
&lt;li&gt;Execute the test plan&lt;/li&gt;
&lt;li&gt;Test report and bug tracking, after fixing the bug retesting the software.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's see some advantages and disadvantages of manual testing.&lt;/p&gt;

&lt;p&gt;Advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manual testing of an application identifies most of the issues, including the look and feel issues of the application.&lt;/li&gt;
&lt;li&gt;Components like text, layout, icons, and UI and UX issues can be easily detected.&lt;/li&gt;
&lt;li&gt;It is well-suited in case we make some unplanned changes to the application as it is adaptable.&lt;/li&gt;
&lt;li&gt;Humans can observe, judge, and also provide the test case of manual tests.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Disadvantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manual testing is time-consuming.&lt;/li&gt;
&lt;li&gt;It isn't easy to find size differences and color combinations of GUI objects using a manual test.&lt;/li&gt;
&lt;li&gt;Nonperformance testing is very difficult to perform. &lt;/li&gt;
&lt;li&gt;Regression Testing cases are difficult to run in practical when there are continuous feature additions happening in the software.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7WFqCvLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61fh11m9cdza8y571hv5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7WFqCvLy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61fh11m9cdza8y571hv5.png" alt="Image description" width="450" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Assume we need to test the login screen. We will write the test cases and execute them once the developer gives the build.&lt;/p&gt;

&lt;p&gt;Advantages of manual testing&lt;br&gt;
If we find any bugs like, text changes or error text is not appropriate, or the color mentioned by the customer and developed was different. &lt;br&gt;
We can check all these things when we look at and feel the UI and how comfortable or easy to use by the human.&lt;/p&gt;

&lt;p&gt;Disadvantages:&lt;br&gt;
When there are complex features in the software. Frequently we are adding features to the software, we need to check each screen/module manually. &lt;br&gt;
It will be difficult to check the same functionality in the repetitive builds, due to this we may miss some of the feature testing due to lack of time/deadlines we may commit.&lt;/p&gt;

&lt;p&gt;If the tester gives the QA signoff without completing the testing it may cause bugs to the Realtime users.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
In this blog, we tried to cover the topic of manual testing. Types of testing and advantages and disadvantages of manual testing.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>manualtestin</category>
      <category>whiteboxtesting</category>
      <category>blackboxtesting</category>
    </item>
    <item>
      <title>Basics and types of testing</title>
      <dc:creator>Charishma</dc:creator>
      <pubDate>Mon, 23 Oct 2023 12:59:22 +0000</pubDate>
      <link>https://dev.to/charishma2122/basics-and-types-of-testing-37oo</link>
      <guid>https://dev.to/charishma2122/basics-and-types-of-testing-37oo</guid>
      <description>&lt;p&gt;*&lt;em&gt;In this blog, we’ll see the basics of testing. We’ll also cover some of the differences between functional and non-functional testing and some of the types of both functional and non-functional testing. *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importance of Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Human errors can cause a defect or failure at any stage of the software development life cycle. It makes the software more reliable and easier to use. A thoroughly tested software ensures reliable and high-performance software operation compared to without testing the software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functional and Non-Functional Testing&lt;/strong&gt;&lt;br&gt;
Firstly, we will discuss functional testing and its types and an example of functional testing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Functional Testing&lt;/strong&gt;
In functional testing, we make sure that the functionality of the software meets the business requirements. We prepare tests to specifically focus on the business use cases. This means we prepare a set of inputs and the expected outputs and test the software/application for accurate results. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Functional testing mainly focuses on the software program for user interface, APIs, database, client/server connection, and many other features. Functional testing can be performed manually or through automation.&lt;/p&gt;

&lt;p&gt;Functional testing mainly focuses on recognizing the test input of test data based on the requirements. Calculating the predicted results by using the input data and executing the test cases. Finally, compare the real and predicted results.&lt;/p&gt;

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

&lt;p&gt;** Types of Functional Testing**&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Unit Testing
Unit testing is the “white box” approach to testing the functionality of the code against the requirements. We write tests to check if the written code works correctly. As a result, we can cover the defects and report those at the earliest phase of the Software Development Lifecycle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As soon as a new feature is developed, we can write the unit tests in parallel to check that the feature works as expected even in unexpected scenarios. Unit testing can be done by developers/testers.&lt;/p&gt;

&lt;p&gt;Unit testing will be done to validate the smallest possible unit of code such as a function or any conditions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;*&lt;em&gt;Integration Testing: *&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Integration testing is a method of testing how different units or components of a software/application interact with each other. It is used to identify and resolve any issues that may arise when different units of the software are combined. Integration testing is typically done after unit testing. We will verify that the individual modules and components work as efficiently after the integration as they do independently.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;*&lt;em&gt;System Testing: *&lt;/em&gt;
We will test the whole application (complete/integrated software is tested) by a tester. We verify all the desired outputs for a specific set of inputs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The order of the testing is firstly we perform the Unit testing, Integration Testing, and then System Testing. It is a type of Black-box testing. With the help of a Software requirement document along with the test cases, this testing will happen. the system testing will be done from the perspective of the end user whether the requirements are matched.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;4. Acceptance Testing: *&lt;/em&gt; &lt;br&gt;
It is a level of software Testing in which software is tested for user acceptance.&lt;br&gt;
→ It can be done by QA or clients.&lt;br&gt;
  UAT is done at the client side where software is actually used. &lt;br&gt;
→ Alpha Testing: Done by the tester in the company in the presence of the customer.&lt;br&gt;
→ Beta Testing: done by the customer to check software is okay and satisfies the requirement. &lt;br&gt;
Note: We covered some of the important types of testing. Apart from the above, we have some other functional testing techniques like regression testing, sanity, smoke testing., etc.&lt;/p&gt;

&lt;p&gt;Example for the functional testing:&lt;/p&gt;

&lt;p&gt;To understand the different types of functional tests, here’s a test scenario for different kinds of functional testing techniques.&lt;/p&gt;

&lt;p&gt;Test Scenario:&lt;/p&gt;

&lt;p&gt;An online student portal on which &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user logs in with their Register No and password. The login page has two text fields for Register No and password. It also has two buttons – Login and Cancel.&lt;/li&gt;
&lt;li&gt;After successful login it should have a home screen. On the home screen, the attendance tracker and list of holiday options should be there.
&lt;/li&gt;
&lt;li&gt;Attendance tracker - The tracker has every month's attendance and average attendance throughout the year.&lt;/li&gt;
&lt;li&gt;List of holidays - This is a PDF file with the list of holidays in the current year.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unit testing:&lt;br&gt;
Here, I am explaining by taking an example for the first functionality.&lt;br&gt;
module1:&lt;br&gt;
Tc1: With the correct register no and password &lt;br&gt;
TC2: With the incorrect register number and correct password&lt;br&gt;
TC3: With the correct register number and incorrect password&lt;br&gt;
TC4: With the incorrect register number and incorrect password&lt;/p&gt;

&lt;p&gt;In the above test cases, only TC1 should pass, for the remaining test cases, it should through the appropriate error.&lt;/p&gt;

&lt;p&gt;Integration testing:&lt;br&gt;
Assume that after login functionality, the developer has developed the only home screen.&lt;/p&gt;

&lt;p&gt;Here we will verify after successful login it is redirecting to the home screen. We will open the portal in different browsers, in incognito mode, and check whether the user is able to log in and access the home screen.&lt;/p&gt;

&lt;p&gt;In the integration testing, we should concentrate more on the new addon functionality that causes any errors/defects to an existing functionality.&lt;br&gt;&lt;br&gt;
System testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Here we will execute all the test cases (positive and negative) after deployment for every module with respect to SRS. &lt;/li&gt;
&lt;li&gt;Here we will check if any texts or buttons are placed in the right place.
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also, we will concentrate on whether their loading icon is placed (UI should communicate to the user to wait/process icons when there is a delay in fetching the data/while opening another tab.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Non-Functional Testing&lt;/strong&gt;&lt;br&gt;
We generally execute the non-functional testing after functional testing. In non-functional testing, we focus on the system such as performance, usability, reliability, and scalability. It ensures that the user gets the best experience while using the software. Non-functional tests are as important as functional tests since they help us understand how the system behaves under certain circumstances.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Non-functional testing targets the expectations of the customer. Non-functional testing can improve the product's reliability, performance, manageability, and accessibility.&lt;/p&gt;

&lt;p&gt;Types of Non-functional tests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;*&lt;em&gt;Performance testing: *&lt;/em&gt; Performance testing, is a non-functional testing technique performed
to determine the system parameters in terms of responsiveness and stability under
various workloads. Performance testing measures the quality attributes of the system,
such as scalability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;- Response time testing: *&lt;/em&gt;&lt;br&gt;
Response Time Testing measures the time taken for one system module/API/Node to respond to the request of another.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Load Testing: *&lt;/em&gt; Load testing is carried out to determine the behavior of a system under extreme load&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Stress Testing: *&lt;/em&gt; Stress Testing is done to check the robustness of the system under the&lt;br&gt;
varying loads.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Scalability Testing: *&lt;/em&gt; Scalability Testing can be done to check the performance of a&lt;br&gt;
software application or system in terms of its capability to scale up or scale down the&lt;br&gt;
number of user request loads.&lt;/p&gt;

&lt;p&gt;Note: Other Non-Functionality Testing types of Volume Testing, Security Testing, Localization Testing., etc.&lt;br&gt;
Example:&lt;br&gt;
With the same example as functional requirements.&lt;br&gt;
Non-functional requirements from the customer:&lt;br&gt;
1000 active users, loading speed: 1 sec, Fetching the data: 2 secs.&lt;/p&gt;

&lt;p&gt;We will test through tools like J-meter, postman., etc. the above testing required.&lt;/p&gt;

&lt;p&gt;For the active users, we will perform the performance testing and load testing by increasing the active users from 10 to 1000 and calculating the average time. &lt;/p&gt;

&lt;p&gt;To test the loading speed, we will note when the request happened and when we get a response for the respective action performed by the user.&lt;/p&gt;

&lt;p&gt;We will test how much time it is taking to fetch the attendance over 3 months/6 months.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Conclusion: *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In this blog, we learned the purpose of functional and non-functional testing. We also learned various types of functional and non-functional testing. Lastly, we explored the functional and non-functional testing techniques with examples.&lt;br&gt;
Functional testing is performed using the functional specification provided by the client and verifies the system against the functional requirements.&lt;br&gt;
Non-functional testing checks the Performance, reliability, scalability, and other non-functional aspects of the software system.&lt;/p&gt;

</description>
      <category>functional</category>
      <category>nonfunctional</category>
      <category>unittest</category>
      <category>performance</category>
    </item>
    <item>
      <title>Testing Techniques</title>
      <dc:creator>Charishma</dc:creator>
      <pubDate>Sun, 22 Oct 2023 15:49:53 +0000</pubDate>
      <link>https://dev.to/charishma2122/testing-techniques-2333</link>
      <guid>https://dev.to/charishma2122/testing-techniques-2333</guid>
      <description>&lt;p&gt;Test case design techniques play a major role in planning, designing, and implementing tests for software applications. These techniques involve various steps to ensure the desired test cases to detect the bugs in the test software. These techniques help us to test all the software’s features and functionalities effectively.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Why are test case design techniques used? *&lt;/em&gt;&lt;br&gt;
These techniques are developed to reduce the testing process by identifying critical testing and reducing unused test cases. It helps better design and reduce the number of test cases to be executed. These techniques reduce data and more coverage. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What are the advantages of test case design techniques? *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Possibility to reproduce a test.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finding more bugs/defects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Long-term maintenance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using these techniques, testers can identify complex scenarios, generate effective test data, and design test cases that evaluate full system functionality.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Types of Testing&lt;/strong&gt;&lt;br&gt;
There are two main categories of software testing techniques:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Static Testing&lt;/li&gt;
&lt;li&gt;Dynamic Testing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Static Testing Techniques&lt;/strong&gt; &lt;br&gt;
 Static Testing is done to avoid errors at an early stage of the development cycle.&lt;/p&gt;

&lt;p&gt;Static Testing is a software testing technique that involves reviewing and analyzing the software documentation – design, or code without executing the software. This can save time, resources, and costs in the long run. Also, it catches bugs early.&lt;/p&gt;

&lt;p&gt;We can identify issues like coding errors, inconsistent naming conventions., etc. That could negatively impact the software’s performance or quality.&lt;/p&gt;

&lt;p&gt;Static testing will be done during the design, documentation, and development phases before dynamic testing occurs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Few Examples of Static Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The primary goal of static testing is to reduce defect by reducing defects in the documentation from which the software is developed.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Review: *&lt;/em&gt; is a type of static testing | done before execution &lt;br&gt;
 Review is a process or meeting during which a work product or set of work products, is presented to managers, users, and customers.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Walkthrough Review: *&lt;/em&gt;&lt;br&gt;
• The document owner guides the participants through the document according to his or her thought process &lt;br&gt;
to achieve a common understanding and to gather feedback. &lt;/p&gt;

&lt;p&gt;** Inspection Review: **&lt;br&gt;
It is the most formal review type; this will be done by senior-level management. During inspection, the documents are prepared and checked thoroughly by the reviewers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Testing Techniques&lt;/strong&gt; &lt;br&gt;
It is a software testing technique that involves executing and evaluating a program or system during runtime. The main purpose of dynamic testing is to test the application with dynamic inputs- some of which may be allowed as per requirement (Positive test cases) and some are not allowed (Negative test cases).&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Why Do We Need to Perform Dynamic Testing? *&lt;/em&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dynamic testing helps identify bugs, errors, and defects in the software that may affect its functionality, reliability, or performance. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By executing the software with various inputs and scenarios, this testing ensures that it working as expected and meets the specified requirements from users/customers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Detecting and addressing defects early stages of the development process, will reduce software failures or malfunctions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;Few Examples of Dynamic testing: *&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;*&lt;em&gt;Boundary Value Analysis (BVA): *&lt;/em&gt; To perform boundary value analysis, we need to test cases that include values at the boundaries of the input domain.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;By testing these boundary values, we can ensure that the software program correctly handles the edge cases of the input and produces correct results for all possible inputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For each input variable, we will define the range of values and then determine the extreme values for each input variable. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
To write the UPSC exam the person should have an age limit of 21 to 37 years old.&lt;/p&gt;

&lt;p&gt;The following are possible test cases to check the boundary range for the above input.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;min = 18(pass)            2. max = 37(pass)&lt;/li&gt;
&lt;li&gt;min - 1 = 17(fail)        4. min - 1 = 36 (pass)&lt;/li&gt;
&lt;li&gt;&lt;p&gt;min + 1 = 19 (pass)       6. min + 1 = 38 (fail)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It shouldn't allow characters/special characters/spaces.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.** Decision table: **&lt;/p&gt;

&lt;p&gt;The technique is used if we have more conditions. Based on the condition we have to perform the action.&lt;/p&gt;

&lt;p&gt;This test technique is appropriate for functionalities which has logical relationships between inputs (if-else logic). In the Decision table technique, we have to deal with combinations of inputs. While writing the test cases with a decision table, we have to consider conditions and their actions. We take conditions as inputs and actions as outputs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is a structured exercise to prepare requirements when dealing with complex business rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
If the user has to submit a photo under particular situations, such as -&lt;br&gt;
condition 1: &lt;br&gt;
You can only upload images in the '.jpg' format.&lt;br&gt;
condition 2: &lt;br&gt;
a file with a size of fewer than 64 kilobytes&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Test cases: *&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Test case 1 is passed, the remaining cases failed due to the conditions mismatch (this is not allowed as per the customer requirements). &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;3. Use case Testing: *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use case testing is a part of the functional testing technique that helps to identify and test the scenarios on end-to-end scenarios. It helps to identify the gaps in software that might not be identified by testing individual components. It is used to develop test cases at the system level or acceptance level.&lt;/p&gt;

&lt;p&gt;The purpose of use case testing is to understand the end-user actions with the software/application as well as the system’s behavior.&lt;/p&gt;

&lt;p&gt;The following things are carried out in the Use Case Testing&lt;/p&gt;

&lt;p&gt;a) Use Case Identification -&lt;br&gt;
b) Test Case Design&lt;br&gt;
c) Positive and Negative Testing&lt;br&gt;
d) Preconditions and Postconditions&lt;br&gt;
e) End-to-End Testing&lt;br&gt;
f) Test Data&lt;br&gt;
g) Traceability&lt;br&gt;
h) Regression Testing&lt;/p&gt;

&lt;p&gt;Use-case testing is a valuable technique for ensuring that a software system meets its intended functional requirements and acts correctly when used by its intended audience. It aids in ensuring that the program meets user expectations and that frequent usage scenarios are extensively tested.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;:&lt;br&gt;
Students Web portal: Students can log in and check their attendance and results for each semester.&lt;/p&gt;

&lt;p&gt;Module 1: Log in and log out with their registered number. &lt;/p&gt;

&lt;p&gt;Module 2: Students can check their attendance for every semester.&lt;/p&gt;

&lt;p&gt;Module 3: Students can check their marks for every semester.&lt;/p&gt;

&lt;p&gt;Here each module is called a user case/user story.&lt;/p&gt;

&lt;p&gt;When we want to test the module 2:&lt;/p&gt;

&lt;p&gt;After logging into the portal, the user should be able to click the attendance symbol/text and it should redirect the attendance for every month in that semester.&lt;/p&gt;

&lt;p&gt;In the attendance portal, the average attendance for a semester and along with that each month's attendance will be shown.&lt;/p&gt;

&lt;p&gt;If the attendance &amp;lt;= 60:&lt;br&gt;
        the wheel will be in red color.&lt;br&gt;
If the attendance &amp;gt;= 65 or &amp;lt;= 75:&lt;br&gt;
        the wheel will be in yellow color.&lt;br&gt;
If the attendance &amp;gt;= 76:&lt;br&gt;
        the wheel will be in green color.&lt;/p&gt;

&lt;p&gt;For the above requirements, will write the test cases and execute the testing.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;LCSAJ Testing: *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;LCSAJ stands for Linear Code Sequence and Jump, a white box testing technique to identify the code coverage, which begins at the start of the program or branch and ends at the end of the program or the branch.&lt;/p&gt;

&lt;p&gt;LCSAJ consists of testing and is equivalent to statement coverage.&lt;/p&gt;

&lt;p&gt;LCSAJ Testing is nothing but a test design technique, which is used to design and create test cases, effective in executing the LCSAJ present in the program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
A user can check if he/she is eligible for gov jobs.&lt;br&gt;
Min= 18, Max= 35&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test cases&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Minimum age: &amp;gt;=18&lt;/li&gt;
&lt;li&gt;Maximum age &amp;lt;=35&lt;/li&gt;
&lt;li&gt;Minimum -1: 17&lt;/li&gt;
&lt;li&gt;Maximum +1: 36&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>testing</category>
      <category>testingtechniques</category>
      <category>manualtesting</category>
      <category>softwaretestingty</category>
    </item>
    <item>
      <title>Software Testing</title>
      <dc:creator>Charishma</dc:creator>
      <pubDate>Mon, 16 Oct 2023 13:22:18 +0000</pubDate>
      <link>https://dev.to/charishma2122/software-testing-42hn</link>
      <guid>https://dev.to/charishma2122/software-testing-42hn</guid>
      <description>&lt;p&gt;*&lt;em&gt;What is software testing? *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Software testing is an activity to detect and identify bugs in the software. The main objective of the testing is to release quality products to clients/customers. Testing is a part of the software development process to check whether the software is meeting the requirements/end-user expectations. The goal of a tester is to find the bugs, and errors, and verify and validate that the software is bug-free.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What do we need to know about software testing? *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before knowing about software testing, one should know about the software development life cycle. There are multiple SDLCs like the Waterfall, Agile, and spiral models. SDLC is a process to deliver the software to the customer.&lt;br&gt;
SDLC consists of gathering the Requirements from the end user, Design, Deploy, Testing, and Maintenance.&lt;/p&gt;

&lt;p&gt;To test the software effectively testers will follow the STLC (Software Testing life cycle). The STLC includes Test planning to the given requirements, Writing Test cases (positive, negative), Preparing the test env and test data set, Test execution, and Test report.&lt;/p&gt;

&lt;p&gt;To test the application, one can select either manual or automation testing based on their requirement. Further testing was classified as functional and non-functional testing.&lt;/p&gt;

&lt;p&gt;In functional cover Unit testing, Integration, System or UI testing, Validation testing, and user acceptance testing.&lt;br&gt;
Non-functional requirements cover performance, load, stress, and security testing.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What is the relevance of the software testing? *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Testing plays a very important part in SDLC, without doing any testing and releasing the product may have a lot of errors/bugs.&lt;/p&gt;

&lt;p&gt;Example: Assume that one application is providing the following activities. &lt;br&gt;
Signup screen, Login screen, and step counter.&lt;/p&gt;

&lt;p&gt;Assume that the signup screen will have these functionalities like upload a photo, provision to add name, password, and confirm password.&lt;/p&gt;

&lt;p&gt;After installing the application on the mobile, it may ask for permission to access the gallery or capture the image.&lt;/p&gt;

&lt;p&gt;Someone has to test the application whether the application working properly when the required permissions are given. if the permission was not given by the end-user, then the software should be able to communicate with the user to give permission.&lt;/p&gt;

&lt;p&gt;While uploading the photo, it should allow only jpeg files, it shouldn't allow extension files like PPT, word, PDF, etc. Every module and field should be tested to give a quality product to the end user.&lt;/p&gt;

&lt;p&gt;Testing is very important to ensure that the application works properly. The user shouldn't be annoyed with UI, Functionality, or responsiveness between the User and the backend. &lt;/p&gt;

</description>
      <category>sdlc</category>
      <category>stlc</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
