Quote:
Originally Posted by daveT
I'm also saying that an external tester loses value when you are dealing with weak devs. You need a code reviewer or someone to go through and rewrite everything.
It should be a given that you have developers who are able to write code that meet whatever standards that are set and enforced by the team. If not, you're not going to deliver but this doesn't have much to do with bugs in production. If it does, then you have bigger problems and you should fix that first.
Quote:
Originally Posted by daveT
In the current contract, we are using Python. This is great and all, but nearly every single loop and string manipulation involves an index or counter. This is incredibly non-pythonic, and only made worse because Python's style of indexes and results of many functions is counter-intuitive. This not only makes things hard on the person writing the code, but makes things very difficult on the person who has to both write tests and clean up the code. Good code is both functional and has an obvious intent.
This kind of thing is mostly irrelevant at scale and doesn't have much to do with defect rates but more with velocity. If your tests care whether loops and string manipulation use idiomatic python or not, your tests are bad. Also, your job as a test writer isn't to write tests that confirm what the current implementation is doing, but to write tests that verify whether the code under test meet the expectations, implied or explicit.
Most of this just feels like you've had to deal with code written by others and not having done this much in your career, you are having a difficult time relative to the standards you have for yourself. That is fine and you will learn to deal with this over time but it doesn't have much to do with the challenges faced by the industry in terms of defect rates and shipping frequently without breaking stuff. You have to think through what it is that you're trying to achieve here and consider everything through the lense of shipping working software to customers. Here you're venting about the things that are making your work difficult but making your life easy is not the same thing as shipping high-quality software. "People are writing code that I have a hard time understanding" is not a software quality problem per se.