We have started to go down the path of TDD for all of our .NET programs as there are many tools available to support that type of development in the .NET world that are free/open source. One of our projects has over 600 automated unit tests and about an 88% code coverage rate.
To successfully pull it off it requires a good foundational infrastructure that allows for repeatability in every facet of the program and smaller self contained chunks of code and a good mocking tool (such as Moq in .NET world).
For instance every part of the program that may do database reads/writes should be mockable, or at the very least you can do integration testing in addition to function testing all in one shot if you wrap everything in your unit test within a BEGIN TRANSACTION / ROLLBACK TRANSACTION infrastructure.
Many ORM's in the .NET world already have that in mind, and it's very easy to create unit tests for your functions as a result.
The tricky part is date/time injection. To make functions which need to yield time sensitive results repeatable with known outcomes. The popular one to use is Typemock Isolater in the .NET world.
TDD, is actually fun. It's sort of a game to see if you can get the most code coverage with your unit tests.
When your done, you get a huge amount of return on investment because you can re-run hundreds / thousands of automated unit tests at a click of a button to see if you caused any software regressions on new releases.
Now doing this in the RPG world. Good luck, we have tried to look for a good solution. The closest thing we have found that comes close to what we have in the .NET world is to use very expensive tools such as Arcad. Also, the arcad tools are very complex to setup/use. Much more complex in my opinion then all the tools you have available for TDD within Visual Studio and from a few addon packages such as Moq, and your favorite unit testing platform (NUnit, xUnit, MBUnit, MSTest, etc).
-----Original Message-----
From: Michael Ryan [mailto:michaelrtr@xxxxxxxxx]
Sent: Monday, December 12, 2016 1:48 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>
Subject: Re: Development Standards
I wonder how much training would be required to implement TDD? That's my thought process - how can I get to more advanced methodologies when people don't even develop the same way.
On Mon, Dec 12, 2016 at 2:40 PM, Buck Calabro <kc2hiz@xxxxxxxxx> wrote:
On 12/12/2016 2:28 PM, Michael Ryan wrote:
implement, and 3. Decide on enforcement. I don't know the odds of
pulling this off - it's going to depend on management buy-in. But,
they asked for ideas, so here we go.
Take the broadest viewpoint your situation allows. For example, I
think that there is immense utility in TDD, and if at all possible,
that's where I'd stick my pry bar.
--
--buck
Visit wiki.midrange.com and register for an account. Edit a page that
helps you, and because it's public, you'll help someone else, too!
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
http://amzn.to/2dEadiD
As an Amazon Associate we earn from qualifying purchases.