News for hackers. Stuff that matters.
Re:Lean Testing or Why Unit Tests Are Worse Than You Think by ams6110 on Monday July 16, 2018 @08:23AM (#17540708)
Maybe I'm a worse than average coder, but I find it nearly impossible to write a "unit" of code without also writing one or two bugs along the way. So whether you do your testing ad hoc as you develop, or write unit tests, you do have to spend time in testing each unit of code you write. It doesn't seem to me that formalizing this into a repeatable unit test is adding a lot of real extra work.
Re:Lean Testing or Why Unit Tests Are Worse Than You Think by Retric on Monday July 16, 2018 @09:03AM (#17540951)
I would suggest trying to write correct code without unit tests. They fill up mental capacity making it harder to think about then write correct code in the first place.

Keeping below 1 bug per 100 lines of code is viable simply by being careful and thinking things through. That's a long way from perfection, but it really helps.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by dpark on Monday July 16, 2018 @10:43AM (#17541626)
Advice that boils down to “try harder” typically provides no value. If you want an outcome to change, you have to change an input. Better tooling or better processes may achieve that. Trying harder rarely will, because most people are already trying quite hard to do a good job.
Re:Lean Testing or Why Unit Tests Are Worse Than You Think by Retric on Monday July 16, 2018 @10:53AM (#17541730)
I think people may be reading this backwards. I am specifically saying don't try as hard. Don't think about unit tests or anything else when writing correct code for a function.

Once you can generally write mostly correct code then you can work on improving your process. But, until most of your functions are working when you right them just work on improving that.

Edit: And yea quality may drop as part of this transition, but you need to get a feel for how much you can pay attention to.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by dpark on Monday July 16, 2018 @11:01AM (#17541797)
You’re saying that if you have a problem with code correctness, the solution is to just try harder to write correct code.

The tests are there specifically to help find the errors that “trying harder” didn’t catch. You don’t get a higher quality result by cutting QA.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by Retric on Monday July 16, 2018 @11:13AM (#17541898)
I don't necessarily think he has a problem with code correctness after QA. I think he has a problem with code correctness before QA.

You can build a factory that has a Great QA process that finds all faults and corrects them. But, inside the factory you still want to minimize the amount of defects for QA to find. Either way you still need QA, but it's easy to get into the habit of improving QA vs improving the initial process.

PS: One exercise I did for a while was every time I found a non syntax bug in a function I just wrote (aka bug at run-time) I would start over and rewrite it. It's painful, but 'Build' wait let's look at this again if I hit run and it does not work that's going to be painful. So is this actually correct? Anyway, doing that showed me how important it was to just focus on the code (and what it means) to exclusion of everything else.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by dpark on Monday July 16, 2018 @11:25AM (#17542017)
If you drive improved quality into the initial product phases in a factory, that’s still QA. QA is not an independent process unless management is incompetent.

But you will not drive significantly higher quality into earlier phases by telling your factory workers to try to do a better job. You drive higher quality by analyzing where your processes are failing you and changing them so that they no longer do.

If your workers are consistently failing to tighten bolts sufficiently, you can add a QA step to check the bolts every time, or require your workers use a torque wrench, or use a robot to make this more consistent. But you have to do something other than telling them to try harder. You undoubtedly told them to try harder already and it didn’t work. Now you need better tools or processes.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by Retric on Monday July 16, 2018 @12:15PM (#17542458)
QA let's you build a robot to tighten a bolt, then build a robot to test the bolt is tightened and repeat as needed. It's inherently output focused.

However, the lady designing the factory in the first place should know if tightening bolts or using an arc wielder has more issues. So sure, QA should include checking the oil level inside a robot in the factory to avoid problems in the first place. But QA is not all inclusive it's not for example part of the collage education that's training your workforce other than perhaps a requirement that they have said degree.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by dpark on Monday July 16, 2018 @01:13PM (#17542953)
I'm not sure what you're trying to get at. Production is output focused.

QA is the system of trying to produce at the desired quality. Anything done to improve quality is QA, including whether you hire better employees or train the ones you have. You can define QA more narrowly if you like, but then we're arguing semantics and we're already off in the weeds.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by curun1r on Monday July 16, 2018 @12:52PM (#17542766)
> until most of your functions are working when you right them

Heh...irony alert. You're advocating focusing on just getting it right the first time and you didn't get write right.

But seriously, the people you're responding to are correct. Any process that relies on humans being less error proneis bound to fail. You need to either create a process that makes humans less error prone (e.g. checklists) or embrace our propensity for making errors and plan for that eventuality.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by blktiger on Monday July 16, 2018 @09:51AM (#17541222)
I find that writing unit tests helps me think about the code so that I write better code. Plus it generally forces me to make the code more modular than I might otherwise. YMMV
Re:Lean Testing or Why Unit Tests Are Worse Than You Think by Retric on Monday July 16, 2018 @10:00AM (#17541282)
If it's working for you then great. I am specifically responding to:

> I find it nearly impossible to write a "unit" of code without also writing one or two bugs along the way

Finding bugs early is great, but minimizing bug creation is even better.

Re:Lean Testing or Why Unit Tests Are Worse Than You Think by verinus on Monday July 16, 2018 @09:46AM (#17541189)
THen why not think "in-code"? I mean thinking through all aspects of edge cases and the like would likely result in some written documentation- why not do it in code then?
Re:Lean Testing or Why Unit Tests Are Worse Than You Think by Retric on Monday July 16, 2018 @09:59AM (#17541272)
You can only focus on a relatively small number of different things at the exact same time.

  1 3 2 5 9 2 8 7
vs.

  1 3 2 5

  9 2 8 7
Memorizing the first sequence is trivial, but dealing with each half independently is much less mental effort. Now each idea can be more complex than just a number, but even still you make fewer mistakes by removing mental overhead.

PS: Now, their are a lot of tricks on how you can get better at this stuff. But if the parent poster tends to write bugs in most functions then simplifying things may help.