>measure twice, cut once. And not the fingers either! On Tue, Feb 15, 2011 at 1:43 PM, Kerneels Roos <kerneels@xxxxxxxxx> wrote: > Wise words from a wise man! > > > On 2/15/2011 1:33 PM, Homme, James wrote: > >> Hi Kerneels, >> I had a Wood Shop teacher who told me measure twice, cut once. >> >> Jim >> >> Jim Homme, >> Usability Services, >> Phone: 412-544-1810. Skype: jim.homme >> Internal recipients, Read my accessibility blog. Discuss accessibility >> here. Accessibility Wiki: Breaking news and accessibility advice >> >> -----Original Message----- >> From: programmingblind-bounce@xxxxxxxxxxxxx [mailto: >> programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Kerneels Roos >> Sent: Tuesday, February 15, 2011 2:27 AM >> To: programmingblind@xxxxxxxxxxxxx >> Subject: Re: Unit Testing in .Net >> >> Hi Dave, >> >> The more I read about it and try it for myself the more I can see the >> value of unit testing. it looks however like something you need to do >> from day one of the coding of a project. It's very hard to come in >> afterwards and add tests to code that is suspect. I'm very impressed >> with NUnit, but the GUI runner I don't find very accessible >> unfortunately. Most frameworks seem to have a command line runner also, >> so one can do that. >> >> Apart from the May 2009 book "The Art of Unit Testing ", there's also a >> seemingly seminal book on TDD from 2002 focussing on Java -- can't find >> the details now unfortunately, the author is Ken Peck. >> >> What I do realise is that , for years now I've been coding and then >> testing while TDD is the other way around. The code then test approach >> is more of a cowboy coder / hacker style which sutes the creative, risk >> taking right brainers :-). To shift to the test then code approach might >> take some time and effort. >> >> Now that I think about it, TDD makes a lot of sense for VI or blind >> folks. If used properly it can minimise the need for debuggers. Don't >> know about you guys, but I don't particularly like using a debugger. >> >> Forgive the rambling. >> >> Kerneels >> >> On 2/14/2011 6:00 AM, Dave wrote: >> >>> With that said, lots of people don't follow TDD or some variant >>> because it does take a lot more time. You also have to consider that >>> test code usually piles up *very* quickly. You could have a few >>> hundred lines of code and to thoroughly test it (i.e. if you used TDD, >>> or if you measure code coverage), you'll need triple that in test code >>> or more. Once you make any changes in the production code, you end up >>> spending lots of time making changes to the pile of test code. >>> >>> Not to say that you shouldn't test thoroughly, but lots don't >>> (especially to the degree they should) for some valid reasons. If you >>> can pull it off, it certainly will give your users less headaches when >>> trying to use your products. It's one of those "open ended" problems; >>> there's reasonable points to stop writing tests, but never a "end" as >>> there's always some other condition you could try for an sufficiently >>> complex piece of software. >>> >>> You also don't want to go down the road of testing user interface >>> components as it requires hooking deeply into OS level events (most >>> ironically, accessibility is useful here). >>> >>> >>> On 2/13/11, Kerneels Roos<kerneels@xxxxxxxxx> wrote: >>> >>>> Thanks Dave, >>>> >>>> It is not so nice to come in afterwards and write tests for classes, >>>> which I'm doing now to ensure everything works right, but I can imagine >>>> a TDD approach could work very well indeed. As I understand it, TDD is >>>> also core to XP (extreme programming). >>>> >>>> For anything new I'm going to write tests before coding and also look >>>> into TDD more formally. Once you know how to code and design algorithms >>>> one should invest in some solid software engineering techniques and get >>>> a good methodology to follow. I strongly believe it will save tons of >>>> time and produce far better software if the project is anything larger >>>> than a simple CRUD system. >>>> >>>> I can't decide if the book "The Art of Unit Testing" is worth the $24 or >>>> not though :-) >>>> >>>> Regards >>>> >>>> On 2/13/2011 8:55 AM, Dave wrote: >>>> >>>>> The general approach advocated by some is that of Test Driven >>>>> Development. >>>>> >>>>> I have to say that whatever I've written using this approach has been >>>>> far more robust when it comes to quality. >>>>> >>>>> The .Net unit test frameworks of which NUnit is only one, all have >>>>> lots in common. Visual Studio comes with a unit test framework as >>>>> well and integrates the running of tests within VS itself. The actual >>>>> tool chosen is a personal choice -- if you like integration with VS >>>>> for example or something independent. What tool's UI do you like, >>>>> etc. >>>>> >>>>> Basically, they all use .Net attributes to "markup" methods and >>>>> classes with metadata; think test name, test description, run time, >>>>> category, etc. Then, at runtime, the runner just via reflection grabs >>>>> all of the tests and invokes them programmatically. >>>>> >>>>> As for TDD, if you're not familiar with it, I'd recommend looking it >>>>> up. Essentially, you write tests before actually even implementing >>>>> anything. The tests serve as a statement of what you expect to be >>>>> true. This obviously requires that you iron out what your class >>>>> interface should look like; this might not be the style you're used to >>>>> and something C++ developers are more acustomed to. >>>>> >>>>> However, as you go along, you already have a set of validation tests >>>>> that verify that your stuff actually works without doing the tedious >>>>> pattern of compile, run, manually check if it works, and rinse/repeat. >>>>> >>>>> On 2/11/11, Jacques Bosch<jfbosch@xxxxxxxxx> wrote: >>>>> >>>>>> I've had good success with NUnit. >>>>>> >>>>>> On Fri, Feb 11, 2011 at 10:25 AM, Kerneels Roos<kerneels@xxxxxxxxx> >>>>>> wrote: >>>>>> >>>>>> Hi, I've investigated NUnit and it'the GUI is quite accessible with >>>>>>> JFW. >>>>>>> Also interested in MBUnit / Galeo but haven't tested the GUI yet. >>>>>>> Unit >>>>>>> testing seems like a brilliant way to develop better code and keep it >>>>>>> working while changing things. >>>>>>> >>>>>>> Advantage of NUnit is that the syntax is XUnit compatible, so what >>>>>>> you >>>>>>> learn there directly applies to a host of other unit test frameworks >>>>>>> and >>>>>>> languages. The more advanced Galeo / MBUnit is also XUnit compatible >>>>>>> should >>>>>>> you need more power later on. >>>>>>> Could anyone recommend a good book on this topic / some comments of >>>>>>> your >>>>>>> own experience? I hope unit testing isn't just an accademic ideal but >>>>>>> actually something that can be done economically. >>>>>>> >>>>>>> I found this e-book (PDF, epub and mobiM): >>>>>>> http://www.manning.com/osherove/ >>>>>>> but it's from 2009 and doesn't seem to cover Galeo. >>>>>>> >>>>>>> Any comments most welcome! >>>>>>> >>>>>>> Regards, >>>>>>> Kerneels >>>>>>> >>>>>>> -- >>>>>>> Kerneels Roos >>>>>>> Cell: +27 (0)82 309 1998 >>>>>>> Skype: cornelis.roos >>>>>>> >>>>>>> "There are only two kinds of programming languages in the world; >>>>>>> those >>>>>>> everyone complains about, and those nobody uses." >>>>>>> >>>>>>> __________ >>>>>>> View the list's information and change your settings at >>>>>>> //www.freelists.org/list/programmingblind >>>>>>> >>>>>>> >>>>>>> -- >>>>>> >>>>>> Jacques Bosch >>>>>> >>>>>> Software Architecture and Development >>>>>> Independent Contractor >>>>>> Cell: +27 824711807 Fax: +27 86 504 4726 >>>>>> E-Mail: jfbosch@xxxxxxxxx >>>>>> >>>>>> __________ >>>>> View the list's information and change your settings at >>>>> //www.freelists.org/list/programmingblind >>>>> >>>>> -- >>>> Kerneels Roos >>>> Cell: +27 (0)82 309 1998 >>>> Skype: cornelis.roos >>>> >>>> "There are only two kinds of programming languages in the world; those >>>> everyone complains about, and those nobody uses." >>>> >>>> __________ >>>> View the list's information and change your settings at >>>> //www.freelists.org/list/programmingblind >>>> >>>> >>>> __________ >>> View the list's information and change your settings at >>> //www.freelists.org/list/programmingblind >>> >>> -- >> Kerneels Roos >> Cell: +27 (0)82 309 1998 >> Skype: cornelis.roos >> >> "There are only two kinds of programming languages in the world; those >> everyone complains about, and those nobody uses." >> >> __________ >> View the list's information and change your settings at >> //www.freelists.org/list/programmingblind >> >> >> This e-mail and any attachments to it are confidential and are intended >> solely for use of the individual or entity to whom they are addressed. If >> you have received this e-mail in error, please notify the sender immediately >> and then delete it. If you are not the intended recipient, you must not >> keep, use, disclose, copy or distribute this e-mail without the author's >> prior permission. The views expressed in this e-mail message do not >> necessarily represent the views of Highmark Inc., its subsidiaries, or >> affiliates. >> __________ >> View the list's information and change your settings at >> //www.freelists.org/list/programmingblind >> >> > -- > Kerneels Roos > Cell: +27 (0)82 309 1998 > Skype: cornelis.roos > > "There are only two kinds of programming languages in the world; those > everyone complains about, and those nobody uses." > > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > > -- Jacques Bosch Software Architecture and Development Independent Contractor Cell: +27 824711807 Fax: +27 86 504 4726 E-Mail: jfbosch@xxxxxxxxx