I (KimballSampson) want to use something like Wiki to design a UnitTest test plan. My RightsManagement application for Discovery Communications is VAJ/EJB using WebSphere and combines info from Oracle and MS SQL Server. I really think I used ExtremeProgramming to build this system before knowing what it was, also, I've made extensive use of the FactoryPattern before knowing it was a DesignPattern.
4/9/01 Update on JUnit implementation
Okay, so now I realize that to implement something like JUnit for automated testing that I must take a bottoms up approach, and not a top-down as discussed below where I just listed all my Classes alphabetically. I realize that I've got to write the UnitTests for my base classes, and yes, Interfaces. The benefit, is that it's easier to test my base classes because they aren't as entwinded in the web based Framework.
4/6/01
Ok, I've just Discovered the Free Java UnitTester called JUnit, I've been digesting it over the past couple days. The first issue that comes to mind is, "How am I going to integrate this into my application?" The challenge to me is that I need to test my Classes as they function in a Web Environment, not to mention EJB database transactions, not to mention Oracle stored procedures, not to mention (.JSP) servlets, and not to mention an in-house developed Session Managed Servlets framework.
My initial thinking is that JUnit won't quite do in total. But now I'm thinking, I need to build a testing component that is Web based the way the application runs. I figure, I'll start the application up the way it normally does, and they have a hook in there knowing that the developer has logged in, so that it may give access to the Testing Pages.
4/6/01 - KimballSampson
Steer away from any testing strategy which involves a person logging in and performing tests manually. It's time consuming and error-prone. A decent UnitTesting tool, such as JUnit, can test your application at many levels, including the Servlet, EJB, and Database testing. JSP testing is harder, but there are tools such as HttpUnit and J2EEUnit that can help out there. -- rw
The question might sound a bit silly, but we are talking about automated UnitTests here, right?
Well, I'm sure it will be a hybrid implementation. I know for sure that my stored procedures will have an automated testing script. The goal for me is turnaround time. I don't want it to take more than 3 hours to complete the UnitTests. (Is that reasonable? I don't know). If we can perform the UnitTests manually in a reasonable amount of time, then why not?
The goal should be to run your UnitTests over the affected part of the system every time you make a change and compile. Doing the tests manually gets very dull even if it's quick. It's a lot more efficient to make them automated. For example: I run my UnitTest approximately once every 10 minutes. That's six times an hour, over eight hours, for 48 executions a day. If the UnitTests take more than a minute to run, they cost me an hour of my productivity... whenever the cost goes up, it means that I need to componentise the system some more, as I run the UnitTests only over the active component. When I go to integrate my changes, I run the full suite of UnitTests, PLUS the acceptance tests. I integrate three to four times a day. -- RobertWatkins
I'll just start out by listing all the packages/classes for RightsManagement. I don't think I'll list the interfaces since they are totally abstract and have no code to implement. If the Application has Compiled, then I guess I've passed the UnitTests with respect to Interfaces.
Actually, there's a lot to be said for "testing interfaces:" the interface defines a contract that all classes implementing that interface must satisfy. No, a successful compile is not a sufficient test; it only shows that the implementing classes have the appropriate method signatures. You need a test for each interface to see if each implementation of the interface follows the rules of the interface. -- JeffGrigg
See TestingInterfaces for more information -- rw
Do you really want to do this sort of thing in a public forum? Most companies avoid talking about the guts of their products in public.
It's a great idea to use a WikiWikiWeb for this although as mentioned above, you may want to install your own Wiki at your company instead of using a public one... Check out WikiWikiClone for a place to find a Wiki that right for you.
Yeah, I won't divulge too much, but really, the only thing I'm giving away is that fact that we are using Java, and EJB, and Oracle to track our ContractedProperties?. But all you need to do is turn on the TV to realize that we own some sort of right to Junkyard Wars.
Also, I'm not really sure how this thing will flesh out, really, I'm just brainstorming here, further, I've never really been on a project where the code we developed was worth anything to anyone else, unless they had us around to implement it.