Common Type of Application Testing
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 Types | Description | |
Functional | Unit testing | Testing a single unit of work or code |
Integration testing | Testing different modules, when put together | |
System testing | Testing when all the modules put together | |
Acceptance testing | To ensure user defined expectations is achieved | |
Non-Functional | Security testing | Nonfunctional testing for Security weakness |
Performance testing | Load/Stress testing for edge case scenarios | |
Usability Testing | UI specific testing | |
Compatibility testing | Testing application on different hardware like mobile, Desktop..Etc. |