>I jumped over to the Agile Development way of working several years ago. One of the problems with the way current standards are developed in my opinion is the fact that there is very little validation of the requirements. If there is validation of the requirements it is an entirely manual process that is pushed to the very end after “we have all the requirements done and implemented.”
This approach to validation of your end users requirements is the same problem that happens with traditional waterfall development of sofware applications, you miss things. In fact, you may accidently have deleted something several months ago, that is now just being caught. Or if your standard organization releases it’s specifications once everything is done, the mistake might not be caught for several years.
- Verification that existing requirements still work.
- Verification of backwards compatibility and forward compatibility.
- Verification that new requirements are implemented as asked.
- Verification that a team working on the same schemas doesn’t accidently break other consumers of the schemas. (i.e. common development, and continuous integration)
- Automated Testing – elimination of the human error that can/will happen with manual reviews.
There are several ways that an organization can implement unit testing. Depending on the tooling you are using and your comfort level here are some options:
- XML Schema Unit Testing – integrates with existing JUnit style tests and leverags XML Unit for parts of the framework. Current framework is setup for a UNCEFACT Core Components, UBL, STAR, or OAGIS style xml schemas. (STAR currently uses this framework daily.)
- SchemaTron – If your developers and community are comfortable with XML related technologies, then SchemaTron can be used to verify the requirements for the various W3C XML Schemas that are produced.
- Quality Design Toolkit – verification of XML Schema Naming and Design Rules. Used in combination with SchemaTron and XML Schema Unit Testing it can provided another layer of verification.
- XML Unit – a general framework for testing a variety of xml file formats. Also able to do difference comparison on xml.
The time it takes to set any of these up and integrate it into your development process is easily made up in the amount of time that is saved in the verification and quality of the standards that are produced. Implementing these is the easy part, the hard part comes from the cultural changes that have to occur in the development processes. Everything needs to be done on shorter cycles, and testing needs to be stressed as a critical piece of the process. Implementing the unit testing is the easiest and most beneficial part of the process.
If anybody has thoughts on how to get users that submit requirements to actually report back User Acceptance Test results, I would love to hear them.