I have learned how to test features, write test cases, execute tests, and report bugs.
As a software developer transitioning into software testing, my next step is WebTesting.
What actually happens when I interact with a web application?
Say I click Login, search for a restaurant, or add food to my cart, what's happening behind the scenes?
1. How the Web Works
A web application involves communication between a client and a server.
A simplified flow looks like this:
User ↓ Browser (Client) ↓ HTTP Request ↓ Web Server ↓ Database ↓ HTTP Response ↓ Browser displays the result For example, when I log in:
- I enter my email and password.
- The browser sends a request to the server.
- The server validates the credentials.
- The server responds with a result.
- The browser displays the appropriate response.
As a tester, I need to understand what happens at each stage.
2. HTTP vs HTTPS
HTTP and HTTPS are protocols used for communication between browsers and servers.
The key difference?
HTTPS encrypts communication using TLS, helping protect sensitive information while it's being transmitted.
For example, when testing a login page, I need to verify that the application uses HTTPS rather than sending login credentials over an insecure HTTP connection.
3. Chrome DevTools
One of the most useful tools I am learning is Chrome DevTools.
It helps testers investigate what's happening behind the user interface.
Two important tabs:
Network Tab
Helps me inspect:
- HTTP requests and responses
- API endpoints
- Status codes
- Request and response headers
- Response times
- Failed network requests
Console Tab
Helps me identify:
- JavaScript errors
- Warnings
- Runtime issues
- Other messages that may help investigate defects
For example, if restaurant search returns an empty result, I can inspect the Network tab to see whether the request succeeded or failed.
4. Web UI Testing
This is where I check what users actually interact with.
Examples:
- Are buttons working?
- Are input fields accepting the correct values?
- Are error messages displayed correctly?
- Are links navigating to the right pages?
- Does the layout work on mobile and desktop?
- Are images loading correctly?
- Are forms validating user input?
A page looking good doesn't guarantee it works correctly.
Appearance and functionality both matter.
5. Cookies, Sessions, Local Storage and Cache
These are important concepts because web applications often need to remember information.
| Concept | What it does |
|---|---|
| Cookies | Store small pieces of data in the browser |
| Sessions | Help maintain a user's interaction state |
| Local Storage | Stores data in the browser across sessions |
| Cache | Stores resources to improve loading performance |
For example, when I log into QuickBite, I expect my authenticated session to be maintained as I navigate between pages.
Things I should test:
- Does the user remain logged in after refreshing?
- Does logout properly end the session?
- What happens when a session expires?
- Is sensitive information stored insecurely?
- Does clearing browser data affect the application as expected?
6. What Should I Look Out for When Testing Web Applications?
A web application should be tested beyond the working features.
Some important areas include:
- Functionality: Do features work as expected?
- Usability: Can users navigate the application easily?
- Compatibility: Does it work across different browsers and devices?
- Reliability: Does it behave consistently?
- Performance: Does it respond within acceptable times?
- Security: Are user data and application resources properly protected?
What I am Learning
Web testing has made me realize that there's much more to an application than what appears on the screen.
A button click can trigger a request, communicate with a server, interact with a database, and return a response.
Understanding these interactions as a QA tester helps me investigate problems more effectively.
You don't just plan to only test what you see. You also want to understand what's happening behind it.
What's Next?
I am moving into API Testing.
I'll be learning how to test the communication between applications and servers directly, without relying entirely on the user interface.
I'm learning QA and I'm taking you with me.