Skip to content

Instantly share code, notes, and snippets.

View mfaisalkhatri's full-sized avatar
🎯
Focusing

Mohammad Faisal Khatri mfaisalkhatri

🎯
Focusing
View GitHub Profile
Criteria Sanity Testing Regression testing
Goal The goal of sanity testing is to check that the application is stable enough to proceed with further testing of the entire application. The goal of regression testing is to ensure that the new code changes does not break the existing functionality of the software.
Scope The scope of sanity testing is to verify only the specific functionality, verifying the bug fix or configuration or environment related changes. Regression testing covers overall software or critical features of the software to verify everything is working as expected.
When Performed? Sanity testing is performed after minor bug fixes, enhancements or before getting into comprehensive testing. Regression testing is performed after a new feature is added to the software or major rework is done.
Test Cases Used Basic functional test cases like
Criteria Smoke Testing Regression testing
Goal The goal of smoke testing is to uncover the critical or blocker issues in the application using the test cases that cover important functionalities of the software. The goal of regression testing is to ensure that the new code changes does not break the existing functionality of the software.
Scope Smoke testing verifies the stability of the software by testing critical user journeys of the software. Regression testing covers overall software features to verify if everything is working as expected.
When Performed? Smoke testing should be performed after a new build is released after major code changes. Regression testing is performed after a new feature is added to the software or major rework is done.
Test Cases Used Test Cases related to critical functionalities of the software are used in
@mfaisalkhatri
mfaisalkhatri / regression_retesting_compare.md
Last active July 26, 2025 15:10
Regression Testing Vs Retesting
Criteria Regression Testing Retesting
Goal The goal of regression testing is to make sure that the new code changes does not break the existing functionality of the software. The goal of retesting is to make sure that the reported bug has been fixed after code changes.
Scope Regression testing covers overall software or critical features of the software to check if everything is working as expected. Retesting covers only the specific failed test case or scenario.
When Performed? Regression testing is performed after a new feature is added to the software or major rework is done. Retesting is performed after the failed test cases are fixed.
Test Cases Regression testing considers the passed as well as failed test cases to check the overall stability of the software. Retesting covers only the specific failed test cases/scenarios.
Example Adding new option to si
Criteria Smoke Testing Sanity Testing
Goal The goal of smoke testing is to uncover the critical or blocker issues in the application using the test cases that cover important functionalities of the application. The goal of sanity testing is to check that the application is stable enough to proceed with further testing of the entire application.
Scope The scope of smoke testing is to check the stability of the application by testing critical user journeys of the software. The scope of sanity testing is to check only the specific functionality, verifying the bug fix or configuration or environment related changes.
When Performed? Smoke testing should be performed after a new build is released after major code changes. Sanity testing is performed after minor bug fixes, enhancements or before getting into comprehensive testing.
Test Cases Test Ca
Criteria JUnit 4 JUnit 5
Architecture Everything was packaged together in a single JAR file. Divided into 3 sub-projects:
- JUnit Platform
- JUnit Jupiter
- JUnit Vintage
JDK Version Requirement Requires Java 5 or higher Requires Java 8 or higher
3rd Party Integration No 3rd party integration support for plugins and IDEs Dedic
Feature Description Annotations/Methods
Test Suites Test Suites are basically a group of tests, for example, Smoke, Sanity or a group of tests related to a particular feature. JUnit allows to create test suites that could be run together. For using Test Suites, we need to add a JUnit Platform Suite dependency and use the follo
@mfaisalkhatri
mfaisalkhatri / testng-saucedemo.xml
Created December 6, 2022 06:41
Example testng xml file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Sauce Demo Website Tests" parallel="tests" thread-count="4" verbose="2">
<test name="selenium 4 Tests with Chrome Browser">
<parameter name="browser" value="chrome"/>
<classes>
<class name="io.github.mfaisalkhatri.tests.saucedemo.SauceDemoTests">
<methods>
<include name="loginSauceDemoTest"/>
<include name="logOutSauceDemoTest"/>
@mfaisalkhatri
mfaisalkhatri / testng.xml
Created December 6, 2022 06:23
Using suite-files tag in testng xml file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Selenium 4 POC Tests ">
<suite-files>
<suite-file path="testng-saucedemo.xml"/>
<suite-file path="testng-automationpractice.xml"/>
<suite-file path="testng-theinternet.xml"/>
<suite-file path="testng-juice-shop.xml"/>
<suite-file path="testng-lambdatestecommerce.xml"/>
<suite-file path="testng-seleniumgrid-theinternet.xml"/>
@mfaisalkhatri
mfaisalkhatri / AppiumTest.java
Created October 15, 2022 06:03
Appium Tests
public class AppiumTest extends BaseTest{
@Test
public void appiumServerTest () {
System.out.println ("Server and Android Driver started successfully!!");
}
}
@mfaisalkhatri
mfaisalkhatri / BaseTest.java
Created October 15, 2022 05:59
Base Test class
import static io.github.mfaisalkhatri.drivers.DriverManager.createAndroidDriver;
import static io.github.mfaisalkhatri.drivers.DriverManager.quitSession;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
public class BaseTest {
@BeforeClass
public void testSetup() {