Pós-Graduação em Ciência da Computação – UFPE
Defesa de Tese de Doutorado Nº 578


Aluno: Filipe Marques Chaves de Arruda
Orientador: Prof. Augusto Cezar Alves Sampaio
Coorientador: Profa.  Flávia de Almeida Barros
Título: A Formal Approach to Test Automation based on Requirements, Domain Model, and Test Cases written in Natural Language

Data: 26/09/2022
Hora/Local: 8h:30m – Virtual – Interessados em assistir entrar em contato com o aluno
Banca Examinadora:

Prof. Juliano Manabu Iyoda (UFPE / Centro de Informática )

Prof. Leopoldo Motta Teixeira (UFPE / Centro de Informática )

Prof. Breno Alexandro Ferreira de Miranda (UFPE / Centro de Informática
Prof. Tiago Lima Massoni (UFCG / Departamento de Sistemas e Computação )

Prof. Márcio Eduardo Delamaro (USP / Departamento de Ciências da Computação)


RESUMO:

Teste de software é uma atividade que demanda tempo e custos significativos. Por este motivo, existe um considerável esforço tanto na academia como na indústria para automatizar o máximo possível desse processo. 

Existem estratégias e teorias de geração automática de testes baseadas em especificações formais. Formalismos como álgebras de processo, máquinas de estado, entre outros, possibilitam uma definição precisa da semântica dos requisitos especificados, permitindo através de mecanismos automáticos que propriedades importantes, como soundness (consistência), sejam verificadas e que casos de testes sejam derivados.

No contexto industrial, entretanto, estratégias de gerações manuais ou ad-hoc são comuns por serem mais acessíveis, já que artefatos descritos em linguagem natural são, potencialmente, mais facilmente entendidos por stakeholders, quando comparados aos apresentados em notação formal. Mas a falta de rigor formal gera testes potencialmente imprecisos, pois não há mecanismos de verificação de propriedades como, por exemplo, soundness. Uma outra situação comum é que requisitos especificados por product owners tendem a ser inerentemente abstratos e não devem ser modificados por outros stakeholders, como engenheiros de testes, em etapas posteriores. Então, torna-se um desafio gerar casos de teste concretos e garantir ao mesmo tempo que o comportamento original da especificação seja preservado.

Dessa forma, a fim de contribuir com o estado da arte e da prática deste contexto industrial, sem abrir mão de uma teoria formal, este trabalho promove o uso de linguagem natural na descrição dos artefatos, mas com uma semântica subjacente, transparente ao usuário, rigorosamente definida. Com relação ao escopo deste trabalho, todo o processo de engenharia direta de casos de teste é coberto, começando dos requisitos até scripts de automação gerados automaticamente. Requisitos escritos em linguagem natural são analisados sintaticamente, e uma semântica é automaticamente gerada na álgebra de processos CSP. Para lidar com as diferentes granularidades de abstração até a obtenção de testes concretos, formalizamos o conceito de modelo de domínio, no qual informações adicionais (como dependências, cancelamentos, composições e instanciações), também descritas em linguagem natural, possam ser combinadas com os requisitos originais. Então, considerando o modelo de domínio, são gerados casos de teste consistentes e consolidados a partir dos cenários encontrados utilizando uma relação de conformidade denotada cspio. Esses casos de teste podem ser, então, linearizados de volta para linguagem natural, a fim de permitir execução manual, ou traduzidos diretamente para scripts, com o objetivo de execução automática.

Por outro lado, não podemos desconsiderar um outro cenário recorrente, na prática, em que há uma grande quantidade de casos de teste já gerados manualmente, possivelmente de uma forma ad-hoc, sem utilizar requisitos como base para o processo de geração. Por isso, além de suportar a geração e automação de testes a partir de novos requisitos, a estratégia também prevê suporte para automatizar e consolidar casos de teste legados.

Ferramentas, como SmarTest, para geração de testes, Kaki para análise de consistência e ForceIDE para automação, foram desenvolvidas para mecanizar todo o processo, sendo avaliadas no cenário real de uma parceria com a Motorola, a Lenovo Company.

Como resultado, não somente foram gerados e automatizados os mesmos casos de teste, em retrospectiva, que foram criados manualmente a partir de requisitos pré-existentes,

mas também novos cenários foram descobertos. Além disso, novos casos de teste, para novas features, foram gerados e formalmente aprovados pela empresa para serem usados em produção. Eficiência da análise de consistência implementada por Kaki também é avaliada.


Palavras-chave: Automação de Testes. Análise de Consistência. Linguagem Natural Controlada. CSP. Alloy. Geração de Testes. Modelo de Domínio

Comentários desativados