Your SlideShare is downloading. ×
0
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Reverse engineering of gui models
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Reverse engineering of gui models

1,106

Published on

Reverse Engineering of GUI Models for Testing

Reverse Engineering of GUI Models for Testing

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,106
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Aqui irá estar a estrutura da apresentação
  • Nowadays’ software systems GUIs. GUIs are the mediators between systems and usersquality is a crucial point in the users’ decision of using them. GUI testing is a critical activity aimed at finding defects in the GUI or in the overall applicationHowever, GUI testing is a very time consuming V&V activity. The application of model-based testing techniques and tools can be very helpful to systematize and automate GUI testing. Still, the effort required to construct a detailed and precise enough model for testing purposes, by an automated reverse engineering process.
  • An Automated Model-Based User Interface Testing Environment – AMBER iTestO meutrabalhoinsere-senumprojecto de maiorambito.Aplicação de Técnicas de Testes Baseados em Modelosaos testes de InterfacesQueresulta da parceria entre a Critical Sw e a FEUP
  • Os objectivos são dimnuir o esforço necessário para a contrução do modelo.Automatizar o processo de exploração Extrair as - Informações Estruturais das janelas da aplicação - Gravar os passos necessários para navegar entre diferentes janelas da aplicação - Descobrir diferentes conportamentos nas janelas da aplicação – isto é, descobrir as dependências entre objectos da interface gráficaComo output do meu trabalho Surge o modelo Spec#(Sharp) devido à utilização da ferrramenta Spec Explorer k permite uma automatização do processo de geração e execução de testes
  • Static Approach, in which the static representations of the system (source code) are analysed without executing the system. The static approach requires access to the source code of the system, which is not always available. Static approaches are particularly well suited for extracting information about the internal structure of the system and dependencies among structural elements;Dynamic approach, the system is executed and its external behaviour is analysed. Dynamic approaches are the only option when the source code is not available. They are well suited to extract the physical structure of the system GUI and some of its behaviour, but are more difficult to automate. We focus on dynamic approaches because our goal is to extract information for black-box testing purposes.
  • Conformeditoanteriormente o objectivo principal é diminuir o esforçopara a construção do modelo da GUI para testes baseados em modelos.A ferramentaapresentada é capaz de construir um modelopreliminar em Spec# atraves da interacção com a GUI. AS informaçõesobtidaspeloprocesso de engenhariareversa é guardado em XML sendo e seguidaconvertidopara Spec#(Sharp). Mas o facto de termos um códigointermédio do XML permite a exportaçãoparaoutraslinguagensmaisfacilmente. Começamosporcapturar as informaçõesestruturais da GUI (the hierarchical structure of windows and interactive controls within windows, their properties and navigation map) e tambemalgumainformaçãocomportamental. Em seguida o modelopreliminarobtido é completado e validadomanualmente.Dps é usadoparacriaruma suite de testes automaticamenteusando a ferramenta Spec Explorer. A execução de testes tb é suportadopelo Spec Explorer. Para os testesseremexecutado é ncessárioinformação de mapeamento entre as acções do modelo e as acçãoconcretas da aplicação. Estainformação é recolhidadurtante o processo deengenhariareversa e podesercompletamanualmentesendogravadanumficheiro XML. Na execução dos testes asacçõestantosaoexecutadasnaespecificaçãotantocomonaaplicação. Nummodo de “lock-step”comparandoosresultadosobtidos. Sempre k ocorraumainconsistencia, esta é reportada. Defeitosencontradossaocorrigidossendo em seguidaexecutadauma nova iteração do processo.
  • Explicar o Algoritmo
  • Explicar o Algoritmo
  • Explicar o Algoritmo
  • Algoritmo de Detecção das Dependencias
  • Em seguida um caso prático que valida a abordagem proposta.
  • Explicar o XML -> Identificar na Janela
  • Explicar o XML -> Identificar na Janela
  • Explicar o XML -> Identificar na Janela
  • Um extracto do Modelo gerado em Spec#
  • In our experiments, by using the REGUI tool, 50% (on average) of the Spec# model was generated automatically.
  • Uma ferramenta……
  • Implementação de novos algoritmos para aumentar o conjunto de dependências e controlos suportadosMelhorar o modelo produzido -> Tornando-o + completo.
  • Espero k a minha apresentação não tenha sido longaK não se tenham morrido de aborrecimento, e k não vos tenha passado pela cabeça destruir o projector E passamos agora para a fase da discussão …
  • Transcript

    • 1. Reverse Engineering of GUI Models for Testing<br />André M. P. Grilo, Ana C. R. Paiva, João Pascoal Faria<br />CISTI 2010<br />
    • 2. Contents<br />Introduction<br />Reverse Engineering Approaches<br />Reverse Engineering and Testing Process<br />REGUI Tool<br />Case Study<br />Conclusions<br />CISTI 2010<br />
    • 3. Motivation<br />CISTI 2010<br />
    • 4. Context<br />CISTI 2010<br />AMBER iTest<br />Visual modelling<br />m()pre<br />post<br />{body}<br />Visual to formal model translation <br />UML visual model<br />new<br />oracle<br />Model to implementation mapping<br />Reverse Engineering<br />Coverage information<br />Test case<br />generation<br />GUI mapping code & data (adapter)<br />Test coverage analysis<br />SpecExplorer<br />new<br />new<br />Test <br />Execution <br />REGUI Tool<br />GUI Application<br />Under Test <br />Test <br />suite (abstract)<br />Spec Explorer<br />Test results<br />
    • 5. Objectives<br />CISTI 2010<br />Diminish effort required to construct the model<br />Automate the interactive exploratory process<br />Extract:<br />Structural Information<br />Navigation Steps<br />Behaviour<br />Produce a Spec# Model<br />
    • 6. Static Approach<br />Dynamic Approach<br />CISTI 2010<br />Reverse Engineering Approaches<br />
    • 7. Reverse Engineering and Testing Process<br />CISTI 2010<br />
    • 8. Description of the Algorithm (1/2)<br />CISTI 2010<br />Phase One<br />
    • 9. Description of the Algorithm (2/2)<br />CISTI 2010<br />Phase Two<br />
    • 10. Description of the Algorithm (3/3)<br />CISTI 2010<br />Phase Three<br />
    • 11. Rules to Infer Behaviour<br />CISTI 2010<br />
    • 12. REGUI Tool<br />CISTI 2010<br />
    • 13. Case Study<br />CISTI 2010<br />
    • 14. Structural Information<br />CISTI 2010<br />
    • 15. Navigational Steps<br />CISTI 2010<br />
    • 16. Inferring Dependencies<br />CISTI 2010<br />
    • 17. Spec# Model<br />//Notepad window<br />[Action] void SetTextDocument(string typedText)<br />modifies Document.text && MenuItemFind.IsEnabled;<br />requiresIsEnabled("Notepad"); <br />{ //TODO}<br />[Action] void MenuItemFind()<br />requires text!="" && IsEnabled("Notepad") ;<br />ensuresIsOpen("Find"));<br />{ //TODO}<br />…<br />//Find dialog<br />[Action] void SetTextFindWhat(string str)<br />modifies TextFindWhat.text && ButtonFindNext.IsEnabled;<br />requiresIsEnabled("Find");{<br />TextFindWhat.text = str;<br />}<br />[Action] void FindNext()<br />requiresIsEnabled("Find"); <br />{ //TODO}<br />…<br />CISTI 2010<br />
    • 18. Conclusions<br />Presented a new technique to obtain a model of the GUI’s structure and some of its behaviour. <br />Model kept in a XML file Spec#<br />The reverse engineering process<br />combines automatic with manual exploration which solves some of the “blocking problems” found in the approaches<br />Using the REGUI tool, the effort in the construction of the GUI model was reduced <br />CISTI 2010<br />
    • 19. Main Contributions<br />A New Reverse Engineering Approach<br />A REGUI Tool<br />CISTI 2010<br />
    • 20. Future Work<br />Implement new algorithms to extend the set of dependencies among GUI objects found automatically by the tool;<br />We also intend to validate the approach with more complex software applications.<br />CISTI 2010<br />
    • 21. CISTI 2010<br />
    • 22. Thanks for your time<br />CISTI 2010<br />
    • 23. CISTI 2010<br />

    ×