Common Type of Application Testing

·

4 min read

Smoke Testing – Basic testing of application. Running common, essential, frequently used features of an application is tested.

Example – for a Banking application, Smoke testing scenarios could be

  • Login

  • Logout

  • Account browsing

But why- it ensures system is up and running, for minor changes or builds/releases.


Functional testing- testing of a particular function thoroughly.

Example- for a Banking based application, Functional testing could be-

  • Login function

  • Logging/Logout

  • Password reset

  • Password policy (special characters, password length…etc.)

  • Logging via multiple browser/tabs

  • Logout and then click back button of browser to check if user logs back in…etc

But Why- to ensure the business functionality is meet. No requirement is left out


Integration testing- testing of multiple modules, working as one single application. Example- for a banking application-

  • User is able to login (Login module)

  • User is able to access own account (account module)

  • Same user is able to make payment (Payment module)

  • Same user is able to add a new payee (add user module)

  • Upon a payment, money is deducted from account (payment and account module integration)

  • When user logged in and opens account in two browser tabs, upon logout from one browser tab, user should not be able to make transaction from another browser tab (Logging and payment module testing)

But why- if multiple teams/team members working on different functionality, all the functionalities/modules meet the end goal of application, i.e. code logic of one module does not conflict with code logic of another module, and/or data from one part of application flows properly and consistently into another part of the application without breaking the application.


Regression testing- Re-testing the application, Re-running same test cases, on the new changes or new version of application.

Example- For a banking application, with a successful Login/Logout page, a new feature “Remember me” should break existing logout functionality, i.e. user should still be able to logout, even if user clicks back button on browser.

But why- Any new feature or functionality that got added into the application should not affect any old (already working) function. Any new change so co-exists with old functionalities.


Load testing – Testing the behavior of application with large volume of user, i.e.-testing application for a large number of requests coming in.

Example- accessing logging page of an application, assuming thousands or users need to access the application at the same time.

But Why- For scenario, where a large volume of data is received suddenly, i.e., for abnormal scenarios, Application should still function as normal. Such kind of scenario are rare, but application should still be prepared for unforeseen circumstances.


Stress testing- Similar to load testing, however the system is tested to its maximum capability of handling data/users.

Example- Testing of an application for the extreme capacity like-

  • network traffic handling capability

  • maximum number of users handling capability

  • Performance during peak volume

But why- to capture various statistics of an application. These statistic number helps better planning and designing of application, for new and existing features/functionalities.


Security testing- Testing of an application for security hacks.

Example- for a banking-based application, testing of Logging page for SQL injection attack or clicking on a URL, while user is logged in into bank application, i.e. session hijack scenario.

But Why- Security testing helps discover vulnerability, early in the application, before actual hacking done on live application. Finding of security issues internally, before any external users exploits the vulnerability.


Final word-

Before opting for an application-testing plan, one need to first categorize the type of application and then choose what all-testing type is good for that application. Not all of the above is needed for every application and depending upon the need of the application, Testing strategy should be chosen.

Some Application category Type-

  • Desktop Application

  • Web application

  • Mobile Application

  • API testing

Quick summary

Testing TypesDescription
FunctionalUnit testingTesting a single unit of work or code
Integration testingTesting different modules, when put together
System testingTesting when all the modules put together
Acceptance testingTo ensure user defined expectations is achieved
Non-FunctionalSecurity testingNonfunctional testing for Security weakness
Performance testingLoad/Stress testing for edge case scenarios
Usability TestingUI specific testing
Compatibility testingTesting application on different hardware like mobile, Desktop..Etc.