How to set up a quality control department?

I am a senior member of a small team (2 other programmers). We are all new to the company and I am creating the entire dev infrastructure. So far I have an excellent version control system (Git), an excellent problem tracking system (Redmine), and I'm going to set up a build environment (Hudson). Now I am studying the QA department setup. I would like to set up a flexible dev process like Scrum, but this is not working yet. So, how do I get started on QA? What is a good process for developing test plans, following plans, reporting results? Are there any tools for organizing and conducting a QA?

Thanks!

+4
source share
2 answers

You indicate that you want a QA group / department, but you will not say why. There are many assumptions around what the QA group is doing.

The basic nature of QA is to ensure that you build the right product for the first time. Software Quality Assurance usually focuses on the code development process.

Or are you just looking for someone else to check your code for you?

If you focus on the QA testing aspects, I would put as much as possible into the development of your group. Automated tests go a long way to helping improve your chances of getting it for the first time. In addition, tests significantly reduce the risk of changes in the product. And do not distract most of the test recording to a subset of the command. You want to make testability a key aspect of your design, and for developers who don't write enough tests, don't give it enough weight in your projects. Counting people or people who go through a lot of tests means that you cannot run them very often, and you tend to underestimate old regression tests.

If your focus is on QA, and not just on testing, you should appoint someone who will play a major role to look at the product, its complexity, metric and test coverage to determine if there are enough tests in the right places in the code base . This role will not be different from how the architect controls the overall design or someone specializing in usability and / or design that defines the development of the user interface. The role should be to protect the correct work, and not necessarily to carry out this work.

The only exception that I personally have in all of the above is the need for at least one person with the right mindset to conduct exploratory tests . Experimental trials should be a subset of all the trials described above. And, since problems are detected, it should be used for feedback in automatic testing (for example, if an error is detected, part of the correction should be written testing demonstrating the error and correction. And if the testing coverage is low level of code complexity, write several other tests to make sure that there are no additional errors). The user interface, in particular, needs research testing. The permutations of the methods used to solve the problem, as well as the difficulties of automating tests in old user interface interfaces are often well served by exploratory testing.

Update: You Can Check Episode 164: Flexible Testing with Lisa Crispin

+5
source

If you are going with Scrum, I suppose you mean all the flexible approaches. Will there be test plans, error reports, etc. A little overhead?

As for the tools, I would suggest adding a wiki or jira as a place to store tasks, related user stories and related errors.

Regarding the creation of the QA department (one person as the Oo department), I would suggest abandoning the QA department. label, just hire another team member who will focus on testing. You may need a person who worked in a flexible situation and had testing experience. It would be nice if this person knew exploratory testing (tools and techniques).

If you are thinking about test automation (since you already have Hudson), the tester should have some programming skills. On the other hand, you can leave automation to developers and focus on getting a good tester than on an average tester that can do some code. Anyway, I would do a little testing automation, some regression.

One thing, do not fall into QA / process / test plans / documentation heavy / detailed manual scripts / process-oriented things. Keep everything moving, otherwise soon you will notice that it really does not work.

=================================================== =================================================== =================================================== =================================================== ======= [===

So, I assume that I do not intend to contribute to this open source project, but rather to make some plugins that will use its code, but also expand its functionality to fit your needs in your own project? Cool.

So you have:
1) An open source project developed by the other party, with its own schedule, project plan, etc.
2) Extensions / plugins that you develop that make this project suitable for you
3) Your own project, which has some functions delegated through plugins for an open source project.

I assume that all of this integrates at the code level through the messaging engine. In this case, I would say that you need someone who can code, regardless of their background (although the developer will be easier to find, but will he be interested in writing automation tests?). In any case, you need automation tests to:
A) Obviously, your project - write unit tests, as you are now, or maybe a little more.
B) Unit tests that ensure that any change in your main project does not interfere with its interaction with plugins / extensions (for an open source project)
C) plugin / extension unit tests - this is the code you write, so you need unit tests since you need A for your project
D) (not so obvious part) you need tests to see if changes in an open source project affect your plugins.

Of course, A and B like C and D will somehow overlap, but formally, what you need to know.

So, returning to the original question, I don’t think you need a QA department (by the way, does it mean to reset department labels and have one command?) In the traditional sense. Take a guy who can (and loves) to create automation tests, perhaps at the Unit Test level. Go with Scrum. There is one team. Skip comprehensive documentation, formal process, ISO / IEEE standards for testing. Create easy documentation just to have basic / general goals / approaches / assumptions for reference.
... and if that doesn't work, discuss it in retrospect, try to tune things, try something new. Continuous improvement!

+6
source

Source: https://habr.com/ru/post/1314662/


All Articles