# Awesome Quality Assurance Roadmap [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

## Contents
- [Introduction](#introduction)
- [Test Plan Sample](#test-plan-sample)
- [The Road Map](#the-road-map)
- [Advices](#advices)

## Introduction

Testing is an essential phase in any product life cycle; whether if it's a food, cars, or software production line, the outcomes should match what's expected and meet, satisfy the need that we created the product for.

Having a solid base of understanding how the software components work and integrate with each other as well as gaining the skills of breaking things is an essential skill-set for any QA engineer. Software testing is the art of investigating the software and finding any unintended behavior that might generate undesired scenarios.

Below you can find the path for QA and software testing learning curve which you might need to start the journey.

## Test Plan Sample

One of the most important documents to be generated by the QA team is the test plan, as the team will acting blindly without; not knowing the criteria, the starting point, or even when to perform different testing types can risk the whole delivery and causes bad code delivery.

Test plan sections and content can vary based on project and delivery nature, therefore, the attached test plan PDF is considered as a generic one that serves all software testing delivery purposes.

Attached PDF can be found here [test_plan_sample.pdf](https://github.com/anas-qa/Quality-Assurance-Road-Map/blob/master/Test_Plan_Sample.pdf) for downloading.

## The Road Map

![QA Engineer Road Map 2022](https://i.imgur.com/cM9cM8T.png)
![QA Engineer Road Map 2022](https://i.imgur.com/meodAKp.png)

## Advices

- Don't trust a test code that you didn't see it failing.

- Understand software testing and do not jump into automation; personally, I classify automation as an efficient way to work a redundant task. make sure to properly design your test criteria and later on, you can automate to achieve the previous.

- Automation is not more than documenting manually written tests and engineering it in a way the code will be readable, understandable, and reusable.

- Make sure that your testing code is actually testing something.

- Your testing code shall not require testing.

- 200~OK is not always okay; Do not rely only on server status while testing, getting 200 status for an unauthorized API call is risking your software security.

## Contributing

See the [contributing.md](https://github.com/fityanos/awesome-quality-assurance-road-map/blob/master/contributing.md) for details on how to contribute.

[qualityassuranceroadmap.md Github](https://github.com/fityanos/awesome-quality-assurance-roadmap
)
