<?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: Kazhindhi Ezhumalai</title>
    <description>The latest articles on DEV Community by Kazhindhi Ezhumalai (@kazhindhi).</description>
    <link>https://dev.to/kazhindhi</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%2F1459188%2F9aa66e05-f127-4b43-9da6-2e1c4bad6946.png</url>
      <title>DEV Community: Kazhindhi Ezhumalai</title>
      <link>https://dev.to/kazhindhi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kazhindhi"/>
    <language>en</language>
    <item>
      <title>Manual Testing</title>
      <dc:creator>Kazhindhi Ezhumalai</dc:creator>
      <pubDate>Tue, 14 May 2024 07:34:06 +0000</pubDate>
      <link>https://dev.to/kazhindhi/manual-testing-1njf</link>
      <guid>https://dev.to/kazhindhi/manual-testing-1njf</guid>
      <description>&lt;p&gt;Manual Testing:&lt;/p&gt;

&lt;p&gt;Manual testing is a software testing where testers manually test the software or application quality. Testers interact with the system like how an end user would do to identify bugs, defects, and issues in the software that create friction in user experience. It is great for small-scale testing and even for large-scale testing where there are thousands and millions of items and features to test, manual testing is still needed to some extent.  &lt;/p&gt;

&lt;p&gt;During the software development lifecycle, when the application is still in build process, automation testing may not be practical or detailed enough. In such cases, manual testing is incredibly valuable as it offers a perspective that can only come from a human tester. This approach is especially useful for evaluating user interface (UI), user experience (UX), and overall software functionality from an end-user's viewpoint.&lt;br&gt;
Mastering manual testing is crucial for both experienced professionals and beginners to ensure that application functions correctly and provides a seamless user experience.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Exploratory testing&lt;/li&gt;
&lt;li&gt;Ad-hoc testing&lt;/li&gt;
&lt;li&gt;Usability testing&lt;/li&gt;
&lt;li&gt;Functional Testing&lt;/li&gt;
&lt;li&gt;Non-functional Testing&lt;/li&gt;
&lt;li&gt;Unit Testing&lt;/li&gt;
&lt;li&gt;UI Testing&lt;/li&gt;
&lt;li&gt;Integration Testing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Manual testing process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding the requirements specifications.&lt;/li&gt;
&lt;li&gt;Test plan development.&lt;/li&gt;
&lt;li&gt;Test scenarios and case creation.&lt;/li&gt;
&lt;li&gt;Setting up the test environment.&lt;/li&gt;
&lt;li&gt;Executing test cases.&lt;/li&gt;
&lt;li&gt;Logging defects.&lt;/li&gt;
&lt;li&gt;Analysing results and reporting.&lt;/li&gt;
&lt;li&gt;Retesting and Regression testing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Advantages of manual testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Human insight and intuition&lt;br&gt;
Testers can use their experience and intuition to explore and evaluate the software. This human touch is beneficial in comprehending the user experience, pinpointing UI/UX issues, and providing feedback on the subjective aspects of the software, such as its appearance and feel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexibility and adaptability&lt;br&gt;
Manual testing can be done in early stages of development, so testers can make a quick changes in their testing approach as and when the software evolves. Testers can easily adapt their test cases and approaches if there is any change in code or application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cost-effectiveness for small-scale projects&lt;br&gt;
Manual testing can be more cost-effective for smaller projects or those with limited budgets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-world application&lt;br&gt;
In mobile application testing it is necessary to make sure the feel of the application, UI, gesture controls, and device-specific features are best evaluated manually.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Limitations of manual testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Time consumption and resource intensity&lt;br&gt;
Manual testing can be significantly more time-consuming than automated testing, especially for large and complex applications. It requires more human resources, and the time taken to execute test cases manually can lead to longer development cycles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Limitations in handling complex or large-scale testing scenarios&lt;br&gt;
When dealing with complex or large-scale applications, manual testing may not be effective as testing every possible scenario or combination is infeasible, leading to gaps in test coverage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Potential for human error&lt;br&gt;
Given the repetitive and sometimes monotonous nature of manual testing, there is a higher risk of human error. Testers might overlook bugs or inconsistencies, especially when dealing with extensive testing scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Less effective in regression or performance testing&lt;br&gt;
There are better approaches than manual testing for situations requiring regression testing performance testing. In these cases, automated testing is often more efficient and reliable.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples to Highlight importance of Manual Testing:&lt;/p&gt;

