10. Quality requirements
Quality tree
mindmap
root((MRBS quality))
Integrity
Conflict prevention
Correct recurrence
Transactional updates
Security
Authentication
Authorization
Input and redirect safety
Secret protection
Operability
Upgrade and rollback
Diagnostics
Backup and restore
Compatibility
MySQL and PostgreSQL
Identity providers
Locales and timezones
Usability
Clear availability
Efficient booking
Accessible administration
Maintainability
Isolated variants
Documented configuration
Testable policies
Quality scenarios
| ID |
Scenario |
Expected response |
| Q1 |
Two users save the same room and time concurrently |
At most one conflicting booking is accepted |
| Q2 |
A normal user requests an administrator handler directly |
The server rejects the action regardless of UI visibility |
| Q3 |
A recurring booking crosses a daylight-saving change |
Displayed local times follow the configured room timezone and recurrence intent |
| Q4 |
The same release runs on MySQL and PostgreSQL |
User-visible booking behavior remains equivalent |
| Q5 |
An LDAP or SAML provider is unavailable |
The failure is contained, logged without credentials, and does not corrupt local booking data |
| Q6 |
An operator upgrades a customized installation |
Local config can be transferred deliberately and the schema is migrated or safely rolled back |
| Q7 |
A visitor opens a private booking |
Only information permitted by privacy and access policy is exposed |
| Q8 |
A mail server rejects a notification |
The application records a useful operational error without exposing secrets to the user |
| Q9 |
A translator adds a locale |
Missing strings fall back predictably and pages remain usable |
| Q10 |
A new database or identity adapter is added |
The variant integrates behind the existing factory boundary |
Suggested measurable checks
- Database integration tests run on both supported engines.
- Authorization tests call handlers directly at every access level.
- Time tests include DST gaps, DST overlaps, and multiple room timezones.
- Upgrade tests start from representative historical schemas.
- Static checks cover all PHP files and bundled compatibility-sensitive code.
- Documentation builds in strict mode and checks all four language variants.