Use este identificador para citar ou linkar para este item:
https://repositorio.ufpe.br/handle/123456789/47637
Compartilhe esta página
Registro completo de metadados
Campo DC | Valor | Idioma |
---|---|---|
dc.contributor.advisor | SAMPAIO, Augusto Cezar Alves | - |
dc.contributor.author | ARRUDA, Filipe Marques Chaves de | - |
dc.date.accessioned | 2022-11-17T13:44:40Z | - |
dc.date.available | 2022-11-17T13:44:40Z | - |
dc.date.issued | 2022-09-26 | - |
dc.identifier.citation | ARRUDA, Filipe Marques Chaves de. A formal approach to test automation based on requirements, domain model, and test cases written in natural language. 2022. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2022. | pt_BR |
dc.identifier.uri | https://repositorio.ufpe.br/handle/123456789/47637 | - |
dc.description.abstract | Software testing is a costly and time-consuming activity. For this reason, there is a substantial effort both in the academy and industry to automate it as much as possible. There are several test generation strategies and theories based on formal specifications. Formalisms such as process algebra, transition systems, and so forth, allow a precise defi- nition of the semantics of system requirements, which one can leverage to verify essential properties, such as soundness, and derive test cases automatically. In an industrial con- text, however, ad-hoc/manual strategies are far more common due to their convenience since natural language descriptions are, more likely, easier to understand. Still, the lack of formal rigor can generate inaccurate tests, as there is no verification mechanism to ensure relevant properties. Also, requirements specified by product owners tend to be abstract by design, and should not be changed by other stakeholders, such as test engineers down the line. Then, it is a challenge to generate concrete test cases while still guaranteeing that the original behavior is preserved. Thus, in this work, we promote the use of natural language descriptions with rigorously defined underlying semantics (transparent to the user). Re- garding the scope of this work, we cover the entire traditional (direct engineering) testing process and artifacts, from requirements to automation scripts generated automatically. Requirements written in a controlled natural language are parsed, and their semantics are automatically modeled using the CSP process algebra. To deal with different abstraction levels, from requirements to concrete tests, we formalize the concept of a domain model, in which additional information (such as dependencies, compositions, etc.), also written in natural language, can be combined with the requirements while preserving the original behavior. Then, by considering the domain model, sound and consistent test cases are generated from the discovered scenarios using the cspio conformance relation. These test cases can then be linearized back to natural language to allow manual execution or di- rectly translated into test scripts for automated execution. On the other hand, we should not ignore a recurring scenario in which there is a large number of test cases already gen- erated by hand, potentially created with ad-hoc techniques, without using requirements as input to the generation process. Hence, we also provide assistance to automate and make legacy test cases consistent. Custom tools for test generation, consistency analysis, and automation, were developed to mechanize the entire process, and evaluated in the real-world setting of a partnership with Motorola, a Lenovo Company. As a result, we not only generated and automated the same test cases that were described by hand in retro- spect from old requirements (with more than 90% precision and 80% text size reduction) but also discovered new scenarios and created, from new features, test cases approved to be used in production. The efficiency of the consistency analysis, carried out through the Alloy Analyzer, was also evaluated for real test cases. Although most analyses took less than 10 (ten) seconds, we developed an alternative implementation that exhibited a massive decrease in the analysis time. | pt_BR |
dc.language.iso | eng | pt_BR |
dc.publisher | Universidade Federal de Pernambuco | pt_BR |
dc.rights | embargoedAccess | pt_BR |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/br/ | * |
dc.subject | Automação de testes | pt_BR |
dc.subject | Análise de consistência | pt_BR |
dc.subject | Linguagem natural controlada | pt_BR |
dc.subject | Csp | pt_BR |
dc.subject | Alloy | pt_BR |
dc.subject | Modelo de domínio | pt_BR |
dc.title | A formal approach to test automation based on requirements, domain model, and test cases written in natural language | pt_BR |
dc.type | doctoralThesis | pt_BR |
dc.contributor.advisor-co | BARROS, Flávia de Almeida | - |
dc.contributor.authorLattes | http://lattes.cnpq.br/4240670677976713 | pt_BR |
dc.publisher.initials | UFPE | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.degree.level | doutorado | pt_BR |
dc.contributor.advisorLattes | http://lattes.cnpq.br/3977760354511853 | pt_BR |
dc.publisher.program | Programa de Pos Graduacao em Ciencia da Computacao | pt_BR |
dc.description.abstractx | 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ân- tica dos requisitos, permitindo que propriedades importantes, como soundness (consistên- cia), sejam verificadas mecanicamente e que casos de testes sejam derivados. No contexto industrial, entretanto, estratégias de geração manual 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. Mas a falta de rigor formal pode gerar testes imprecisos, pois não há mecanismos de verificação de propriedades como, por exemplo, soundness. Além disso, requisitos especificados por product owners tendem a ser inerente- mente 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 con- cretos e garantir ao mesmo tempo que o comportamento original da especificação seja preservado. Dessa forma, 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. Todo o processo de engenharia direta de casos de teste é explorado, dos requisitos até scripts de automação gerados automaticamente. Requisitos são analisados sintatica- mente, e uma semântica é automaticamente gerada na álgebra de processos CSP. Para lidar com as diferentes granularidades de abstração, formalizamos o conceito de modelo de domínio, no qual informações adicionais (como dependências, composições, etc.), tam- bé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 con- solidados a partir dos cenários encontrados utilizando a relação de conformidade cspio. Esses casos de teste podem ser, então, linearizados em linguagem natural, permitindo execução manual, ou traduzidos diretamente para scripts, possibilitando uma execução automática. Por outro lado, na prática, há uma grande quantidade de casos de teste já ger- ados manualmente, possivelmente de uma forma ad-hoc, sem utilizar requisitos no processo de geração. Por isso, a estratégia também prevê suporte para automatizar e consolidar casos de teste legados. Ferramentas para geração de testes, análise de consistência e au- tomaçã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. A eficiência da análise de consistência, implementada utilizando o Alloy Analyzer, também é avaliada para casos de testes reais. Apesar das análises, majoritariamente, demorarem menos de 10 (dez) segundos, nós desenvolvemos uma implementação alternativa que diminuiu mas- sivamente o tempo de análise. | pt_BR |
dc.contributor.advisor-coLattes | http://lattes.cnpq.br/5390541720896559 | pt_BR |
Aparece nas coleções: | Teses de Doutorado - Ciência da Computação |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
TESE Filipe Marques Chaves de Arruda.pdf | 2,16 MB | Adobe PDF | ![]() Visualizar/Abrir |
Este arquivo é protegido por direitos autorais |
Este item está licenciada sob uma Licença Creative Commons