&lt;p&gt;Example 1: In exploratory testing, testers should explore and interact with the application deeply before deep diving into the details and it makes uncover bugs that they don't even know of in the first place. It also makes the tester to know more about the application in detail. This knowledge will help them to create more efficient test cases.&lt;/p&gt;

&lt;p&gt;Example 2: Initial requirement of the project can be very simple: to test the login functionality if it accepts valid username and password, but it may change in between to includes password strength verification. When doing the manual testing, testers only have to type in several combinations of passwords that meet and do not meet the password strength criteria to see how the system responds.&lt;/p&gt;

&lt;p&gt;Example 3:  If we take an application like Whatsapp, it is necessary for tester to make sure the application is very handy to use, since in real world user will handle the application manually.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Functional and Non-Functional Testing</title>
      <dc:creator>Kazhindhi Ezhumalai</dc:creator>
      <pubDate>Mon, 13 May 2024 13:46:21 +0000</pubDate>
      <link>https://dev.to/kazhindhi/functional-and-non-functional-testing-15k9</link>
      <guid>https://dev.to/kazhindhi/functional-and-non-functional-testing-15k9</guid>
      <description>&lt;p&gt;Functional Testing:&lt;/p&gt;

&lt;p&gt;Functional testing verifies the system against the functional requirements and specifications. Functional testing verifies each function of the software/system to meet its functional requirements. It test the features and functionalities of the software, such as input/output, error handling, and user interface. Each functionality of the software application is tested by providing appropriate test input, expecting the output and comparing the actual output with the expected output.&lt;br&gt;
Functional testing test Mainline functions, Basic Usability, Basic Accessibility, Error Conditions.&lt;/p&gt;

&lt;p&gt;For example, if we take Amazon application we would check whether it can perform basic operations like adding the items to cart, checkout, adding address, payment etc.. correctly or not. Also, we would check if the user interface is user-friendly, like is it easy to search for the item, whether categories button works properly or not etc..&lt;/p&gt;

&lt;p&gt;Few more verification that functional testing perform are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether users can easily log into the application or not with the correct credentials?&lt;/li&gt;
&lt;li&gt;When a user clicks “Buy Now”, does the UI take them directly to the next required page?&lt;/li&gt;
&lt;li&gt;If a user enters special characters in a field where they are not allowed, does the system throw up an error message and refuse to proceed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are many types of functional testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit testing&lt;/li&gt;
&lt;li&gt;Integration testing&lt;/li&gt;
&lt;li&gt;User acceptance testing&lt;/li&gt;
&lt;li&gt;Closed-box testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Non-Functional testing:&lt;/p&gt;

&lt;p&gt;Non-functional testing is performed to verify the non-functional requirements of the application. It test the readiness of a system as per non-functional parameters. Non-functional testing assesses application properties that contribute to the end-user experience, like performance, stability, security, efficiency, usability, reliability, and compatibility. A fault in these will break the user experience. It make sure that the application meets the quality standards and performs well under different conditions/loads. It reduces the risk of bugs emerging in production when software is actually used by end-users. And simplifies the mechanisms related to installation, configuration, management and monitoring the software. &lt;/p&gt;

&lt;p&gt;There are some special automated tools are used for Non-functional testing like LoadRunner, JMeter etc.&lt;/p&gt;

&lt;p&gt;For example, In Amazon app there are millions of user handling the application at the same time, so it would check whether it can handle many concurrent users without slowing down or crashing. Also, it checks if the application is secure from potential cyber threats like hackers or viruses. And it checks the accessibility of the applications. Also, Amazon can be used in various languages now, so as a Non-functional tester we should make sure it is easy for people to use the app in their comfortable language.&lt;/p&gt;

