Nunit/Junit & Nant/Ant & XP

Discussion in 'Computer Science & Culture' started by testify, Oct 28, 2004.

Thread Status:
Not open for further replies.
  1. testify Look, a puppy! Registered Senior Member

    Messages:
    508
    I know a lot of people on the comp sci forums are currently comp sci students, and some of them may actually have comp sci careers. I am getting ready to graduate and I find that a lot of employment opportunities require some experience with Nunit, Nant and XP (Extreme Programming).

    I was wondering what kind of experiences those people in the industry have had with these technologies and techniques. I have looked over Nunit and I just don't see how it can be all that helpful. I can do most of the logical testing in my head without spending the time of writing additional code for it.

    I have also looked over Nant, but what are the advantages to using it over something like...the Visual Studios .NET Builder/Compiler? Is it even worth taking the time to learn?

    As for Extreme Programming, the only thing I really know about it is that it involves taking stories and suggestions from the client you are building an application for. Then the programmer constructs several solutions in a seperate "test" program to see which solution will work best in the situation. I completely agree with the extra interaction with the users of the software, but I don't think it is very beneficial to waste that much time on writing code, which most of the time you won't even use in the end application.

    Any suggestions? Comments? Flames?
     
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. Voodoo Child Registered Senior Member

    Messages:
    1,296
    The various *Units gain more value over time. Your code won't always be maintained by you. I might be responsible for adding some new features, for example. I have little familiarity with your code and the changes I make might introduce giant fuck ups. (Or worse, subtle fuck ups). It is extremely useful, therefore, to be able to run the test suite and see that my changes are in concordance with your programming and intentions. I haven't used nunit, my experience has mostly been with jUnit and pyUnit. Having a test keeps you focused. I often find that I code something and drift away from the original intention. If you have to make a test or tests succeed, then you always stay on track.

    There are several solutions, however, not in parallel. They are iterations. You do some shit, show it to the customer, users and then do some more shit based upon their suggestions and bitching. You go through these cycles increasing the features implemented until you get to the gold.
    I personally don't like the pair programming approach on account of other people suck. Studies show, however, that it is more efficient than go it alone.

    XP is quite useful for small to medium projects or where it is hard to pin down the user requirements. I'm not sure that it scales very well, most people think more rigorous analysis is required for larger stuff.
    I haven't used Nant.
     
    Last edited: Oct 28, 2004
  4. Google AdSense Guest Advertisement



    to hide all adverts.
  5. Voodoo Child Registered Senior Member

    Messages:
    1,296
    Also, I'm against using something called xtreme programming. I'm sorry, it just sounds so gay. If they gave it a cooler name like RUP or scrum, then perhaps I'd like it more.
     
  6. Google AdSense Guest Advertisement



    to hide all adverts.
  7. testify Look, a puppy! Registered Senior Member

    Messages:
    508
    So one thing I'm curious about with Junit, Nunit and the like is whether or not you actually put the test code in with your own code? Or do you have a parallel test project going with your "good copy" project? From what I understand with Nunit is that in your methods nothing can be returned and nothing can be passed. So how does this restriction help in the actual program you're trying to develop? Or do you just right the test version of a class, then see if it works to your satisfation, then comment out all the test code with the useable code implemented?

    I looked at the Nunit example that they had and from I could tell by their "final step example" is that nothing in the class that they used as the example could be used in a real life implementation of a program. Maybe I'm missing something somewhere... at least I hope so.

    I was also wondering what scrum was as well. I have heard that term a lot but I havn't looked into it much. I know it's another development process much like Extreme Programming, but I don't have any clue how they differ. Havn't heard of RUP though, might have to look into it.

    BTW thanks for the info Voodoo
     
  8. Xerxes asdfghjkl Valued Senior Member

    Messages:
    3,830
    I've experimented with 'xtreme programming' briefly. Voodoochild is on the mark-- its about the gayest thing ever devised. Even more gay than the 'Kool Desktop Environment'. But like KDE, it has some definite perks... Better work efficiency, more structured programming environment (you have to cooperate..if thats a good thing) etc.

    My preffered programming style would be more in the way of the fluxbox philosophy. No inteference from the client, completely customizable, and fast.
     
  9. testify Look, a puppy! Registered Senior Member

    Messages:
    508
    But doesn't having the client close at hand also mean that you will have to refine a lot less things later on in the development process. I just recently finished a project where my "team" and I basically went with the flow and basically had no amount of organization at all. What we ended up with was a pissed off "team" because the client dropped a few huge ideas (and requirments) on us at the last minute. It was basically our first project that would be used by an outside source, and I have learned that we will need some sort of planning and organization for next time.

    That's why I was looking into these programming styles, because I think they would help us out a lot in the end, when the client decides to show up with a load mroe features that they want implemented.

    I looked at Scrum, looks like it would be fun to use, but I think it's probably more useful in a very large project where we're looking at more than 3 months. Actually, now that I think of it I do have a project coming up that could use that...hmmm.

    Xerxes: Do you take really good notes when the client is first telling you what they require of the application you are developing? That's the only way I can think of to get around the "client doesn't want the end product" problem with your "fluxbox philosophy". ...and Gnome?
     
  10. Voodoo Child Registered Senior Member

    Messages:
    1,296
    It runs in separate classes that aren't compiled when you compile your project. Basically, you can run the TestRunner and it does your battery of tests setting up the environment for each one. It doesn't necessarily run your project and the running of your project won't execute the testsuite(well it could, but..).
    Methods are void and parameterless, however, you use assertEquals(), assertTrue(), fail() etc. methods to determine whether your test works(that's in java). These methods presumably (I have no idea about the guts of the TestRunner) have code that fails/passes the test, does the diagnostic messages.
     
  11. Xerxes asdfghjkl Valued Senior Member

    Messages:
    3,830
    I haven't done much coding for other people, ie 'clients', so I can't say as well as you. But I think it would be much better to sit with them at the beginning, write down EVERYTHING they want on paper and get it done as efficiently as possible, making sure that if any serious changes need to be made, they can be done without too much hassle. And also to make them aware that you did *your* job exactly as they requested. A good software engineering background should make this possible.

    But I know it can be hard these days when programmers are treated like commodities... Xtreme programming or not, they can drop a bombshell any time they want, and they wont give a &*(% how much trouble they cause.

    As for gnome..well kind of like KDE, but more rigid

    Please Register or Log in to view the hidden image!

    After 1.4..Nobody likes it.
     
  12. testify Look, a puppy! Registered Senior Member

    Messages:
    508
    I was wondering your preference on the two. Or do you go completely console?
     
Thread Status:
Not open for further replies.

Share This Page