|
|
||
David Herron's BlogJava testing and "test first development"Posted by robogeek on July 13, 2005 at 04:24 PM | Comments (2)My first posting drew a question "does Sun use 'test first development' practices". So, let's talk about that a bit. I can only speak for the Java team as that's where I work. You have to remember that Java is a 10+ year old project with a lot of history. "History" can mean, as it does in this case, that procedures we've been following for 10+ years often interferes with adopting the latest-and-greatest of development methodologies. Maybe. I'm going to remain at the high-level picture of what we do. There's generally 4 areas where Java tests come from:
It's the Unit tests written by the developers that is the closest to the query if Sun does "Test First Development" during the development cycle? What I'm most familiar with is the functional testing SQE does, as that's the team I've worked in for 7 years. Before joining the SQE team I'd spent 8+ years in different software development jobs, and it was the functional test suites I'd worked on here which gave the most "interesting" software development challenges I'd seen. As a typical application developer the scope of what you're developing is pretty limited. You have some functionality to develop - e.g. I used to write email applications, and for example there's only a certain amount of functionality to an address book module. Your customer has limited flexibility, because you're giving them a user interface and they can only do what you allow them to do. The small number of options limits the combinatorial expansion of the number of things to test for, etc. However the customer in our case is the Java developers in the field writing applications using Java. Those application developers have free reign to do whatever they want, only limited by their ability to understand the Java platform and writing software to use it. The immensely larger number of options our customers have mean for an immensely bigger combinatorial expansion on the number of things to test. That means that when an SQE team member is writing tests for a feature - we have to understand the feature from many, many angles. Most of Java's features can be used in lots of ways, and are never used in isolation from other features. This last point makes for an interesting distinction between unit testing and functional testing. Unit testing concentrates on individual pieces of functionality, and verifying that each piece works. But you could have a zillion pieces, all individually tested and validated. However the product could still have bad quality unless you verify the individual functions all work together. This is where functional testing comes in, to bring the functionality together and test it in a way that more closely resembles the real world use of Java than you would capture in a Unit test. Bookmark blog post: CommentsComments are listed in date ascending order (oldest first) | Post Comment
| ||
|
|