Web application testing is a complete technique of testing each and every component or aspect of a website. Web application testing comprises of the following list of tests :
Usability testing
Functional testing
Compatibility testing
Database testing
Security testing
Performance testing
Usability Testing :
Usability testing intends to check interface friendliness among the users of a website. The purpose behind this kind of testing is to check the application flow or to be precise, check ease of access. Usability testing is divided into the following scenarios or cases :
A web page content must be free of any grammatical or spelling errors.
Font size and colour must complement the theme of the website.
Text alignment should be proper so as to place the contents appropriately.
Appropriate error messages should be displayed along the right field label.
Alignment of the fields is another factor that impacts the presentation factor.
Buttons must adhere to some prescribed standards.
Home button must reflect across all the pages.
Fields not meant for use(at specific situations) should be disabled.
Keep an eye on broken images and links. They must be removed , if present.
Appropriate title must be there on every page for a specific item.
Verify if the drop-down list is truncated, in case the field size is inappropriate.
Functional Testing :
Functional testing implies testing operational behaviour of a website in terms of the results or output produced by it.
The purpose of this testing is to verify adherence to the functional specifications as specified in the development document.
Functional test scenarios are as follows :
Validating the required fields
Mark asterisk along the mandatory fields
Optional fields must not display any error message
Numeric fields like field for phone number, must not allow any alphabetic or any wildcard character except numbers. It must also check for negative number entry.
Testing the sorting and timeout functionality.
Check if the users are able to download the uploaded files.
Test email functionality, whether an email sent by user is reaching on the target email address.
Test what occurs post deletion of cookies by users.
Compatibility Testing :
Compatibility testing is performed to verify whether a developed application is compatible with various other components like browsers, operating system and hardware.
The purpose is to evaluate performance of an application with each component.
Following list of scenarios form a complete compatibility testing :
Test the application across all browsers - opera, safari, Mozilla, chrome, internet explorer to ensure website appears same across all of them.
Images look same across all browser.
Test if the fonts are supported by all browsers.
Test whether animated GIF files work fine.
Database Testing :
Database testing relies on one simple ideology- data provided by user must match the data stored in the database.
Database testing scenarios are follows :
Database's name must match with the name mentioned in the specifications.
Naming conventions and data types for each column must match the requisite criteria.
Check stored procedure's name.
Test if the stored procedure require any parameters or not.
Verify if the data is actually getting submitted into the database.
Verify the impact of DML operations - insert, update, delete. Check if the necessary action is being performed or not.
Verify degree of encryption in the database.
The result that is displayed on the front end must reflect at the backend.
Security Testing :
The meaning is implied in the name itself. This testing aims to check if it's secure enough to keep any malicious content at bay and avoid mishandling of data by perpetrators.
Security test scenarios :
Highest degree of secure data like credit/debit card information must be transmitted via HTTPS(SSL) protocol.
Ensure that the secured data like password, card numbers are displayed in encrypted format.
Verify whether authentication rules for password is strictly followed else data hacking is quite possible.
Prevent SQL injection problems.
Session expiry means the user must not be able to navigate the site. If things go the other way it could be quite detrimental.
Test whether the roles assigned works as per requirements.
Test the application for brute force attacks.
Performance Testing :
Performance relates to a system's throughput, speed, stability, scalability and endurance under different load conditions. It aims to determine whether the system is capable of delivering the same level of output at various time intervals under varying user levels and to see if there appears any kind of bottlenecks in that process.
Performance test scenarios :
To test if the current architecture supports heavier load conditions than the optimum level.
To identify the configuration that offers the best performance level.
To verify if a newer version of the software has any hurdles in terms of response time.
To test the interaction between the hardware and software to test whether the application can handle huge volumes of data and offer optimum performance.
There are few popular tools for performance testing -
Apache JMeter
Load Runner
WAPT
NEO Load
Rational performance tester
A broader view of web app testing can be enlisted as follows :
External interface - checks for browser support or platform independence
Internal interface - functionality within the site like downloading a document, open any linked documents, submit data in encrypted format etc.
Connection speed - an efficient system is the one that retrieves the requested results within the minimum possible time limit.
Design pattern - design of a website must be clean and concise so that a user does not face any confusion with regard to navigating between the menu options.
Conclusion :
A web app testing procedure ensures testing a web application from all possible dimensions. There mustn't be any loopholes that calls for any irrelevant or unwanted actions.
Hence web app testing covers almost every aspect of testing and aims to deliver a robust software application.