A good business requirement spec should contain,
- Description – what is it?
- Who needs/uses it?
- When it is used?
- How should it work?
- How the common errors are handled?
- What are the non-functional attributes to be satisfied?
- Sample inputs/outputs
- Environment where it is used.
Whereas are a good technical specification includes,
- Input and output specification
- Behavior flow
- User interface details
- Data storage details (tables, files)
- Other interfacing details