&lt;p&gt;There are many types of non-functional tests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance testing&lt;/li&gt;
&lt;li&gt;Load testing&lt;/li&gt;
&lt;li&gt;Usability testing&lt;/li&gt;
&lt;li&gt;Security testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Functional and Non-Functional testing Comparison:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional testing verifies the operations and actions of an application while the Non-Functional testing verifies the behaviour of an application.&lt;/li&gt;
&lt;li&gt;Functional testing can be done manually whereas Non Functional testing is hard to perform manually.&lt;/li&gt;
&lt;li&gt;Functional describes what the product does whereas Non Functional describes how the product works.&lt;/li&gt;
&lt;li&gt;Functional testing tests whether the actual result is working according to the expected result whereas Non-Function testing checks the response time, and speed of the software under specific conditions.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Software Testing Techniques</title>
      <dc:creator>Kazhindhi Ezhumalai</dc:creator>
      <pubDate>Mon, 13 May 2024 10:42:59 +0000</pubDate>
      <link>https://dev.to/kazhindhi/software-testing-techniques-3684</link>
      <guid>https://dev.to/kazhindhi/software-testing-techniques-3684</guid>
      <description>&lt;p&gt;Boundary Value Analysis:&lt;/p&gt;

&lt;p&gt;Boundary value analysis is a type of functional testing, when you have an input domain, you need to check that it accepts valid data and sends error messages when it receives invalid data. Boundary analysis testing helps verify that functionality in an efficient way by building only the test cases required for comprehensive testing.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Better software quality&lt;/li&gt;
&lt;li&gt;Increased test coverage&lt;/li&gt;
&lt;li&gt;Early defect detection&lt;/li&gt;
&lt;li&gt;Efficiency&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Narrow scope, Simplistic&lt;/li&gt;
&lt;li&gt;Assumptions&lt;/li&gt;
&lt;li&gt;Error&lt;/li&gt;
&lt;li&gt;Test case explosion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
We have a box where the user can enter their birth year.&lt;br&gt;
Boundary values are:&lt;br&gt;
Minimum year = 1930&lt;br&gt;
Maximum year = 2024&lt;/p&gt;

&lt;p&gt;There are a total of six test cases:&lt;/p&gt;

&lt;p&gt;1929, 1930, and 1931, which are below minimum, minimum, and above minimum, respectively&lt;br&gt;
2023, 2024, and 2025, which are below the maximum, maximum, and above the maximum, respectively.&lt;/p&gt;

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

&lt;p&gt;Decision Table Testing is a behaviour-based technique, used where different combinations of test input conditions result in different outcomes. When a system has complex business rules, then the decision table testing technique helps in identifying the correct test cases. As a result, it helps us to validate if the application/system can handle all the possible combinations of input data. The Decision Tables consists of ‘Input’ and ‘Outputs’ of a system. &lt;/p&gt;

&lt;p&gt;Once a decision table is made with all the combinations of condition and actions, the table is shrunk by deleting the following columns, to ensure that the table does not become vast.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Impossible combinations of actions and conditions&lt;/li&gt;
&lt;li&gt;Possible, but infeasible combinations&lt;/li&gt;
&lt;li&gt;Combinations that do not affect the outcome.&lt;/li&gt;
&lt;li&gt;The minimum coverage for a decision table is at least one test case per a decision rule.&lt;/li&gt;
&lt;li&gt;Coverage percentage = The number of decision rules tested by at least one test case.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;&lt;br&gt;
Consider a ‘Login’ Page Functionality.&lt;br&gt;
Rules are:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If ID &amp;amp; Password is correct, user should be able to login successfully.&lt;/li&gt;
&lt;li&gt;If any or both of the ID &amp;amp; Password are incorrect /blank. In such cases, it should show ‘Invalid Credentials’ message.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here there are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2 Inputs – UserID, Password&lt;/li&gt;
&lt;li&gt;2 Outputs – Login Successfully, Error showing ‘Invalid Credentials’ &lt;/li&gt;
&lt;li&gt;3 Options — Blank, Valid, Invalid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, the total number of test cases are as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Combination 1: Blank and invalid, Blank and Valid, Blank and Blank vice versa.&lt;/li&gt;
&lt;li&gt;Combination 2: Valid and Invalid, Invalid and Invalid vice versa.&lt;/li&gt;
&lt;li&gt;Combination 3: Valid and Valid.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, as part of Decision Table Testing from each combination we will consider one possible combination.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Helps to identify all the important combinations of conditions.&lt;/li&gt;
&lt;li&gt;Identification of any gaps in the requirements is possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Limitations:        &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is challenging when there are no well-designed requirements.&lt;/li&gt;
&lt;li&gt;The tables become more complex as the number of input values increase.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use Case Testing:&lt;/p&gt;

