250 likes | 359 Views
Uma Abordagem Ágil para Modelagem de Casos de Teste de Aceitação para Aplicações Web. ACH2017 - Projeto de Graduação I. Felipe Besson Orientador: Delano Beder Co-orientador: Marcos Chaim. Problema. Aplicações web possuem como características (MCDONALD & WELLAND, 2001) :
E N D
Uma Abordagem Ágil para Modelagem de Casos de Teste de Aceitação para Aplicações Web ACH2017 - Projeto de Graduação I Felipe BessonOrientador: Delano BederCo-orientador: Marcos Chaim
Problema • Aplicações web possuem como características (MCDONALD & WELLAND, 2001): • Imediatismo do mercado • Entregas incrementais • Constantes Feedbacks do cliente • Requisitos altamente personalizados Consequência: testes podem não ser realizados corretamente (PRESSMAN & LOWEN, 2008) • Métodos ágeis são eficazes para o desenvolvimento de aplicações web (PRESSMAN, 2006): • Curto ciclo de desenvolvimento iterativo e incremental • Cliente é parte da equipe de desenvolvimento • TDD (Test-Driven Development) -Sistemas de Informação-
Problema Métodos Ágeis • Uso de RED-GREEN-REFACTOR • Testes automatizados • Uso de testes unitários • Aplicados por desenvolvedores Requisitos de usuários podem não ser atendidos (BECK,2000) Neste contexo surge: ATDD (Acceptance Test-Driven Development) (HENDRICKSON’S, 2008) • Red-green-refactor aplicado junto com o cliente Testes funcionais devem ser automatizados (CRISPIN, 2002) Ferramentas para automatização de testes funcionais para aplicações web (SELENIUM, HTTPUNIT e HTMLUNIT, 2008) não favorecem uso de ATDD! -Sistemas de Informação-
Objetivos Desenvolvimento de ferramentas de software que implementem uma abordagem de alto nível para a utilização de ATDD em aplicações web • Características da abordagem • Especificação em alto-nível da aplicação web sob teste (GUI – Graphical User Interface) • Representação da aplicação web como um grafo • Geração automática de casos de testes de aceitação • Execução automatizada dos casos de testes gerados com framework AWTAF (Automated Web Test Application Framework) (BESSON, BEDER, CHAIM, 2008) -Sistemas de Informação-
Conceitualização Teste de Software • Técnicas de Teste de Software (PRESSMAN, 2006) • Testes de Caixa Branca (Estruturais) • Foco na estrutura interna da aplicação sob teste • Teste de Caixa Preta (Funcionais) • As respostas da aplicação são avaliadas quando um conjunto de entradas válidas e inválidas é utilizado na execução • Estratégias de Teste de Software (SOMMERVILLE, 2007) • Teste Unitário (Unidade) • Componentes e módulos (unidades) são testados individualmente • Aplicados por desenvolvedores • Teste de Aceitação (Validação) • Verificar se o software atende aos requisitos do usuário -Sistemas de Informação-
Conceitualização Métodos Ágeis de Desenvolvimento de Software Processo de desenvolvimento de software que baseia-se em (BECK et al., 2009): Indivíduos e interações ao invés de processos e ferramentas; Software executando ao invés de ampla documentação; Colaboração do cliente ao invés de negociação de contratos; Resposta a mudanças ao invés de seguimento de um plano. Modelo de desenvolvimento iterativo e incremental Exemplos de métodos ágeis: XP (eXtremme Programming) (BECK, 2000)Scrum (SCHWABER & BEEDLE, 2001) -Sistemas de Informação-
Conceitualização TDD (Test-Driven Development) Desenvolvimento Dirigido a Teste • Estratégia de desenvolvimento de software • Testes unitários são desenvolvidos anteriormente a implementação de cada unidade de código-fonte (CRISPIN, 2006) • Baseado na filosofia RED– GREEN – REFACTOR: • (red) testes automatizados são escritos, estes possivelmente nem compilarão já que a funcionalidade ainda não foi escrita; • (green) A funcionalidade é desenvolvida o suficiente para fazer com que os testes passem com sucesso; • (refactor) Código já desenvolvido é melhorado de modo que os testes continuem passando com sucesso. TDD é fundamental para comunicação entre os membros de uma equipe de desenvolvimento ágil de software. (COCKBURN, 2001) -Sistemas de Informação-
Conceitualização ATDD (Acceptance Test-Driven Development) Desenvolvimento Dirigido aTeste de Aceitação O uso de ATDD para validação de histórias de usuário na utilização de XP (eXtreme Programming) é necessário para orientar as práticas de TDD. (Crispin 2002) -Sistemas de Informação-
A abordagem Aplicação web descrita por um conjunto páginas que relacionam-se por meio de links. nnnnnnnn componentes internos • Validação da aplicação web: • Cada página web contém os componentes internos que esta deve conter; • A comunicação com as demais páginas web por meio desses componentes funciona conforme o cliente deseja. -Sistemas de Informação-
A abordagem Workflow para validação da aplicação utilizando ATDD -Sistemas de Informação-
A abordagem AcceptLink Aplicação web desenvolvida para coordernar o worflow proposto • Características • Personalização da ferramenta TestLink (TESTLINK,2009) • Open Source, PHP, MVC (Model View Controller) (MDC, 2009) • Representação das páginas web em um Grafo/Árvore • Lista de Adjacência, Java, GXL (GXL, 2009) • Integração AcceptLink + Classes Java • PHP/Java Bridge (PHP/JAVA, 2009) • Adição de componentes internos para cada página modelada • Ext Js (EXT, 2009) -Sistemas de Informação-
A abordagem Passo 01 -Sistemas de Informação-
A abordagem Modelagem da Aplicação Web A aplicação sob teste é modelada seguindo a hierarquia abaixo: -Sistemas de Informação-
A abordagem Passo 02 -Sistemas de Informação-
A abordagem Geração de Grafo e Árvore de Teste A aplicação modelada é descrita por um grafo! • Grafo é descrito pela tripla G (P, R, sp) onde: • P = corresponde a um conjunto de páginas (nós) • R = representa as relações entre páginas (arestas) • sp= nó pai, ou seja, a página inicial • Cada módulo que integra a aplicação pode ser • representado como um sub-grafo integrante Conversão Grafo Árvore Remoção de ciclos utilizando o algoritmo de Qian (QIAN et al, 2007) -Sistemas de Informação-
A abordagem Passos 03 e 04 -Sistemas de Informação-
A abordagem Especificação de Testes de Aceitação Funcionalidade Cada caminho da árvore corresponde a um sequência lógica de interação das páginas • Criação do plano de desenvolvimento • Coordernar o desenvolvimento incremental • Descrever funcionalidades presentes naquela entrega • Informações adicionais necessárias • Preenchimento dos testes de aceitação • Cada funcionalidade é apresentada • Cliente juntamente com a equipe • de desenvolvimento: passos 01, 02 e 03 passo 04 -Sistemas de Informação-
A abordagem Passos 05 e 06 -Sistemas de Informação-
A abordagem Geração da Especificação Genérica de Testes A funcionalidade é convertida em uma GTS (Generic Test Specification) GTS pode ser executando utilizando o arcabouço AWTAF -Sistemas de Informação-
Resultados Obtidos • Implementação das funcionalidades chaves • Utilização de TDD • Das 33 classes implementadas, 15 correspondem a testes unitários • AcceptLink • Modelagem de casos de testes de aceitação para ATDD • Geração automática de casos de testes • Coordernação das atividades pertencentes à ATDD • Plano de desenvolvimento • Controle de Acesso • Facilidade na utilização da AWTAF • Artigo científico • Submetido à Sessão de Ferramentas do XXIII SBES (Simpósio Brasileiro de Engenharia de Software) -Sistemas de Informação-
Trabalhos futuros • Implementação das funcionalidades restantes • Edição de páginas web já modeladas • Visualização de grafos representados em GXL • Realização de testes de usabilidade • Estudos de Caso em ambiente acadêmico • Avaliação da abordagem quanto a sua atual relevância para a área estudada • AcceptLink + AWTAF • Integração automática de ambas as ferramentas de software -Sistemas de Informação-
Referências Bibliográficas BECK, K. Test-Driven Development By Example. 1. ed. New York: Addison Wesley, 2002. 240 p. BESSON, F.; BEDER, D.; CHAIM, M. Framework para execução automatizada de testes de aplicaçõesweb In: Experimental Software Engineering Latin America Workshop, 5., Salvador, Universidade Federal da Bahia, 2008. HENDRICKSON’S, E. Acceptance test driven development (ATDD): an overview In: Software Testing Australia/New Zealand (STANZ), 7. Wellington, 2008. HTMLUNIT. Web Testing Framework. 2008. Disponível em: <http://htmlunit.sourceforge.net/>. Acesso em 25 out. 2008. HTTPUNIT. Web Testing Framework. 2008. Disponível em: <http://httpunit.sourceforge.net/>. Acesso em 25 out. 2008. MCDONALD, A.; WELLAND, R. Agile Web Engineering (AWE) Process In: Departmentof Computing Science Technical Report TR-2001-98. University of Glasgow: Scotlant, 2001. PRESSMAN, R. Engenharia de Software. 6. ed. São Paulo: Mc-Graw-Hill, 2006. 752 p.
Referências Bibliográficas QIAN, Z.; MIAO, H.; ZENG, H. A practical web testing model for web application testing In IEEE Conference on Signal-Image Technologies and Internet-Based System, 1., IEEE Computer Society, Washington, v.23, p. 434–441, 2007. SELENIUM. Web Application Testing System. 2008. Disponível em: <http://www.openqa.org/selenium>. Acesso em 25 out. 2008. TESTLINK. Test Case manager. Disponível em: <testlink.org/>. Acesso em 20 abr. 2009 GXL - Graph eXchange Language. Disponível em: <http://www.gupro.de/GXL/.> Acesso em 20 abr. 2009 MDC. Model View Controller. Disponível em: <http://java.sun.com/blueprints/patterns/MVC-detailed.html> Acesso em 21 abr. 2009 CRISPIN, L. The need for speed: Automating acceptance testing in an extreme programming environment. UpGrade - The European Journal for the Informatics Professional, v. 3, p.104–106, 2002. CRISPIN, L. Driving software quality: How test-driven development impacts software quality. IEEE Software, v. 23, n. 6, p. 70–71, 2006.
Referências Bibliográficas QIAN, Z.; MIAO, H.; ZENG, H. A practical web testing model for web application testing In IEEE Conference on Signal-Image Technologies and Internet-Based System, 1., IEEE Computer Society, Washington, v.23, p. 434–441, 2007. PRESSMAN, R.; LOWEN, D. Web Engineering: A Practioner’s Approach. 1. ed. New York: McGraw-Hill Companies, 2008. 458 p. COCKBURN, A. Agile Software Development. 1. ed. New York: Addison-Wesley Professional, 2001. 222 p. SCHWABER, K.; BEEDLE, M. Agile Software Development with Scrum. 1. ed. [S.l.]: Prentice Hall, 2001. BECK, K. EXtreme Programming Explained. 1. ed. New York: Addison-Wesley, 2000. 181 p. BECK, K. et al. Manifesto for Agile Software Development. 2009. Disponível em: <http://agilemanifesto.org/>. Acesso em 19 mai. 2009. CRISPIN, L. Driving software quality: How test-driven development impacts software quality. IEEE Software, v. 23, n. 6, p. 70–71, 2006.
Obrigado. -Sistemas de Informação-