Our job as Quality Assurance engineers is to test websites and applications before they are delivered, improving the user experience for a seamless experience across all platforms. It is imperative that the quality assurance and testing services blend seamlessly into the development life cycle delivering error-free and high performing web, cloud, and mobile apps.
Previously I have been sharing some QA tips that will make your work better, faster and easier. This time, I would like to answer a couple of questions that every QA might come across in their careers:
Question 1: What knowledge is needed to be an excellent or proficient QA?
In my opinion, as a QA one should have:
- Project knowledge - QAs should be aware of everything happening on a project such as what is the timeline, who is working on what part of the project, project complexity, deliverables, etc.
- Product knowledge - How does the product work and what is the main purpose of it.
- Technical stack - QAs should be aware of what technical stack is being used in the project. Which technologies can be used in QA
- Project history knowledge - What problems have occurred in the past which can be avoided now, anything else that can be useful as learning, etc.
- Market knowledge - Complete understanding of the target audience; who is going to use the product? who are our competitors? studying similar products in the market.
- Testing Techniques knowledge - One should be aware of what are the various testing techniques and should be capable enough to choose an appropriate one whenever and wherever required.
- Testing tools knowledge - Knowledge about tools that will ease up the process of testing (these can be any tools).
Question 2: Can we perform automation within the sprint? Answer to this is, Yes!
Let's go through different basic strategies which will help you achieve this:
- Working with developers and other stakeholders from the beginning of the project (Set up the code on the machine, start writing the automation code along with the project code in parallel, and lastly, configure CI/CD).
- Setting up a priority for which features should be automated or which features need automation from a business perspective and focus only on these features. APIs should be automated. Other tests such as UI tests can be done manually or later if not possible within the sprint.
- Follow the BDD automation approach wherever necessary.
- User stories are available when the sprint starts, so I believe testers can start developing the temporary code structure from this, such as code steps and later on, they can add the actual values for these steps (XPath, ids, CSS, etc.) and can also later add validation checks and edge cases.
Question 3: How to start a career in automation?
Many a time I come across people with queries such as:
- I have got 4-5years of experience (this is just an example) in testing but never practised automation testing.
- I have theoretical knowledge but don't have practical knowledge
- I did not get a chance to work on automation as there were no requirements etc.
Well, in my opinion, it's not too late to start now! It's not that difficult to start working on automating your use cases or scenarios.
- If you are confused and don't know where to start from, here are some of my observations that might help:
- Start learning and practising a single language and try to learn the concepts starting from basic to advance. You are always open to choose this as per your convenience. For example JAVA, PHP, etc.
- Spend at least 20-30mins daily on this assignment. Gaps in learning will always require a lot of efforts to restart from the beginning.
- If possible please do attend some framework development courses. This will help understand how the automation project works.
Ask your current organisation to make you part of an automation project. If this is not possible you can do the following things:
- Keep checking with the Automation QAs in your organisation around the work they do. Keep on asking them questions and try understanding the process. Work on some small assignments together.
- Work on open source automation projects.
- Even if you develop a small piece of code for any of the features or project, or during the learning phase, save this piece of code with proper structuring and documentation so you can reuse it later. Keep in mind "Every piece of code should be written in such a format that it should be reusable"
- Don't wait for someone to train you, or teach you. You can always self-learn or ‘you can Google it’! I am sure you will find all your answers there.
- Apart from this, you can join online communities for automation on Slack, LinkedIn, etc where you can always post your queries.
- Hands-on practice is a must! Just reading tutorials, going through videos won't help. Just like buying a dress after you try it on!
Happy Testing :)