Quality Assurance: The Gatekeepers of Software Excellence
Testing:
It is the process of executing and evaluating the software, whether it meets the customer’s expectations or not.
Who does?
QA – Quality Assurance member also called as Software tester.
Skills required:
-Need to be a stickler for details.
-Not afraid to critique.
-Strong communication skills.
-High analytical thinking and concentration.
-In-depth domain knowledge.
-Love to solve the problem.
-Unbiased for developers.
-Assume themself as an end-user, while performing testing.
-Capable of predicting where will the system fail, while performing testing.
-Not to hesitate to raise bugs, even before the release.
Role:
-They break things on purpose so that the customer won’t break them on accident.
-The first one to encounter anything that might make a user experience worse.
-It is mandatory to document the issues, and to report to the development team.
-Even the basic logic, is missing in the software, which is out of requirement it needs to be addressed. Because, requirements may also have mistakes.
What QA Tests?
-Both positive and negative flow of software.
-Make sure every piece of workflow, is working as intended.
-Negative flow testing is equally important as positive one because to examine how a system handles to unintended behavior.
Why testing consumes more time?
-Manual Testing is like a test cricket game, where the software’s behavior is tested, whether it is adapting to different conditions as expected.
-Automation testing is like a t10 cricket game, where the software’s behavior is tested superfast and gives us results right away. But just like in cricket where some moves need a human touch, some tests can’t be automated and need to be done by hand.
Testing device importance:
-It is highly recommended to test the software in a real device, rather than an emulator. Also, emulators don’t accurately replicate the performance and behavior of real devices.
-Emulators are like expectations, real device is reality.
Testing myths:
Missed flaws are due to testers:
This isn’t always accurate. Developers frequently make code changes without reporting to the QA team because they think the changes are “just small.” In reality, that small change will trouble the software a lot. Occasionally, the time allotted for testing is insufficient to conduct comprehensive testing.
Testing everything is impossible:
Due to the various number of possibilities. It’s like trying to play every feasible move in chess – there are just too more ! So, they concentrate on testing the most important and appropriate situations. This is more feasible while yet contributing to the software’s overall functionality.