יום שלישי, 28 בינואר 2014

QA from Point 0

Lots of startups begin developing their products without the involvement of QA in the process. After a while, the time comes (usually when the product needs to be delivered to the customer) when a QA process becomes necessary. Together with the product and its release notes, the customer often demands documentation of the QA process (ATP, STP, STD).
At that point, the company will hire a QA leader, who may work alone at first but will often eventually expand the QA team. The leader must be capable of managing the QA system and implementing QA methodology in the product’s development process.
I would like to suggest some helpful points for the new QA leader who needs to build a QA process from point 0:
·         Learn the product
Depending on the product’s complexity, take 1-4 weeks to study the product. A QA leader should know the product better than the developers (he/she is often the only one who has all the pieces of the puzzle).
Read the user guide and official release notes.
Enlist the help of key people in the product chain to help you understand the product better (Product Owner, CTO, System Architect, Developers, Integration Engineer, Technical Writer and others).
·         Write a basic sanity scenario
Usually the best way to do this is by using the marketing team’s demo. The demo will provide a quick POC for the use of QA, and will inevitably be the first test you will run anyway.
·         Regression backlog
Produce a backlog from the regression. Find out which modules constitute the core of the product and start with that. Remember, it is better to have one module in the plan than two with no coverage.
·         Don't collect debts
Write tests for all the new features so that you will need to write regressions only for older features; otherwise the regression backlog will get bigger and bigger.
·         Be involved in the design
When you get involved in the design, you can prevent the occurrence of bugs. Then, when you prove your worth in this area, you can start talking about TDD .
·         Automation
Try to automate the basic flows of the product. This will make the sanity and regression processes much faster and easier and will free up time for you to explore and cover the new features.
If most of your product’s logic is on the server side (which is the case for most products), it is much faster and more stable to start automating the server side rather than the UI.
From my personal experience, although everyone agrees automation is necessary, in many companies the developer will try to keep the code to him/herself. Solving this matter, in my opinion, involves teaching development teams to trust and even depend on the QA testing process.
One small tip: If you find yourself in a situation like that, contrary to what I mentioned above, begin the automation from the UI. It can be used as a POC for you and will provide the way forward to the server side automation.

And if you decide to go with UI automation, try to identify objects by their IDs (if possible).

2 comments:

  1. Hey Adi,
    While one can wish to know the product so well - there is no chance that a manager will get to such details
    That's what your team members are for - you should be able to lead them while knowing less than them.
    When you start a new activity - expecting to have all regression and automation right away is bound to fail,
    Prioritize and choose most important parts, don't write full test plans - just header and short purpose,
    Do start setting the tools to manage testing - use freeware based on DB - these can be converted later if needed
    Do start implementing Automation Infrastructure - but know that you will get no benefit out of these in 1st few months (or if you will - you probably wrote them so bad you will throw them away quite soon(

    halperinko - Kobi Halperin@

    השבמחק
  2. Hi Adi,
    one question that jumps as I read - what you describe here looks like a Herculean size task for one super-hero, how would you approach building your test team (and, just as important, educating and recruiting your developers to test)?

    השבמחק