Una parte significativa della risposta è nella domanda:
How do software platforms/frameworks test for backwards
compatibility with third party extensions?
Se hai già una suite di test completa (ad esempio se usi TDD ), devi solo eseguilo e avrai la risposta.
I test di estensibilità non sono molto diversi dagli altri test; è solo che non solo chiami il metodo framework, ma hai anche dei test in cui il framework richiama l'estensione:
- Richiede che le estensioni di test / test-budies / test-doubles siano necessarie per verificare che il le condizioni sono vere (es. accessibilità di alcuni componenti del framework, stato di qualche altro)
- Implica anche che hai un livello minimo di test di integrazione (ad esempio aggancia l'estensione + assicurati che i parametri che riceve successivamente siano come previsto).
Il resto della risposta è assicurarsi che il tuo design sia come SOLID come può. A questo proposito, dovresti concentrarti in modo particolare sulle interfacce quando sviluppi la tua nuova versione, perché ogni volta che cambi qualcosa nell'interfaccia potrebbe avere un impatto sulle estensioni.
P.S: usi già versioning semantico ? Non garantirà la compatibilità con le versioni precedenti, ma informerà gli utenti del framework del livello di compatibilità che possono aspettarsi da ogni nuova versione.