&lt;p&gt;Use Case Testing is a software testing technique that helps to identify test cases that cover entire system on a transaction by transaction basis from start to end. Use cases are made on the basis of user actions and the response of the software application to those user actions. Use case testing helps to identify gaps in software application that might not be found by testing individual software components.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Login functionality (with email and password) of a Web Application:&lt;br&gt;
Step 1: User enters email and password.&lt;br&gt;
Step 2: System will validate the password.&lt;br&gt;
Step 3: If password is correct, the access will be granted.&lt;/p&gt;

&lt;p&gt;There can be an extension of this use case.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If password is not valid, system will display a message and ask for re-try.&lt;/li&gt;
&lt;li&gt;If Password, not valid for n number of times system will ban the IP address.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;LCSAJ stands for Linear Code Sequence and Jump. LCSAJ testing is used to determine the code coverage, i.e., what percentage of the code is executed with the existing test cases. It helps in designing new test cases, which can increase the coverage of the code under test. Once the code coverage reaches a certain level, we can stop the testing. Hence, LCSAJ methodology also helps in determining when to stop the testing of a software.&lt;/p&gt;

&lt;p&gt;A single LCSAJ has the following three components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start of the segment&lt;/li&gt;
&lt;li&gt;End of the segment&lt;/li&gt;
&lt;li&gt;A specific target line&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Software Testing</title>
      <dc:creator>Kazhindhi Ezhumalai</dc:creator>
      <pubDate>Tue, 30 Apr 2024 12:51:35 +0000</pubDate>
      <link>https://dev.to/kazhindhi/software-testing-5a8a</link>
      <guid>https://dev.to/kazhindhi/software-testing-5a8a</guid>
      <description>&lt;p&gt;What is Software testing?&lt;/p&gt;

&lt;p&gt;Software testing is the process of testing the software products/application from different aspects to make sure the product/application is bug free and making it easy to use for the end user/client.&lt;br&gt;
it’s an integral part of planning and development.&lt;br&gt;
What we need to know about Software Testing?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Software testing is to check whether the product/application perform as per requirement and making it easy to use for end user/client.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It will remove all the bugs or minimize the bugs to make sure the application functions properly as expected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It makes sure there is no external threats for the application.&lt;br&gt;
There are two types of testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Functional Testing:&lt;/p&gt;

&lt;p&gt;Functional testing is to validate the projects usefulness regards to its specification. And test the functionality of the application.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Unit Testing - It test the individual unit of the code and make sure each component works. Tester can work along with developer and test the code as and when a unit of code is created. Or the developer themselves will do the unit testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API Testing – It test the link between the application and the external source.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User interface Testing (UI) – It test the front-end application like screen, buttons etc whether it is working perfectly or not.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Testing – It test the components/units together as a group or modules, to check if components work together as a group.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regression Testing – It re-test the application to make sure it works perfectly if there is an update in the software (version update, code change etc…) along with new update. According to the project size the re-testing will happen in a high level or in-depth.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Non-Functional testing/Performance testing:&lt;/p&gt;

&lt;p&gt;Non-Functional testing is to test the performance of the project. And make the project ready to use in the market.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Volume Testing – It test how much volume of data that application can handle. Because in real time any application should handle loads of data and this volume test will make sure that the application is ready to handle that traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security Testing – It test the authentication, authorization and confidentiality of the data in the application. It makes sure there is no threat for the application. It is based on cyber-security.&lt;br&gt;
What is the relevance of Software Testing?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It fixes the code before the project is released, which improves the quality of the project. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Software testing can be conducted during the development phase itself so that defects will be identified in development process which makes it easier and less expensive to fix, also reduces the risk associated with it. Or it can be tested once the entire product/application is built starting with UI testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This testing will be carried out until all the aspect is tested and the application is bugs free and product is successfully released.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two methods to do software testing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Manual Testing – Testing will be carried out manually by the tester to check the application features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automation Testing. – Testing will be carried out by automation tools, here tester need to know about the automation tools to perform the testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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