1 / 25

Uma Abordagem Ágil para Modelagem de Casos de Teste de Aceitação para Aplicações Web

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) :

Download Presentation

Uma Abordagem Ágil para Modelagem de Casos de Teste de Aceitação para Aplicações Web

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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-

  3. 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-

  4. 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-

  5. 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-

  6. 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-

  7. 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-

  8. 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-

  9. 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-

  10. A abordagem Workflow para validação da aplicação utilizando ATDD -Sistemas de Informação-

  11. 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-

  12. A abordagem Passo 01 -Sistemas de Informação-

  13. A abordagem Modelagem da Aplicação Web A aplicação sob teste é modelada seguindo a hierarquia abaixo: -Sistemas de Informação-

  14. A abordagem Passo 02 -Sistemas de Informação-

  15. 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-

  16. A abordagem Passos 03 e 04 -Sistemas de Informação-

  17. 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-

  18. A abordagem Passos 05 e 06 -Sistemas de Informação-

  19. 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-

  20. 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-

  21. 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-

  22. 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. 

  23. 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.

  24. 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.

  25. Obrigado. -Sistemas de Informação-

More Related