Dichiarazione di non responsabilità: non sono un ricercatore, ma solo uno sviluppatore interessato.
La risposta breve è Sì, questo è stato fatto, almeno con i servizi web e con i requisiti formali, non con i test.
Presumo che la tua domanda significhi, "dato che esistono numerosi algoritmi e esiste una serie di test, un programma può tentare di combinare questi algoritmi in modo casuale cercando di superare i test?"
Sono d'accordo con l'affermazione di Charles E. Grant che una volta che inizi a creare casualmente dei programmi ti imbatti nel problema di stallo (è impossibile determinare se c'è un ciclo infinito in un programma), quindi questo può essere un problema, ma può essere superato creando metodicamente il programma, non in modo casuale.
Allo stesso modo, ogni volta che inizi a porre la domanda, "possiamo automatizzare questo in generale?" molto probabilmente ti avvicini al completamento dell'IA. In altre parole, qualsiasi problema sufficientemente complesso richiede una intelligenza a livello umano da risolvere. Per ovviare a questo, è necessario limitare l'ambito della domanda. Ad esempio, può un programma automaticamente ...
- generare codice in base ai requisiti? La NASA ha fatto ricerche approfondite sulla generazione del codice, ma le specifiche formali richieste sono difficili quanto la codifica. Questo risale almeno al 1971, chiamato "Sintesi automatica del programma"
- combina i servizi Web esistenti in base ai requisiti (vedere "Composizione dei servizi Web a valore aggiunto mediante la sintesi automatica dei programmi")
- combinare servizi Web di sola lettura (vedere Composizione automatica di servizi di informazione che forniscono informazioni basate sulla riscrittura delle query )
- crea un programma per l'analisi dei dati statistici (vedi "AutoBayes")
- generalizza una modifica del testo (vedi Avi Bryant alle 27:01 che lo ha rubato dal MIT / MassEdit)
- creare regole per la categorizzazione del testo? Vedi sotto.
Una domanda più semplice nell'informatica è "dati due cluster di dati esistenti, creare un filtro in grado di classificare nuovi dati con bassi tassi di errore". La categorizzazione del testo, come il filtro antispam, rientra in questo ambito. Questa è un'area ben studiata e esistono molti algoritmi per risolvere questo problema. RIPPER è uno di questi algoritmi, che crea il più piccolo insieme di regole che categorizzano il testo in modo accurato, proprio come il vincolo di Einstein: "Tutto dovrebbe essere il più semplice possibile, ma non più semplice."
Questo è tutto ciò che ho potuto trovare / sapere. Se qualcuno potesse trovare qualcosa di più simile a ciò che questa domanda pone, sarei molto interessato. Penso che ciò che scoprirai sia che il programma risultante sarà valido quanto il tuo input. La quantità di "Test" che avresti dovuto scrivere sarebbe così grande, staresti meglio scrivendo il programma.
PS: avevo molti più link ma stackexchange non mi permette di pubblicarli: - (