A arquitetura do Functional Tester permite que desenvolvedores gravem um proxy para um determinado controle de UI. Os desenvolvedores podem ativar o Functional Tester para processar as especificidades de um controle gravando proxies. Os recursos de testes funcionais relevantes também podem ser fornecidos.
Os proxies fornecem ao Functional Tester detalhes sobre um controle ao qual ele é gravado. O Functional Tester tem um conjunto de métodos predefinido para qualquer proxy e chama cada método para obter detalhes específicos. Para qualquer proxy gravado para um controle, esses métodos predefinidos são implementados especificamente para o controle.
Para qualquer controle, o Functional Tester fornece um conjunto de propriedades e tipos de dados para verificação. Se o conjunto de propriedades e os tipos de dados atualmente fornecidos não forem suficientes para testar o controle, um novo proxy poderá ser criado e, substituindo determinados métodos, mais propriedades ou tipos de dados podem ser incluídos. O comportamento de gravação do Functional Tester também pode ser alterado criando novos proxies.