Active Automata Learning: From DFAs to Interface Programs and Beyond Active Automata Learning: From DFAs to Interface Programs and Beyond