Testing is one of the important phases in a software development cycle. A product released without bugs will make your users trust in using your products. However, in reality, it is not easy to detect all bugs in a software. And there are no products released without bugs / errors, even big software developed by famous companies. Nothing is perfect!!!
Today, I would like to share with you some basic testing methods on a web site or a web application.
At first, we should find out what a software testing is and why we must do testing.
What is Software testing?
- Firstly, To check the web application / web site for potential bugs before go-live.
- Secondly, in order to verify if actual results match the expected results or requirement / specification.
- To help identify errors, gaps, missing requirements
- Software testing done by manually or automated tools
Why test ?
In the past, there were many software failures happened & caused accidents including finance & human.
- Bugs causes monetary & human loss
- Bugs are expensive and dangerous
- High quality product
- Save costs
So, testing is very important.
Keep in mind: 7 testing principles
Now, we discover 6 testing methods for a web application / web site:
1. Functional testing
- To check if the functionalities of the product match the specification
- Activities / checklist:
- UI workflow testing :
- to verify GUI meets the specification
- Design elements: layouts, colors, fonts, font-size, labels, text box, text formatting, buttons, links, icons etc
- Different screen resolutions on smartphone, desktop
- Business workflow testing
- Hyper links
- Input field validation
- Cookie testing
- HTML / CSS validation
- UI workflow testing :
- Tools: Selenium, QTP, Browserstack, usernap
2. Usability testing
- To test user experience
- Activities / Checklist:
- Navigation testing:
- Easy understandable & easy to use
- Buttons, Titles, shapes, fields are convenient for usage
- ..
- Content testing:
- Grammar / spelling ?
- Color / font size optimized ?
- Clear, structured, logically, informative ?
- Analyzing the usability of one website to another (peer or competitors website).
- Evaluating the usability (pre-post launch project): get awareness of new design to make sure that it is easy to use and brings positive user experience
- Navigation testing:
- Tools: User Zoom, Reflector, Loop
- Audience: end user, customer, tester
3. Compatibility testing
- To test if the web design is compatible with different browsers/ devices
- Activities / Checklist:
- Browser compatibility
- to test if web site / web app work on different browsers well.
- popular browser with some latest versions: Chrome, Firefox, Edge, Safari
- Device compatibility
- to test if the web site / web application is responsive & work on devices of different shapes and size
- popular devices (iOS, Android): Samsung, iPhone 5,6,7 or tablets
- Browser compatibility
- Tools
- NetMechanic
4. Interface testing
- To test if the communication between different software systems is correct.
- Activities / Checklist:
- Application:
- verify all methods (GET, PUT, etc) used in the API or web services
- verify the server & client side error handling with server code including 4xx & 5xx: a user-friendly message ?
- ..
- Web server:
- to verify handling all requests without any services denied
- Database server
- in order to verify if the queries sent to database give expected results
- to check response time of queries
- In order to check data retrieved from the application is displayed accurately on the web application
- to check any errors displayed while executing queries
- Application:
- Tools: Postman, SoapUI
5. Performance testing
- To verify the application response time under various load conditions
- Activities / Checklist:
- Load testing:
- measuring the response time of business critical transactions at different connection speeds
- to measure capacity of database & server
- Stress testing:
- In order to test the application beyond the expected maximum loads & to determine the threshold limit of the system.
- Soak testing (endurance testing):
- to determine the system parameters under continuous expected load (memory used to detect memory leaks)
- to discover the system’s performance under sustained use
- Spike testing:
- to measure the application performance when there is a increase in the volume of users accessing it.
- in order to determine if the system will be able to sustain the work load
- Make sure that techniques used such as gzip compression, cache on client/server side to reduce the load time
- Load testing:
- Tools: JMeter, LoadRunner
6. Security testing
- To make sure that the application doesn’t allow unauthorized access to secure resources.
- To protect data & To ensure that the sensitive information is safe & won’t cause the damage to users
- Activities / Checklist
- SQL injection
- Authorization
- Authentication
- URL manipulation
- Cross site scripting
- Vulnerability scanning
- Tools
- Babel Enterprise