QA Engineer’s Mindset in 2020

Sam Shamsan
6 min readFeb 13, 2020

--

It’s one of the most demanding field in technology industry, each team in each company strive for quality. Among many factors the quality of your software is the major factor that determine if the software will survive longer product life cycle will will die as an infant.

As a quality assurance engineer, you need to consider to situate your mind into the proper configuration. Having an experience in a specific automation tool or being able to scrip effectively using a programming language is great skill set to have but it’s not enough to ensure your success in providing the a software product with a fine quality. You need the right mindset that backed by a deep understanding of the best practice and common techniques to implement your quality assurance work.

By working in the field for more than 5 years, I was able to compile the day to day experience to an abstract where you will find the holy grail of QA. What you need to know and how you should think about approaching your quality assurance process is summarized in the series.

When you are assigned to a certain software project to lead the quality checking you should realize the size of responsibility you have been handed and the amount of trust you just got granted. The quality engineer is not only driving the sophistication of the software but rise its chances to dominate the user satisfaction and win against the competitors . It’s not only the job of finding defects and bug but the job that provide the first and last defense line against bad user experience and critical security attack.

Quality Assurance Engineers should not take their job lightly, instead they should weaponize themselves with a critical thinking and sharpening their eyes for a great attention to details. In addition, They must be trained for analytical thinking that allow them to assist and solve problems quickly and effectively. This mindset that incorporate soft skill will help engineers identify the operation of set of operation to execute in order to get the best quality possible in a given time frame.

Quality assurance is the art of minimizing the gap between the current state of the software and the expected version of it, The expected version of any software usually declared by a formal requirements list in an early stage of the software development cycle. If the project was applicable for prototyping, then the combination of prototyping and requirements list should define the back bone of the final expected version of the software. In a perfect project, you will find the designing diagram such as UML Sequence Diagram, Interaction overview diagram, Having an access to these diagram will enrich the ability to ship a product with the minimum number of bugs. It save time and effort when writing the test cases needed to be performed, by studying these diagram the QA engineer will have a an exceptional insight on the how objects and components are connect inside the app. Crafting test cases with a clear line on what should be categorized as a black a box or white box will be created more effectively and executed so quickly.

UML Sequences diagram
Interaction diagram
UML Diagram

Some time in a bigger size corporations, Diagrams are not always available to the QA teams, in this case, The exploratory test will help to reverse engineer the software product and build a path map of the the different flows. The cycle of am effective exploratory test should start by learning about the system, Play with different features and data for the purpose of just getting familiar with the product, then start to write a high level test cases and implement them. The more test cases you develop the deeper understanding you gain above the software. After the execution of the test cases, you may need to spend sometime analyzing the outcome and re-craft the next test cases.

An experienced QA engineer dose not explore blindly, depend on the nature of the project a generic check list could come very handy, for instance, for a UI Quality assurance process you may use a generic test cases such as: Test if the buttons navigate correctly from point A to the expected B, or Test if the variables fetched properly. You can design these test cases using the object oriented approach that allow you to encapsulate them and call them for every page. This UI element based type of testing will help cover more area of your software with a laser focus accuracy.

The scoop of the QA process is essential here, Testing a new developed system is different from testing a new developed feature. You could use the same approaches we introduced above but with the mindset where keeping an eye on the integration of the new feature to the system. It’s commonly know that a new feature plugged to a system will most likely introduce the most unexpected bugs, so implementing three levels of testing is essential for each stage of testing. A unit test, integration test and system test, if a bug introduced to the main system throw the integration it will be categorized as a regression defeat, in most cases the new feature should be rejected or isolated for bug fixing while in the test environment.

So, Where you should start? You should narrow your mind to the smallest block of testing which is the unit test, then after reaching a satisfactory point of unit testing you should perform at least some degree of integration test. I know, it’s depend on your rule and many other organizational factors to extend your efforts to do integration test but i would recommend as a good practice to smoke test your integration to see how is you feature or subsystem interact and effect the rest of the system such as the back-end and the rest of the UI. Then at the end try to do a quick system testing where you visit different area of the system to investigate any unexpected defects. Finally, You need to collect some test cases to be automated. this should be done after an advance stage of development where you can assess that the case dependencies are stable and be automated.

PYTHON FOR QUALITY ASSURANCE ENGINEERS, By Sam Shamsan

If you work the Right to left design or languages, or you know someone who do, then buying my book will be great way to gain RTL end to end knowledge and support me to keep writing book at the same time.

https://www.amazon.com/RTL-Foundations-Sam-Shamsan/dp/1656300087

--

--

No responses yet