Basics of Software Testing

Basics of Software Testing

What does the internet physically look like? Imagine vast data centers filled with computers called servers. These servers host websites, and constantly communicate with each other to share information.

Imagine you type in a website URL like https://google.com into your browser address bar. What happens next? The browser first searches for the nearest data center housing Google’s servers. Upon locating it, it sends a request to one of these servers to retrieve the website’s landing page. In response, the server delivers the website’s code. Your browser then interprets this code and displays it as the webpage you see.

To get an insider’s view of this, open the ‘Developer Tools’ in your Chrome browser. Here, you can inspect the elements of a page. Dive deep into HTML, understand how element selectors work, and familiarize yourself with the differences between an ID and a Class in HTML.

Software testing isn’t a mere procedure; it’s the backbone of software quality assurance. Its ultimate goal? Detecting software problems, commonly termed as bugs, issues, or defects, before the product reaches its users. To achieve that, companies usually define the most important scenarios that need to be tested.

There are different types of testing, targeted towards identifying bugs efficiently. Most common types are exploratory, smoke, UI, regression, functional, non-functional, localization, etc

For all types of testing other than exploratory, there are defined scenarios that outline specifically what steps should be taken. These testing scenarios are called test cases. Test cases are typically created by the QA people with the stakeholder’s and end user’s goals in mind.

You might wonder, “Where are these test cases documented?” They can be anywhere – from spreadsheets to sophisticated tools tailored for this purpose.

When the software or a QA person goes through the steps and performs validations specified in a test case it is called  a “run” or “execution”. Each run usually contains a set of test cases within test suites.

If a test case has some way to be run by software without human involvement, this test case is called an automated test case

It is virtually impossible to write code without bugs, and companies want QA to identify bugs as early as possible. The most expensive bugs are those identified by end users after the release. Therefore, the earlier the bug is identified, the more cost-effective it is for the company.

Google Analytics
Developer Tools in Chrome
Cloud-based storage
SEO Tools
Bugs detected by end users after release are the most cost-effective
Companies need code with bugs to teach developers more advanced techniques.
The earlier a bug is identified, the cheaper it is for the company.
It’s common to write code without any bugs.