Sit back, and wait for the approaching information overload! :) On Tue, Feb 15, 2011 at 3:01 PM, RicksPlace <ofbgmail@xxxxxxxxx> wrote: > Hi Guys: What is this Unit Testing all about? The way I always worked was > to develop a project in a modular fashon. I plan, design and then code and > test one module at a time so I know my modules are working before going on > to the next module. How is this diferent from Unit Testing? I see a bunch of > software out there for Unit Testing and it all sounds complicated but > perhaps I don't really understand, actually I really don't understand, what > it is all about. > Later and thanks: > Rick USA > > ----- Original Message ----- > *From:* Jacques Bosch <jfbosch@xxxxxxxxx> > *To:* programmingblind@xxxxxxxxxxxxx > *Sent:* Tuesday, February 15, 2011 6:51 AM > *Subject:* Re: Unit Testing in .Net > > >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 > > -- Jacques Bosch Software Architecture and Development Independent Contractor Cell: +27 824711807 Fax: +27 86 504 4726 E-Mail: jfbosch@xxxxxxxxx