Programming Guides › Connector Programming Guide › Connector Review Checklist › Component Test Considerations
Component Test Considerations
We recommend that component tests (for example, JMeter or equivalent software) grow in strict tandem with the functionality of the connector. A useful maxim is that any connector functionality not covered by automated component tests cannot be considered to exist. Even if manual testing proves the connector works today, this may not be adequate when the connector is modified in the future. Without the support of component tests with good coverage, there can be no confidence future changes are safe. Consider the following when designing component tests:
- Is coverage of component tests adequate?
- Are all object classes tested for all supported operations?
- Are examples of attributes with all supported datamodel values present?
- Are all validator and converter plug-ins relevant for the connector covered by test cases?
- Are a suitable number of multivalued attributes tested, including different modes (for example, replace, add, remove) in MODIFY requests?
- Are all associations tested from all supported directions, for example, group.member and account.memberOf) with a range of containment levels for DNs in direct associations?
- Have a number of characters special to LDAP been tested in object RDNs to verify correct handling? This is especially important for object classes with DNs that are stored in association attribute values.
- Have a number of characters special to the connector's chosen API been tested in object RDNs to verify correct handling? This is especially important for object classes with DNs that are stored in association attribute values.
- Are strict response assertions being used to ensure correct behavior (for example, search after modify to ensure correct change)?
- Are basic tests split into the smallest units to allow easy tracking from failures back to minimal root causes?
- Is confidence established in earlier test steps before blunter equals assertions on larger sets of search results appear?
- Are basic error cases tested (for example, modify, search with base, delete, modifyrn on nonexistent object, adding an existing object)?
- If the connector requires multiple flavors of connection, is there enough coverage of different supported connection schemes?
Copyright © 2013 CA.
All rights reserved.
|
|