Document details

Desenvolvimento de Frameworks de Testes Automáticos de Software

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

Date: 2015

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

Origin: Repositório Científico do Instituto Politécnico do Porto

Subject(s): Metodologias ágeis; Frameworks; Testes automáticos; Funcionais; Unitários; Agile methodologies; Automated tests; Functional; Unit; Sistemas Gráficos e Multimédia


Description

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.

Document Type Master thesis
Language Portuguese
Advisor(s) Martins, António Constantino Lopes
Contributor(s) Repositório Científico do Instituto Politécnico do Porto
facebook logo  linkedin logo  twitter logo 
mendeley logo

Related documents

No related documents