A company has small dev teams over a few countries.
During a few years it releases successfully a software product (client in MS Visual Studio 2008 C++, C# and server in Java) based on mathematic and cross-branch engineering fundamental sci (and high-tech) researches.
The software development is not based on TDD (test-driven development), there is no unit-tests, as well as QA department, etc.
This company initiates the introduction of QA group (department and, well, QA practices/policies) of 2-3 persons.
The first priority tasks are to establish (automated) testing practices of GUI and API.
Is introduction of unit (or mock) testing or TDD(test-driven development) essential and obligatory for success of QA?
Update:
Database storage is MS SQL Server.
Update2:
Thanks to all but I posted http://testing.stackexchange.com/questions/791/what-are-in-qa-besides-testing
I understand that after-the-fact unit-tests (or, rather, mock) probably should be incorporated for recurring bugs but should they be the first issue to introduce?
What are the possible first priority issues and their orders?
Should after-the fact unit-tests introduced by developers or by "testers"?
Can QA be possibly efficient without Unit- (mock-) testing at all?
Update3:
Thanks for comment that TDD is not Unit-testing, I started to read:
Asked after having read:
Across engineering teams, both development and quality assurance engineers use test cases to develop code & execute them. So, the success of TDD is dependent on well-written test cases covering all the requirements. It is essential to involve the QA team in every phase of TDD.
In order to build better software at speed, QA and development teams should unit test early with the build, perform it regularly, and refactor when required. Unit testing is a must-have skill for a modern developer as it can help in writing bug-free code and it is essential to write quality tests.
Conclusion. In my personal experience, I've seen many organizations and "professionals" claim that TDD is absolutely necessary for software development, but I've never seen it strictly mandated. It is still up to the developer or team to follow through on it.
Programmers who adopt a unit test framework will build code more slowly than ones who don't. The programmers who don't do unit testing still make changes. But those might include a change to "step on" a change, and they might preset the expectation that the test will fail, also called turning red.
As stated in the comment above, TDD is not the same as Unit testing.
My Advice:
Having been in a similar situation before (I was the founding QA-er at a company that up till that point had no formal QA methods), I would stress that you need to make sure that the QA process is non-invasive to the programming processes.
If the developers are already used to TDD methodologies then it might be easy to implement TDD, but based off the information it sounds like implementing TDD would probably slow down the development (at least till they got used to it).
If you are wanting to baby step things then I would suggest Unit testing. That's what I implemented when I was called to the same task, and then over time I introduced other things.
Answers:
QA can be effective without structured unit testing depending on the quality of persons performing the Qa duties. However QA is more efficient when there are structured unit tests that everyone can follow.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With