Desenvolvimento de Frameworks de Testes Automáticos de Software


Autoria(s): Castelo, Luís Guilherme Gomes Albuquerque dos Santos
Contribuinte(s)

Martins, António Constantino Lopes

Data(s)

08/01/2016

08/01/2016

01/11/2015

Resumo

O objetivo deste trabalho é o desenvolvimento de frameworks de testes automáticos de software. Este tipo de testes normalmente está associado ao modelo evolucionário e às metodologias ágeis de desenvolvimento de software, enquanto que os testes manuais estão relacionados com o modelo em cascata e as metodologias tradicionais. Como tal foi efetuado um estudo comparativo sobre os tipos de metodologias e de testes existentes, para decidir quais os que melhor se adequavam ao projeto e dar resposta à questão "Será que realmente compensa realizar testes (automáticos)?". Finalizado o estudo foram desenvolvidas duas frameworks, a primeira para a implementação de testes funcionais e unitários sem dependências a ser utilizada pelos estagiários curriculares da LabOrders, e a segunda para a implementação de testes unitários com dependências externas de base de dados e serviços, a ser utilizada pelos funcionários da empresa. Nas últimas duas décadas as metodologias ágeis de desenvolvimento de software não pararam de evoluir, no entanto as ferramentas de automação não conseguiram acompanhar este progresso. Muitas áreas não são abrangidas pelos testes e por isso alguns têm de ser feitos manualmente. Posto isto foram criadas várias funcionalidades inovadoras para aumentar a cobertura dos testes e tornar as frameworks o mais intuitivas possível, nomeadamente: 1. Download automático de ficheiros através do Internet Explorer 9 (e versões mais recentes). 2. Análise do conteúdo de ficheiros .pdf (através dos testes). 3. Obtenção de elementos web e respetivos atributos através de código jQuery utilizando a API WebDriver com PHP bindings. 4. Exibição de mensagens de erro personalizadas quando não é possível encontrar um determinado elemento. As frameworks implementadas estão também preparadas para a criação de outros testes (de carga, integração, regressão) que possam vir a ser necessários no futuro. Foram testadas em contexto de trabalho pelos colaboradores e clientes da empresa onde foi realizado o projeto de mestrado e os resultados permitiram concluir que a adoção de uma metodologia de desenvolvimento de software com testes automáticos pode aumentar a produtividade, reduzir as falhas e potenciar o cumprimento de orçamentos e prazos dos projetos das organizações.

The objective of this work is the development of automated software testing frameworks. This type of tests is normally associated with the evolutionary model and agile software development methodologies, while the manual tests are associated with the waterfall model and traditional methodologies. Therefore, a comparative study of the existing methodology and test types was performed to decide which ones were best suited to the project and to answer the question "Is it really worth it to perform (automatic) tests?”. After completing the study two frameworks were developed, the first for the implementation of functional and unit tests without dependencies to be used by LabOrders’ temporary trainees, and the second for the implementation of unit tests with external database and service dependencies to be used by the company’s employees. In the last two decades the agile software methodologies haven't stopped evolving, however the automation tools haven't been able to accompany this progress. Many areas aren't covered by the tests so some of them have to be done manually. Given this situation, several innovative features have been created to increase test coverage and make the frameworks as intuitive as possible, namely: 1. Automatic file download in Internet Explorer 9 (and later versions). 2. .pdf file content analysis (through tests). 3. Obtaining web elements and respective attributes via jQuery code using the WebDriver API with PHP bindings. 4. Displaying custom error messages when an element can’t be found. The implemented frameworks are also ready for the creation of other tests (load, integration, regression) that may be needed in the future. They were tested in work context by the employees and customers of the company where the master’s project was conducted and the results showed that the adoption of a software development methodology with automatic testing can increase productivity, reduce bugs and improve compliance with the budgets and deadlines of the organization projects.

Identificador

http://hdl.handle.net/10400.22/7345

201754827

Idioma(s)

por

Direitos

openAccess

Palavras-Chave #Metodologias ágeis #Frameworks #Testes automáticos #Funcionais #Unitários #Agile methodologies #Automated tests #Functional #Unit #Sistemas Gráficos e Multimédia
Tipo

masterThesis