Supponiamo di avere una basebase ragionevolmente grande (0,5 - 1 msloc) con una suite di test di grandi dimensioni (runtime a 6-7 ore single-threaded, con una combinazione di test unitari e test di integrazione costruiti con strumenti diversi). Hai una patch proposta (o diff o pull-request) per il codebase e vuoi eseguire automaticamente i test rilevanti . Eseguire i test tutti sarebbe troppo costoso. Esecuzione di test del fumo sarebbe troppo superficiale. L'obiettivo è trovare qualcosa nel mezzo. Automatizzando la selezione dei test rilevanti, puoi aiutare i nuovi sviluppatori a partecipare a TDD e fornire feedback pre-merge tempestivi (come parte della revisione del codice).
Quali tecniche o disposizioni useresti per identificare "rilevanti"? (Un esempio di base: se una patch modifica "src /(.*). Php", quindi esegui "phpunit test / {$ 1} Test.php".) Quali strumenti, se esistenti, vengono in mente? O quali nuovi strumenti sono necessari? O è impossibile per gli strumenti aiutare?
(Per contesto: Nel mio particolare caso d'uso, lavoro con web-app basate su LAMP, quindi gli strumenti o le tecniche che funzionano con PHP / JS / bash sono molto utili, ma problemi simili probabilmente sorgono con qualsiasi app di grandi dimensioni / deep stack, quindi esempi da altri stack potrebbero fornire informazioni.)