InfyOm Blog

Payments gateways are very useful components of any e-commerce store. One of the popular payment gateways is Stripe. it's becoming more popular nowadays. 

Stripe's simple definition is : 

We bring together everything that’s required to build websites and apps that accept payments and send payouts globally. Stripe’s products power payments for online and in-person retailers, subscription businesses, software platforms and marketplaces, and everything in between.  ~ Stripe

To begin this laravel tutorial, I hope you already have fresh laravel repo.

Stripe Configuration with Laravel

Run the following command to install stripe :

composer require stripe/stripe-php
if you don't have a Stripe account, you'll want to set that up and add your API keys. Add the following to your .env file.


Publish Migrations Files From Stripe

php artisan vendor:publish --tag="cashier-migrations" 

And Run migrations by hitting the following command

php artisan migrate 

Setup Stripe Controller

Now create a stripe controller by hitting the following command:

php artisan make:controller StripeController
namespace App\Http\Controllers;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Stripe\Checkout\Session;
use Stripe\Exception\ApiErrorException;
 * Class FeaturedCompanySubscriptionController
class StripeControlle extends AppBaseController
    public function createSession(Request $request)
        $session = Session::create([
            'payment_method_types' => ['card'],
            'customer_email'       => $userEmail,
            'line_items'           => [
                    'price_data'  => [
                        'product_data' => [
                            'name' => 'Make '.$company->user->first_name.' as featured Company',
                        'unit_amount'  => 100 * 100,
                        'currency'     => 'USD',
                    'quantity'    => 1,
                    'description' => '',
            'client_reference_id'  => '1234',
            'mode'                 => 'payment',
            'success_url'          => url('payment-success').'?session_id={CHECKOUT_SESSION_ID}',
            'cancel_url'           => url('failed-payment?error=payment_cancelled'),
        $result = [
            'sessionId' => $session['id'],
        return $this->sendResponse($result, 'Session created successfully.');
    public function paymentSuccess(Request $request)
        $sessionId = $request->get('session_id');
    public function handleFailedPayment()

Define Routes

    Route::post('stripe-charge', 'StripeController@createSession');
    Route::get('payment-success', 'StripeController@paymentSuccess');
    Route::get('failed-payment',  'StripeController@handleFailedPayment');

Setup From View file

Here we are going to create stripe session from backend and redirect to stripe checkout page once we will receive the sessionId from backend.
Assume that makePaymentURL is something like "APP_URL/stripe-charge".
Now let's say when you hit the submit form of stripe it will call MakePaymentURL and that URL returns your session ID which we will use to redirect to the stripe checkout page. 

 $(document).on('click', '#makePayment', function () {
        $.post(makePaymentURL, payloadData).done((result) => {
            let sessionId =;
                sessionId: sessionId,
            }).then(function (result) {
                $(this).html('Make Featured').removeClass('disabled');
        }).catch(error => {
            $(this).html('Make Featured').removeClass('disabled');
That's it, after entering proper details into stripe you will get a success callback to a related route, where you can perform related actions. 
Invalid date2 minutesuserVishal Ribdiya


We are adding a sitemap in our all site pages for making sure search engines (such as Google) can find and crawl them all. 

So, I will show you how to set a sitemap on the Gatsby site.

To generate an XML sitemap, you will use the gatsby-plugin-sitemap package.

Install the package by running the following command: npm install gatsby-plugin-sitemap

How to configure

Once the installation is complete, you can now add this plugin to your gatsby-config.js, like so:

Configure siteUrl and add this {resolve: `gatsby-plugin-sitemap`} into the plugins array. code looks like

module.exports = {
  siteMetadata: {
    title: `InfyOm Technologies`,
    description: `InfyOm Technologies`,
    keyword: `InfyOm Technologies`,
    author: `@gatsbyjs`,
    siteUrl: ``
  flags: {
  plugins: [
    {resolve: `gatsby-plugin-sitemap`},

Above is the minimal configuration required to have it work. By default, the generated sitemap will include all of your site’s pages.
you can exclude a path using the exclude option. you need to configure it

  • output (string) The file path and name. Defaults to /sitemap.xml.
  • exclude (array of strings) An array of paths to exclude from the sitemap.
code looks like,

module.exports = {
  siteMetadata: {
    title: `InfyOm Technologies`,
    description: `InfyOm Technologies`,
    keyword: `InfyOm Technologies`,
    author: `@gatsbyjs`,
    siteUrl: ``
  flags: {
  plugins: [
	resolve: `gatsby-plugin-sitemap`,
    options: {
      output: `/some-other-sitemap.xml`,
        exclude: [`/category/*`, `/path/to/page`],
NOTE: This plugin only generates an output when run in production mode! To test your sitemap, run: gatsby build && gatsby serve

now we are done and open sitemap using your domain. for ex.

December 17, 20201 minuteauthorShailesh Ladumor

Software Testing Life Cycle (STLC) identifies the test activities to perform and when to perform those test activities.  While testing differs between organizations, there is a test lifecycle.

 There are mainly eight phase of STLC

1. Test Planning And Control
3. Test Analysis
4. Test Case Development
5. Test Environment Setup
6. Test Execution
7. Exit Criteria Evaluation And Reporting
8. Test Closure

Image 0.1.jpg 127.68 KB
Requirement Analysis :-

The entry criteria for this phase is the BRS document (Business Requirements Specification).  During this phase, the test team studies and analyzes the requirements from a test perspective.  

This phase helps to identify whether the requirements are likely or not.  If any requirement is not verifiable, the test team can communicate with various stakeholders (customer, business analyst, technical leaders, system architects, etc.) during this phase so that the mitigation strategy can be planned.  
Entry criteria: BRS (Business Requirement Specification) Results
Deliverables: list of all verifiable requirements, automation feasibility report (if applicable) 

 Test Planning And Control :-

Test planning is the first step in the testing process.  At this stage typically Test Manager  Test Lead involves determining the effort and cost estimates for the entire project.  The preparation of the Test Plan will be made on the basis of the requirements' analysis.  Activities such as resource planning, determination of roles and responsibilities, selection of tools (if automation), training requirements, etc., carried out at this stage.

The deliverables of this phase are Test Plan & Effort estimation documents.

Entry Criteria: Requirements Documents
Deliverables: Test Strategy, Test Plan, and Test Effort estimation document.

Test Analysis :-

Test Analysis Is the process of analyzing the test basis (all documents from which the requirements of a component or system can be inferred) and defining test objectives. It covers WHAT is to be tested in the form of test conditions and can start as soon as the basis for testing is established for each test level.

Following Is The Document Which Is Use In Test Analysis:-

  • CRS (Customer Requirement Specification)
  • SRS (Software Requirement Specification)
  • BRS (Business Requirement Specification)
  • Functional Design Documents

Test Case Development :-

This phase that begins after the test planning and analysis phase is completed.  From test analysis we can understand how to test and what is the test condition.  So easily understand and develop the test case.  In This phase evaluator creates the manual / automation test scripts.  The test data is prepared in this phase the data that is used to find the defect.  The Requirement Traceability Matrix (RTM) is also ready, Because the evaluator understands tracking the test case for the particular requirement.
Image 1.png 236.89 KB
Activities in the Test Case Development Phase

Following are the three activities that are carried out in the Test Case Development phase 

 Test Scenarios Identification

1. Scenarios ease the testing and evaluation of a complex system. The following strategies help in creating good scenarios −
2. Enumerate potential users, their actions, and their goals.  
3. Evaluate Users who have a hacker mindset and listed possible scenarios for abuse of the system.
4.   List System events and how the system handles these requests. 
5.  List Benefits and create comprehensive tasks to verify. 
6.  Read about similar systems and their behavior.  
7. Studying Complaints about competitors' products and their predecessors. 
 Test Cases Writing

A test case is a document, which includes test data, preconditions, expected results and post conditions, developed for a particular test case in order to verify compliance with a specific requirement. 
Test Case serves as a starting point for running the test.  After a set of input values ​​is applied;  the application is final and leaves the system at an end point also known as a post execution condition. 

Test Data Preparation

Test Data is used to run the tests for test ware.  Test Data must be precise and complete in order to detect the shortcomings.  To achieve these three goals, follow a step-by-step approach as given below - 

1. Identify resources or test requirements
2.  Identify conditions / functionality to be tested
3.  Set priority test conditions
4.  Select conditions to test
5.  Determine expected result of test case processing 
6. Create Test cases
7. Document test 
8. conditions Conduct test 
9. Verify and correct test cases based on modifications 

 Activity Block Diagram

The following diagram shows the different activities that form part of Test Case Development.

image 2.png 359.61 KB
 Test Environment Setup :-

A test environment is a software and hardware configuration that allows test teams to run test cases.  In other words, it supports running tests with configured hardware, software, and network.  Test the test bed or environment is configured as needed Application Under Test. On some occasions, the test may be the combination of the test environment and the test data that  it operates.  Setting a good test environment guarantees successful software testing.  Any Loopholes in this process can result in additional costs and time for the customer. 

 Process of Software Test environment setup

Tests are limited to what can be tested and what not should be tested.
 Following people are involved in test environment setup

  •  System Admins,
  • Developers
  • Testers
  • Sometimes users or techies with an affinity for testing.
The test environment requires setting up of various number of distinct areas like,

Setup of Test Server

Test Every may not be performed on a local machine.  It may need to create a test server that can support applications. 
For example, Fedora configuration for PHP, Java-based applications with or without mail server, cron configuration, Java-based applications and so on.


Network set up as per the test requirement. It includes,

  • Internet setup
  •  LAN Wi-Fi setup
  • Private network setup

It ensures that the congestion that occurs during testing doesn't affect other members. (Developers, designers, content writers, etc.)

Test PC setup

For web testing, you may need to set up different browsers for different testers. For desktop applications, you need various types of OS for different testers PCs.

For example, windows of phone app testing may require.

  • Visual Studio installation
  •  Windows phone emulator
  • Alternatively, assigning a Windows phone to the tester.

Bug Reporting

Bug reporting tools should be provided to testers.

Creating Test Data for the Test Environment

Many companies use a separate test environment to test the software product. The common approach used is to copy production data to test. This helps the tester, to detect the same issues as a live production server, without corrupting the production data.

The approach for copying production data to test data includes,

  •  Set up production jobs to copy the data to a common test environment
  • All PII (Personally Identifiable Information) is modified along with other sensitive data. The PII is replaced with logically correct, but non-personal data.
  • Remove data that is irrelevant to your test.

Testers or developers can copy this to their individual test environment. They can modify it as per their requirement.

Privacy is the main issue in copy production data. To overcome privacy issues you should look into obfuscated and anonymized test data.

For Anonymization of data two approaches can be used,

  •  Blacklist: In this approach, all the data fields are left unchanged. Except those fields specified by the users.
  • Whitelist: By default, this approach, anonymizes all data fields. Except for a list of fields which are allowed to be copied. A whitelisted field implies that it is okay to copy the data as it is and anonymization is not required.

Also, if you are using production data, you need to be smart about how to source data. Querying the database using SQL script is an effective approach.
Every test may not be executed on a local machine. It may need establishing a test server, which can support applications.
For example, Fedora set up for PHP, Java-based applications with or without mail servers, cron set up, Java-based applications, etc.

Network set up as per the test requirement. It includes,

  •  Internet setup
  • LAN Wi-Fi setup
  • Private network setup

It ensures that the congestion that occurs during testing doesn't affect other members. (Developers, designers, content writers, etc.)

Test Execution :-

After The test plan, the development of the test case, and the configuration of the test environment are complete, and then the execution phase of the test is executed.

In This manual test / automation script phase is executed.  If any defect is detected during the execution of the test case, it will be reported to the developer through the bug tracking system. 
If any test case result is a failure than this particular test case marked as fail.

If any test case result is matched to the expected result then a particular test case marked as Pass.

If all modules  dependent are tested and any fault is detected, the particular module test case is marked as blocked, first corrects the main module fault, and then runs the associated module test case.  For example, B the module depends on the module A.

If any fault found in the module A, the test case of the module B is not executed.  First correct the fault of the module A then rerun the module A test case, If module A result of the test case is Pass then run the module B execution of the test case.

Blocked Test noticed cases are executed after the fault is corrected by the developer.

Image 3.png 299.79 KB
 Exit Criteria Evaluation And Reporting :-

In this phase if the exit criteria match the test result.  In Termination Criteria There is one condition that is predefined.  At this stage The test summary report is generated.  A Document containing a summary of testing activities and final test results is called Test Summary Report. 
Test Closure :-

The final stage where we prepare Test Closure Report, Test Metrics.
The testing team will be called out for a meeting to evaluate cycle completion criteria based on Test coverage, Quality, Time, Cost, Software, Business objectives.

The test team analyses the test artifacts (such as Test cases, defect reports, etc.,) to identify strategies that have to be implemented in the future, which will help to remove process bottlenecks in the upcoming projects.

Test metrics and Test closure report will be prepared based on the above criteria.

Entry Criteria:  Test Case Execution report (make sure there are no high severity defects opened), Defect report
Deliverables:  Test Closure report, Test metrics

December 15, 20208 minutesauthorBhumi Khimani
What is a recycler view?

  • RecyclerView is used to show the data in the form of a scrollable list. It is a ViewGroup to display a large set of data. For each item in a large dataset, it displays a View. So RecyclerView is very useful no use the scrollable list.

Why use RecyclerView in Android?

  • One reason is so we can create a List through the LinearLayout and the orientation can be vertical. For example, in the Facebook application, all parameters will be the same as share, comment, like, etc. Now if we will take LinearLayout, all the views will create separate views in the memory.
Add dependencies :

dependencies {  

    implementation "androidx.recyclerview:recyclerview:1.1.0"


  • Androidx in recycler view dependencies:  implementation "androidx.recyclerview:recyclerview:1.1.0"
  • Your android studio, not androidx:  implementation ''

Now we will add the RecyclerView layout in our activity_main.xml file

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android=""  
    android:layout_height="match_parent" />  

We create a layout file named row_layout.xml.

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android=""  
    android:layout_height="match_parent" />  

We create a layout file named row_layout.xml

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android=""  
        android:src="@color/colorPrimaryDark" />  
        android:textSize="30sp" />  

Create a Model Class :

public class Data {  
    public String name;  
    public String getName() {  
        return name;  
    public void setName(String name) {  = name;  
    public int getImageId() {  
        return imageId;  
    public void setImageId(int imageId) {  
        this.imageId = imageId;  
    public int imageId;  
    Data(String name, int imageId) {  = name;  
        this.imageId = imageId;  


public class RecyclerView_Adapter extends RecyclerView.Adapter<View_Holder> {  
    List<Data> list = Collections.emptyList();  
    Context context;  
    public RecyclerView_Adapter(List<Data> data, Application application) {  
        this.list = data;  
        this.context = application;  
    public View_Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {  
        //Inflate the layout, initialize the View Holder  
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_layout, parent, false);  
        View_Holder holder = new View_Holder(v);  
        return holder;  
    public void onBindViewHolder(@NonNull View_Holder holder, int position) {  
        //Use the provided View Holder on the onCreateViewHolder method to populate the current row on the RecyclerView ;  
    public int getItemCount() {  
        return list.size();  

  • onCreateViewHolder()- It inflates the row layout and initializes the view holder. It handles findViewById) (methods, find views once, and recycle them so that repetitive calls are avoided.
  • onBindViewHolder()- It uses the onCreateViewHolder() View Holder to fill in the current RecyclerView row with data.
  • getItemCount()- This method returns the collection size which contains the items that we wish to show.
The code file of the ViewHolder Java class is listed below.

import android.view.View;  
import android.widget.ImageView;  
import android.widget.TextView;  
import androidx.recyclerview.widget.RecyclerView;  
public class View_Holder extends RecyclerView.ViewHolder {  
    TextView name;  
    ImageView imageView;  
    View_Holder(View itemView) {  
        name = (TextView) itemView.findViewById(;  
        imageView = (ImageView) itemView.findViewById(;  
} class file:

 public class MainActivity extends AppCompatActivity {  
    protected void onCreate(Bundle savedInstanceState) {  
        List<Data> data = fill_with_data();  
        RecyclerView recyclerView = (RecyclerView) findViewById(;  
        RecyclerView_Adapter adapter = new RecyclerView_Adapter(data, getApplication());  
        recyclerView.setLayoutManager(new LinearLayoutManager(this));  
    public List<Data> fill_with_data() {  
        List<Data> data = new ArrayList<>();  
        data.add(new Data("Android", R.drawable.c));  
        data.add(new Data("Kotlin",;  
		data.add(new Data("Kotlin", R.drawable.ccc));  
        return data; 

December 15, 20203 minutesauthorPankaj Valani
As we discussed earlier that we cannot measure Employee Morale directly but we need to look at other organizational aspects. Let’s discuss which aspect we can use and how we can measure employee morale.

Measurement of Morale 
  • Observation 
  • Survey 
  • Periodic Interview
  • Attitude Measurement  
  • Opinion Analysis
  • Morale Indicators
    • Productivity
    • Absenteeism
    • Turnover
    • No. of accident
  • Use suggestion Box 


We can observe things like how employees are performing their role, their work attitude, and behavior at the workplace. These things can be done by superior by observing subordinates. However the observation method is not used frequently to measure Employee Morale as it has many demerits like overburden on employees, Superior may be bias etc.

We can use the Survey method to check morale levels in the organization. We can design  questions according to our purpose of measuring morale & Organizational Goals.

Periodic Interview
Management can ensure the efficiency of work by taking regular interviews in the organization. Management can do the job satisfaction survey to know the level of Morale in the organization.

Attitude Measurement 
The attitude survey is also known as the morale Survey. We can use the questionnaire or can take face-to-face personal interviews with employees. If the employee strength is high then we can use a random sampling method. We can design the question about their job, co-workers, Supervision, and Organization. But we need to pre-decide the questions & keep them in written documents. 

Opinion Analysis
We can do opinion analysis as well. We can ask for various quotations from employees regarding existing Policies, Strategies, Rules, and Regulations in the organization. 

Morale Indicators
We can use morale indicators like Productivity, Absenteeism, Turnover. No. of Accident etc. low Productivity, high Absenteeism, and high Turnover are signs of low morale in the organization. On the other hand, the high Productivity, low Absenteeism, low Turnover rate are the sign of high Employee Morale in organization. 

Use Suggestion Box
We can use a Suggestion Box where the employees can give their Inputs related to their work and workplace. By doing this we came to know about the employees’ likes & dislikes.

Importance of High Morale-
We cannot underestimate morale at our workplace as we know that happy employees are more productive. Job satisfaction matters to keep the workforce happy. Happy employees bring success to organizations by their efficient work, loyalty, and commitment which has a direct impact on organizational growth and profitability.

Demerits of Low Employee Morale-
The low morale leads to many problems in the organization as the employees are not happy with their work. high turnover, absenteeism, unclear expectation from both side Employees as well as Employer, increase in grievances and complain, lack of peaceful industrial relation, increase accident rate, Increase in industrial disputes, etc. there all problem decreased the profitability, competency in market & Goodwill, so the workforce with low morale seems dangerous for the organization.

To pen down, we can say that we need to take care of our employees, make them happy and they will take care of our business. For this, we need to maintain high morale in our organization.

December 15, 20203 minutesauthorMariyam Bemat
Step 1: Selection of your Subject

select any selection tool for selection but select the Quick selection tool.
select your subject and press select and mask
1.PNG 951.63 KB
Step 2: Edit your Subject

  1. open property and select onion skin and transparency 50%
  2. refine edge brush tool and then refine edge
  3. Set contrasts 9%
  4. output setting on
  5. tick decontaminate colors amount 100%
  6. output to a new layer with layer mask then press OK
2.PNG 905.94 KB
Step 3: Crop Upper part of the subject

select layer mask and press ctrl + click for selection and new cut out the upper part to polygonal lasso tool. select perfectly then select layer and ctrl+j for duplicate layer

3.PNG 928.87 KB
Step 4: create an effect for Background

create Ctrl+G for group layer select the last layer and create color lookup effect.
then 3D lut file and select moonlight.3dl. and then Create a new effect black & white
Opacity set 50%

4.PNG 945.25 KB
Step 5: Create Effect for Main Subject

select the group layer and convert this layer to a Smart Object.
then create this layer duplicate. then create a color style to the top layer in linear Dodge(Add).
then go to the
5.PNG 946.37 KB

1.filter - blur - Gaussian blur Create radius - 5 for soft edges
2.Create a duplicate layer and double click on the smart filter and Create a radius of 100

6.PNG 765.61 KB
3.again Create a duplicate layer and double click on the smart filter and Create a radius of 250
4. again Create duplicate layer and double click on the smart filter and **Create a radius of 500

then add hue/saturation adjustment layer
and click on create clipping mask then click on colorize and increase the saturation to your perfect and choose a color

7.PNG 1.02 MB
Step 6: Create All effect in the subject

select main layer mask image and create effect curves.
and click on create effect curves and click on create clipping mask and curves per requirement select layer mask and select the brush tool. and set property
opacity 100%
flow 30%

8.PNG 994.62 KB
create duplicate hue/saturation effect layer and set this layer is bottom of the main object and select this layer and open property and click ok create a clipping mask.
and select the mask and make sure the foreground color is white.
and give shade to the object and you can also adjust the opacity.

Step 7: Add the sparkle and give effect

let's add sparkle and change the blending yo screen.

9.PNG 580.7 KB
then add a mask and convert to invert the layer and select brush tool.
set foreground color is white and creates an effect in the main object after creating effect open blending mode and create a level and click on create clipping mask and set property per requirement.
then open blending mode and select color lookup and set 3dlutfile to crisp_warm: look and set opacity as per requirement.
now finally ready to glow effect

10.png 473.57 KB
December 15, 20202 minutesauthorKishan Savaliya
Different Types Of Software Testing 

Given below is the list of some common types of Software Testing: 

Accessibility Testing:

The purpose of accessibility testing is to determine whether the software or application is accessible to people with disabilities or not.  Here disability means deaf, color-blind, mentally disabled, blind, elderly, and other disabled groups.  Various checks are performed, such as font size for the visually impaired, color and contrast for color blindness, etc. 

Ad-Hoc Testing:

The name itself suggests that this test will be conducted on an ad hoc basis, i.e. without reference to the test case and also without a plan or documentation for such type of test.  The aim of this test is to find the flaws and breaks the application is executed by executing any sequence of application or random functionality.  Ad hoc testing is an informal way of finding bugs and can be done by anyone on the project.  It is difficult to identify bugs without a test case, but sometimes it is possible that bugs found in ad hoc tests were not identified using existing test cases. 
Alpha Testing:

It is the most common type of test used in the software industry.  The objective of this test is to identify all possible problems or defects before launching it to the market or to the user.  Alpha Testing takes place at the end of the software development phase but before Beta Testing.  Still, minor design changes can be made as a result of such testing.  Alpha testing is done on the developer's site.  An internal virtual user environment can be created for this type of test.

API Testing:

API testing is done for the system, which has a collection of APIs that should be tested.  During the test, a test of the following things is examined: explore the boundary conditions and ensure that the test harness varies the parameters of the API calls in order to verify functionality and expose faults.  Parameters. Checks the API behavior that is considering external environment conditions such as files, peripheral devices, etc. Check the sequence of API calls and check if the APIs produce useful results from subsequent calls. 

Beta Testing:

Beta tests, also known as user tests, are carried out by the end users at the end user's location to verify the usability, functionality, compatibility and reliability tests to provide input on the design, functionality and usability of a product.  These inputs are not only critical to the success of the product, but also an investment in future products if the data collected is effectively managed. 

Boundary Testing:

Boundary value analysis is a type of black box or specification based testing technique in which tests are performed using the boundary values.


An exam has a pass boundary at 50 percent, merit at 75 percent and distinction at 85 percent. The Valid Boundary values for this scenario will be as follows:

49, 50 - for pass
74, 75 - for merit
84, 85 - for distinction

Boundary values are validated against both the valid boundaries and invalid boundaries.
The Invalid Boundary Cases for the above example can be given as follows:

0 - for lower limit boundary value
101 - for upper limit boundary value
Bottom-Up Integration Testing:

Each component at the lower hierarchy is tested individually and then the components that rely upon these components are tested.

Bottom-Up Integration - Flow Diagram 

The order of Integration by Bottom-down approach will be:


Top-Down Integration Testing:

Top-down integration testing is an integration testing technique used in order to simulate the behavior of the lower-level modules that are not yet integrated. Stubs are the modules that act as temporary replacement for a called module and give the same output as that of the actual product.
The replacement for the 'called' modules is known as 'Stubs' and is also used when the software needs to interact with an external system.
topdown.PNG 59.36 KB

The above diagrams clearly states that Modules 1, 2 and 3 are available for integration, whereas, below modules are still under development that cannot be integrated at this point of time. Hence, Stubs are used to test the modules. The order of Integration will be:

2,Stub 1
2,Stub 2
3,Stub 3
3,Stub 4

Unit Testing:

Unit testing, which is a testing method by which individual units are tested to determine if there are any issues on the part of the developer themselves.  It is concerned with the functional health of the independent units. 

The main aim is to isolate each unit of the system to identify, analyze and fix the defects.

Unit Testing - Advantages:

  • Reduces errors in the newly developed functions or reduces errors when changing the existing functionality. 
  •  Reduces test costs as errors are detected at a very early stage.
  •   Improves the design and allows for better code redesign.
  •   Unit tests also show the quality of the build when integrated into Build. 
Unit Testing Lifecycle: 

unit testing life cycle.PNG 136.36 KB
Unit Testing Techniques:

  • Black Box Testing - Using which the user interface, input and output are tested.
  • White Box Testing - used to test each one of those functions' behavior is tested.
  • Gray Box Testing - Used to execute tests, risks and assessment methods. 
System Testing:

System testing (ST) is a black box testing technique performed to assess the complete system's compliance with specified requirements.  In system testing, the functionalities of the system are tested from an end-to-end perspective.  System testing is generally carried out by a team that is independent of the development team to measure the quality of the system in an unbiased manner.  Includes functional and non-functional tests. 

Types of System Tests:


Sanity Testing:

Sanity testing, which is a software testing method that the testing team performs for some basic tests.  The goal of the core test is to perform it whenever a new test architecture is received.  Terms such as smoke test, build validation test, basic acceptance test, or health test are used interchangeably, however, each of them is used under a slightly different scenario,
The sanity test is usually unwritten, and helps to identify missing dependent functions.  It is used to determine if the app partition is still working after making a slight change.  
The general health test can be both narrow and profound.  A mind test is a narrow regression test that focuses on one or several domains of functions. 

Smoke Testing:

The smoke test is a testing technique that is inspired by the hardware test, which checks for smoke from hardware components once the hardware is turned on.  Similarly, in the context of software testing, the smoke test refers to testing the basic functionality of the build.  If the test fails, the build is declared unstable and is NOT tested again until the build smoke test is passed. 

Smoke Testing - Features:

  • Identify the business-critical functions that a product must perform.  
  • Design and run the basic functions of the application. 
  •  Make sure the smoke test passes each and every build to continue testing.  
  • Smoke testing enables obvious errors to be revealed, saving time and effort .
  • Smoking testing can be manual or automated. 
Interface Testing:

Interface testing is performed to assess whether systems or components are passing data and properly controlling each other.  It is to check if all interactions between these modules are working properly and errors are handled properly. 

Interface Testing - Checklist

  • Check that communication between systems is done correctly
  •  Check if all supported hardware / software has been tested 
  • Check if all related documents are supported / open on all platforms
  •  Check security requirements or encryption when communicating between  application server systems 

Regression Testing:

Regression testing for a black box testing technique that consists of re-executing those tests that are affected by code changes.  These tests should be performed as much as possible throughout the software development life cycle. 

Types of Regression Tests:

  • Final Regression Tests: - A "final regression testing" is performed to validate the build that hasn't changed for a period of time. This build is deployed or shipped to customers.
  • Regression Tests: - A normal regression testing is performed to verify if the build has NOT broken any other parts of the application by the recent code changes for defect fixing or for enhancement.
Selecting Regression Tests:

  • Requires knowledge of the system and its effects on the existing functions.  
  • Tests are selected based on the area of ​​common failure. 
  •  Tests are chosen to include the area where code changes have been made multiple times. 
  •  Tests are selected based on the criticality of the features. 
 Regression Testing Steps:

  • Regression tests are the ideal cases of automation which results in better Return On Investment (ROI).
  • Select the regression tests.
  •   Choose apt tool and automate regression testing. 
  •  Verify applications with checkpoints. 
  •  Manage regression testing and update as needed.
  •   Schedule tests.
  •   Integrate with builds.
Load Testing:

Load testing is a performance testing technique using which the response of the system is measured under various load conditions. The load testing is performed for normal and peak load conditions

Load Testing Approach:

  • Evaluate performance acceptance criteria.
  •  Identify critical scenarios.
  •  Design the workload model.
  • Identify target load levels.
  •  Design the tests.
  •  Run the tests.
  • Analyze the results 
Objectives of Load Testing:

  • Response time.
  •  Resource usage rate.
  •  Maximum user load.
  • Work-related metrics 
Stress Testing:

Stress testing is a non-functional testing technique performed as part of performance testing.  During stress testing, the system is monitored after overloading the system to ensure that the system can withstand the stress. System recovery from this phase (after stress) is very critical as it is very  likely to occur in the production environment. 

Reasons for performing stress tests: 

  • This allows the test team to monitor the performance of the system during failures. 
  • To check if the system saved data before crashing or NOT. 
  • To check if the system is printing messages  Significant error during a failure or if it has printed random exceptions 
  • To check whether unexpected failures do not lead to safety issues 
Stress Tests - Scenarios: 

  • Monitor the behavior of the system when the maximum number of  'users are logged in at the same time
  •  All users performing critical operations at the same time
  •  All users Accessing the same file
  •  Hardware issues such as the downed database server or some of the servers in a downing farm  breakdown. 
Compatibility Testing:

Compatibility testing is a non-functional testing conducted on the application to evaluate the application's compatibility within different environments. It can be of two types - forward compatibility testing and backward compatibility testing.

  • Operating system Compatibility Testing - Linux, macOS, Windows
  • Database Compatibility Testing - Oracle SQL Server
  • Browser Compatibility Testing - IE, Chrome, Firefox
  • Other System Software - Web server, networking/ messaging tool, etc.
Localization Testing:

Localization testing is a software testing technique by which software behavior is tested for a specific region, locality, or culture.  The purpose of conducting the localization test for a program is to test the appropriate linguistic and cultural aspects of a particular site. 

Software Testing Methods

There are various methods for testing software. These methods are chosen by testers based on their requirements and methodologies. But three fundamental software testing methods are used in every project development.

Types of Software Testing Methods and Levels

  • White Box Testing
  • Black Box Testing
  • Grey Box Testing
White Box Testing & Levels

The White Box Test is also known as the Open / Clear Box Test / Glass Box Test.  From a developer's perspective, it is known as Code Oriented Testing / Structural Testing.  In This type of testing, technical tests can be performed within the internal structure, logical design and implementation of different modules.  Here, the tester uses preferred input / exercise paths via code to determine the correct or exact output.  is known as code-oriented testing, it contains technical tests and script-based tests as part of its testing phase. 

White Box Testing Levels

  • Unit Testing
  • Integration Testing
  • System Testing
Black Box Testing & Levels

This test is known as a behavior test, in which the software tests the internal structure, design and implementation, as well as the user interface and UX of the software under test, which are not known to the tester.  Black box tests are both functional and non-functional, but most of the time they are functional.  This testing technique is known as black box testing because the software or product is not known / confirmed to the tester in advance. 
Using this technique of testing to find errors in these mentioned categories:

  • Software malfunction.
  •  Error in interface.
  •  Errors in concepts.
  •  Errors related to the database.
  • Performance or behavior errors.
  • Errors in product startup or termination 
Black Box Testing Levels

  • Integration Testing
  • System Testing
  • Acceptance Testing
Grey Box Testing & Levels

In this software testing technique, it combines the concept of black box and white box testing.  In the gray box test, the inside of your product is partly known to the tester.  This has partial access to data structures residing internally to design different test cases, but at the same time testing from a user's perspective or as a black box tester. 

“Still There are various methods for testing software. These methods are chosen by testers based on their requirements and methodologies.”
December 14, 202011 minutesauthorBhumi Khimani
Here is part one of How To Grow Your Business - 1

You can only develop products and services that are very effective if you pay attention to the needs of your customers and prospects. One way to understand exactly what your customers want is through research and surveys.

8. Create a sales funnel
The first way to grow your business faster is by creating a sales funnel. If you do not have a sales funnel, you are making a big mistake. Sales funnels can help automate your business.
It helps you grow and grow quickly and easily. Sure, there are some front-end functions involved. Is natural. But, once those processes are suspended, it will travel easily from there.

9. Use a customer management system
Manually tracking transactions is difficult. No one wants to do that. It becomes a burden as the business grows. If you want to scale quickly, use a customer management system.

10. Competition research
When going to the market, and you are really looking to get your offer out to the public, you need to research the competition. Frasier says he uses two platforms to do his own research. The first is the same web.

11. Create a customer loyalty program
Loyalty programs are the best way to increase sales. It costs three times more to acquire new customers than to sell something to an existing customer.
Other resources pin this number anywhere from four to 10 times more. However, whichever way you cut it, getting new customers is expensive.

12. Identify new opportunities
Analyze new opportunities in your business by better understanding your demographics. Understand everything from distribution channels to your direct competitors, and also analyze overseas markets and other potential industries.
With the right amount of potential analysis, you are likely to immediately pursue dozens of new opportunities.

13. Create an email list
One of the best and most effective ways to grow a business quickly is to create an email list. Clearly, that means you need to have a lead magnet.

14. Think of the franchise model.
If you have a successful business, and you are trying to grow really fast, consider franchising it. Although franchise costs are high and moving towards a franchise model is complex and it takes a lot in marketing, how can it all make a difference if you are looking for really fast growth.
December 14, 20202 minutesauthorAnkit Kalathiya


You can only develop products and services that are very effective if you pay attention to the needs of your customers and prospects. One way to understand exactly what your customers want is through research and surveys.

1. Understand your customers

You can only develop products and services that will be a big hit if you pay attention to the needs of your customers and prospects. One way to understand exactly what your customers want is through research and surveys. You should constantly invite them to give honest, brutal feedback.

Reviews and surveys are the best way to get into the minds of your customers. This makes it easier for you to develop products and services that are appropriate to the current demands of the market. Moreover, it helps you understand the area in which your company needs to improve.

2. Improving customer service

If you do not provide quality customer service, it will be difficult to satisfy your customers even if you have an excellent product or service. This aspect of the business is about taking extra steps to make them feel special. Let your customers know that they have value. If they have a problem, make sure you address them immediately. If they have questions, take the time to answer.

They should not feel that things are difficult for them if they raise specific issues. Social media is the best way to listen to and understand your customers. If they find customer service satisfactory, they may also recommend buying others from your business.

3. Establish loyalty

It takes time to encourage customers to come and buy what you offer. But just buying them is not enough. You need to promote loyalty. Considering there are other competitors who can offer them better, you want them to stay loyal to you. Don’t be satisfied just because you already have a lot of loyal customers.

They can easily be attracted to other options and they can leave you. Provide loyalty rewards. If there are discounts and discounts, let these most loyal customers be the first to know. You must make sure your customers know they are appreciated.

4. Focus on professional development

The success of your business also depends on the quality of the employees you hire. Building an effective team is the key to making sure your business grows.

One of the best ways to motivate hardworking employees is to give them a sense of purpose. They should not feel that they have to work just to work.

5. Understand your customers

Find ways to increase the sales of your existing customers It's much cheaper than finding a new one. Even if you can't expand your product line, you can still sell more of your existing product or service to a client you already have. An easy way to do this is by volume discount.

6. Participate in networking events

Take the time to build your networks - it's not what you know but who you know. Networking allows you to build relationships with other people and encourage customers to refer to you through words.

7. Give back to your community

Creating brand awareness in your local community is a great way to attract new business. Consider participating in a sponsorship or community event to enhance your business profile.

We will see more points in our next tutorial.

December 14, 20203 minutesauthorAnkit Kalathiya