Who does the testing?

This question is marked as a community wiki and subjective, but please do not close it, I think this is a good question, and I would like to know what the development community has to say about testing.

I have been a developer for more than 10 years, and I still have to work in a company that has a special testing department. Over the years, I have seen that the attitude towards testing has been steadily deteriorating, and recently, management has been taking place after quick results and rapid deployment, and there are many teams that simply forget about the science of development and omit serious testing.

The end result - management is performed with the development speed initially, the application can even work stably in production for a while, but after that something is bound. Depending on the complexity of the application, many may make mistakes, and sometimes all at once. In most cases, these problems are related to the environment, which makes them difficult to isolate and eliminate. A client is an entity that ultimately assumes the role of stress testing because, like it or not, someone must ultimately test the application.

At this point, management feels overwhelmed by the developer. The developer feels that the management did not primarily listen to requests for significant testing, and the client loses faith in the software. As soon as the order is restored, if the product is saved. The developer, ultimately, is the one who is accused of not releasing a stable product, and at the moment switched to the budget on men's days, because the developer spent 2-3 times more on testing the application (in the end).

Is this view realistic? Does anyone else feel this tension? Should developers take professional testing courses? Why is testing left behind? Or is it just my poor condition that I have experienced in the last 10 years of my career.

Any thoughts are welcome. Please do not close the question.

+4
source share
9 answers

In my opinion, developers should never test, since they test "does it work?".

A test engineer, on the other hand, checks that something is “not working,” which is very important to me.

So let other people do the testing, test engineers prefer functional analytics, support engineers, project managers, etc.

+9
source

Personally, everything that I write is checked for unity, if it has any meaning. As soon as he passes such testing, I usually pass it on to friends and ask them to use it. This is always the end user who performs some unexpected action that breaks things, or discovers that the interface you developed, which was intuitive for you, is really quite complicated.

Many managers really need to focus more on testing. I am personally terrified when some code comes out the door without proper testing. In fact, I can think of several applications that I use from different companies that could use a nice unit test, not to mention usability testing.

I assumed that for companies it comes down to the fact that it costs less to devote people to testing or eliminate the inevitable problems later and get the product out of the door?

+3
source

The last two companies I worked on were dedicated to professional testers who conduct both manual testing and write automated test scripts. Testers not only tested the product at the end of the development cycle (when it is usually too late to make significant changes), but were involved from the very beginning of converting requirements into test cases and testing each function as it was developed. Testers were not a separate department, but an integral part of the development teams and worked daily with programmers.

The difference between this and the companies with which I worked without special testers is enormous. Without testers, I think that development in both companies has long stopped.

Unit testing is also important, but developers verify that the code does everything right, and not that it does the right thing.

+3
source

I worked only in one organization that had special testers, and that was in 1983.

Use TDD and it will not be a problem - plus your development cycles will accelerate.

For example, this week I wrote 3 automatic acceptance tests for a complex application. Performing these tests manually takes about 4 hours. Automatic tests take less than 3 minutes. Today I conducted tests more than 50 times, shaking out errors, both small and large.

End result: the application is well suited for end users, and the team has high confidence in its capabilities. In addition, automatic tests saved about 200 man-hours of manual testing just today. They will save even more, like regression tests, as future improvements are made.

Some people argue that TDD imposes additional overhead, which is true only in the most short-sighted prospects. Writing test scripts took about 2 hours. Fixing the twenty errors that they found took the rest of the day. Without tests, I will still conduct manual testing, trying to track (at best!) The second error.

+2
source

Like many others here (until now you were too embarrassed to admit it), but I have users to test my software. I read that this is not the best practice, but I'm not sure what the management has.

+2
source

In ours, we have special testers. However, it is understood by the developer that he conducts his own unofficial testing first before sending it to the tester for more formal testing.

+1
source

At the company I work for:
Programmers check everything => If it compiles, save it (since development is mostly done live, so there is no need to make changes to the live environment) if it does not fix it until this happens. Oh, and unit tests are not used because they take too much time.

Later errors are usually detected by users and / or the project manager, who checks if the project looks fine, but too much to do deep testing.

I am currently correcting parts of projects that have never worked at all, that have not been seen / reported for a year.

+1
source

The developer performs unit testing. But unit testing is simply not enough for the application. Because the developer never accepts their mistakes and does not protect his own code. SO If you want to deliver a good quality product, let the QA team review the application. They test the application from the user's point of view, which helps the organization provide a good application.

0
source

In my company we have special testers. I am one of the testers.

What I feel and think is that the developer is focused on making sure that what they have done (with the code) is checked and works fine. But from the point of view of Tester, they are trying to find errors - therefore, testing is intended to identify defects.

0
source

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


All Articles