|
Especially when you need to modify something that hasn't been touched in years. Even if you wrote the code.
I write unit tests to make sure that other people don't break the code that I wrote.
|
|
|
|
|
I have never written Unit Tests per se.
I found the way that works for me was to use small apps to test functionality as I develope it, once I am happy with the results I integrate it in the real project.
Once the real project get to a stage, then I test functionality as soon as it makes sense, when parts get ended.
When ended, I play a couple of days with the debug version before compiling to release and play again for a couple of days.
Then I deliver.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Come to the dark side Nelek... come... (evil smiley)
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: Come to the dark side Nelek... come... (evil smiley) I would, but I am too lazy and procrastinator to do it now.
Maybe tomorrow?
Jeremy Falcon wrote: (evil smiley) Something like 😈 this?
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Nelek wrote: I would, but I am too lazy and procrastinator to do it now. Thanks for being honest, buddy. This is why we get along.
Nelek wrote: Something like 😈 this? Yes!!!!
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: Thanks for being honest, buddy. This is why we get along. This was a bit joke and a bit truth. You can read the reality a couple of messages below in my answer to haughtonomous[^].
Jeremy Falcon wrote: Yes!!!! Win+"." = 🤯
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
modified 22-Apr-24 6:26am.
|
|
|
|
|
Nelek wrote: You can read the reality a couple of messages below in my answer to haughtonomous[^].
Nelek wrote: Win+"." = 🤯 Holy crap. Never knew that. 💯
Jeremy Falcon
|
|
|
|
|
Jeremy Falcon wrote: Holy crap. Never knew that. 💯 The only wasted day is the day where you learn nothing new
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Unit tests come into their own when part of the build process. Write some code, check it into source control, the test suite is launched and a short time later when the suite of tests has completed you see what you've just broken, and fix it plus adding a new test to ensure that doesn't happen again. Trust me if your application/library/whatever is non-trivial, it saves a huge amount of time and much annoyance and embarrassment when a new release bounces back.
It helps if you think of the tests as part of the coding work, written as the coding progresses, not a dispensible add on afterwards. In fact, sometimes it was the writing of a test that helped me realise I had made a mistake in the code.
In my experience it was always the less experienced, less diligent, over hasty developers who rebelled against it (not to mention the few who thought they were too clever for their work to need testing, too sexy for their shirt, in fact). And of course the poor quality of their output was reflected in their reputation in the team/business.
|
|
|
|
|
haughtonomous wrote: In my experience it was always the less experienced, less diligent, over hasty developers who rebelled against it (not to mention the few who thought they were too clever for their work to need testing, too sexy for their shirt, in fact). I have been more or less half my working life programing PLCs and Robots, you couldn't program tests like this in them, additionally every few projects (timeslot between a couple of weeks and some months) there were something new that I needed to learn quick to make the project, so I never cared to go out of scope with my time as I already had enough new staff to keep me busy / happy. That's why I got used to test in other ways, and believe me, I can be really nitpicky while testing.
When I came back to high level languages, I had to learn C#, WPF and the style of my senior, plus full responsibility on the PLCs interacting with the software. I know about the different Testing Trends, but being honest, I didn't feel like needing them that much.
It might give me a bad surprise somewhen? for sure.
Has it until now? Not once
Will I learn it after a bad situation? very probably.
Am I going to learn it right now? no, I have better things to do with my time.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Nelek wrote: I have been more or less half my working life programing PLCs and Robots, you couldn't program tests like this in them, additionally every few projects (timeslot between a couple of weeks and some months) there were something new that I needed to learn quick to make the project, so I never cared to go out of scope with my time as I already had enough new staff to keep me busy / happy. That's why I got used to test in other ways, and believe me, I can be really nitpicky while testing. Keep in mind, I don't know PLC programming, so there's a chance I'm talking out of my arse here... but would it be possible to at least treat the parts that interact with the hardware like a UI layer of sorts? If so, you can still test a logic layer irrespective of it's IO, etc.
Nelek wrote: I didn't feel like needing them that much. Can't blame ya man. I felt that way too for years. Didn't realize at the time though it's only because I've ever seen lousy tests written prior to that. It's more the fault of the dev though IMO. Like lousy tests are a waste of time that accomplish nothing. Good ones.. are... well... good.
Nelek wrote: Will I learn it after a bad situation? very probably. That's what it took for me.
Jeremy Falcon
|
|
|
|
|
In PLC Programming you have a limited set of instructions, some more than in assembly. And you almost speak directly to the hardware.
For instance:
If (a == true)
{
return;
}
if ((b == true) && (c==false))
{
x = true;
}
In PLC that would be: ("i" for input register and "o" for 24 V / 0.5 A output register)
a = i0.0
b = i0.1
c = i0.2
x = o0.0
A a
BEB
A b
AN c
= x
Believe me when I say, you can't test like in high level.
Checking out boundaries or plausibility is something I have done too though, but the logic behind is pretty diffrerent as in Unit testing.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Nelek wrote: Believe me when I say, you can't test like in high level. I believe ya man. On the upside, you get cool points for going low level.
Nelek wrote: Checking out boundaries or plausibility is something I have done too though Noice
Jeremy Falcon
|
|
|
|
|
I've hardly ever written a unit test. The few times I did, it was to test a complex, standalone function. Other than that, the test harness would have been far too much work. System and regression testing (automated) are where it's at. Where I worked, developers tested new features--code that they'd written, in many cases largely standalone--but almost always ran tests with their code integrated into the entire system.
A decade ago, Jim Coplien (one of the original C++ gurus) wrote a good article about this. It's fairly long, so scroll to the bottom for his recommendations if you don't have enough patience.
Why Most Unit Testing is Waste | PythonTest [^]
|
|
|
|
|
Greg Utas wrote: Other than that, the test harness would have been far too much work Overlooking the "too much work" part... People that say that don't know unit testing. I can promise you that. Not sure what you define as harness, but if you mean setup, say for something data-driven, then mocking and fixtures are a thing. If anyone thinks they don't help alleviate any issues, then they don't know unit testing.
Greg Utas wrote: A decade ago, Jim Coplien (one of the original C++ gurus) wrote a good article about this. It's fairly long, so scroll to the bottom for his recommendations if you don't have enough patience. Not trying to turn this into a debate, but you should know that titles don't mean jack to me. Don't care if they wrote an article or not or if he knows C++ or not. Doesn't mean that automatically qualifies him as the expert of all things ever created. I'm not coming at this from a n00b man; I'm just keeping it casual instead of preachy.
I can tell you this man, it's usually the people that know the least about a subject that have such strong opinions. Not always, but a lot times that's true.
Jeremy Falcon
|
|
|
|
|
Titles also mean nothing to me. The fact that I have some respect for Coplien is therefore telling.
Maybe unit tests work for you. I developed frameworks for most of my career. To test them, I developed applications that used them.
|
|
|
|
|
Greg Utas wrote: To test them, I developed applications that used them. That has been my approach for long too, without programming frames but Apps instead.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Greg Utas wrote: Titles also mean nothing to me. The fact that I have some respect for Coplien is therefore telling. Fair enough.
Greg Utas wrote: Maybe unit tests work for you. I developed frameworks for most of my career There's absolutely no reason a framework would prevent unit testing. If you think that, and I swear I'm not trying to be mean, but you don't know unit testing. And that's ok... I don't know everything.
So, just say you don't wanna do it because you don't wanna do it.
Jeremy Falcon
|
|
|
|
|
Quote: There's absolutely no reason a framework would prevent unit testing. I wasn't talking about a framework preventing it. I was talking about testing the framework itself.
|
|
|
|
|
Greg Utas wrote: I wasn't talking about a framework preventing it. I was talking about testing the framework itself. I know. Try again. I also know it's clear this conversation isn't gonna go anywhere. You can't say "bruh I don't know it and I don't wanna use it just because". Which means, we're just wasting time here.
Jeremy Falcon
|
|
|
|
|
If you develop a framework, you need to eat your own dog food. A cliche, I know. But building an application to test it uncovers not only bugs, but things that should be added or reworked to make developers' lives easier.
We're undoubtedly wasting time here. You're not interested in any contrary opinions but just want to virtue signal.
|
|
|
|
|
Stop with the insults Greg. You do not amuse nor impress me. Also, I never said to not write a consuming application. You assume. And, it's clear you cannot absorb my posts by virtue of not understanding what I said when you misunderstood "framework". So just stop. You don't know a thing about unit testing and you would rather devolve into trite narcissism and demonstrate your lack of maturity.
Jeremy Falcon
|
|
|
|
|
Jeremy you are spot on; as the learned say: the more you know, the more you realise how much you have yet to learn.
And the converse, of course.
|
|
|
|
|
haughtonomous wrote: And the converse, of course. 100% man.
Jeremy Falcon
|
|
|
|
|
Oh and please don't turn this into one of these dumb git-sucks type debates. I'm too old for that.
Jeremy Falcon
|
|
|
|