Cookies
Usamos cookies para melhorar nosso site e a sua experiência. Ao continuar a navegar no site, você aceita a nossa política de cookies. Ver mais
Aceitar Rejeitar
  • Menu
Sobre

Sobre

Ana Paiva (publica como Ana C. R. Paiva) é Professora Auxiliar no Departamento de Engenharia Informática da Faculdade de Engenharia da Universidade do Porto, onde trabalha desde 1999. Ela é investigadora no INESC TEC na área de Engenharia de Software e membro do Grupo de Engenharia de Software que reúne investigadores e pós-graduados com interesses comuns em Engenharia de Software. É responsável por unidades curriculares como Teste de Software, Métodos Formais e Engenharia de Software, entre outras. Tem um doutoramento em Engenharia Electrotécnica e Computadores da FEUP, com uma tese intitulada Automated Specification Based Testing of Graphical User Interfaces. A sua especialidade é a implementação e automação do processo de teste baseado em modelos. Desenvolveu trabalho de investigação em colaboração com o grupo FSE (Foundation of Software Engineering) da Microsoft Research, onde teve a oportunidade de estender a ferramenta de testes da Microsoft baseada em modelo, Spec Explorer, para o teste de GUIs. É a investigadora responsável de um projeto financiado pela FCT com o tema Pattern-Based Testing GUI (PBGT). Pertence à Assemblia Geral da PSTQB (Associação Portuguesa de Testes de Software), é membro dos grupos internacionais de trabalho do ISTQB: TBok, Glossary, MBT Examination, membro do Conselho do Departamento de Engenharia Informática, e membro da Comissão Executiva do Departamento de Engenharia Informática.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Ana Cristina Paiva
  • Cluster

    Informática
  • Cargo

    Investigador Sénior
  • Desde

    01 fevereiro 2014
001
Publicações

2020

Teaching software engineering topics through pedagogical game design patterns: An empirical study

Autores
Flores, N; Paiva, ACR; Cruz, N;

Publicação
Information (Switzerland)

Abstract
Teaching software engineering in its many different forms using traditional teaching methods is difficult. Serious games can help overcome these challenges because they allow real situations to be simulated. However, the development of serious games is not easy and, although there are good practices for relating game design patterns to teaching techniques, there is no methodology to support its use in a specific context such as software engineering. This article presents a case study to validate a methodology that links the Learning and Teaching Functions (LTF) to the Game Design Patterns (PIB) in the context of Software Engineering Education. A serious game was developed from scratch using this methodology to teach software estimation (a specific topic of software engineering). An experiment was carried out to validate the effectiveness of the game by comparing the results of two different groups of students. The results indicate that the methodology can help to develop effective educational games on specific learning topics. © 2020 by the authors.

2020

Test case generation based on mutations over user execution traces

Autores
Paiva, ACR; Restivo, A; Almeida, S;

Publicação
Software Quality Journal

Abstract

2020

From Requirements to Automated Acceptance Tests with the RSL Language

Autores
Paiva, ACR; Maciel, D; da Silva, AR;

Publicação
Communications in Computer and Information Science

Abstract
Software testing can promote software quality. However, this activity is often performed at the end of projects where failures are most difficult to correct. Combining requirements specification activities with test design at an early stage of the software development process can be beneficial. One way to do this is to use a more structured requirements specification language. This allow to reduce typical problems such as ambiguity, inconsistency, and incorrectness in requirements and may allow the automatic generation of (parts of) acceptance test cases reducing the test design effort. In this paper we discuss an approach that promotes the practice of requirements specification combined with testing specification. This is a model-based approach that promotes the alignment between requirements and tests, namely, test cases and also low-level automated test scripts. To show the applicability of this approach, we integrate two complementary languages: (i) the ITLingo RSL (Requirements Specification Language) that is specially designed to support both requirements and tests rigorously and consistently specified; and (ii) the Robot language, which is a low-level keyword-based language for specifying test scripts. This approach includes model-to-model transformation processes, namely a transformation process from requirements (defined in RSL) into test cases (defined in RSL), and a second transformation process from test cases (in RSL) into test scripts (defined according the Robot framework). This approach was applied in a fictitious online store that illustrates the various phases of the proposal. © 2020, Springer Nature Switzerland AG.

2019

Testing when mobile apps go to background and come back to foreground

Autores
Paiva, ACR; Gouveia, JMEP; Elizabeth, JD; Delamaro, ME;

Publicação
Proceedings - 2019 IEEE 12th International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2019

Abstract
Mobile applications have some specific characteristics not found on web and desktop applications. The mobile testing tools available may not be prepared to detect problems related to those specificities. So, it is important to assess the quality of the test cases generated/executed by mobile testing tools in order to check if they are able to find those specific problems. One way to assess the quality of a test suite is through mutation testing. This paper presents new mutation operators created to inject faults leading to known failures related to the non-preservation of users transient UI state when mobile applications go to background and then come back to foreground. A set of mutation operators is presented and the rational behind its construction is explained. A case study illustrates the approach to evaluate a mobile testing tool. In this study, the tool used is called iMPAcT tool, however any other mobile testing tool could be used. The experiments are performed over mobile applications publicly available on the Google Play store. The results are presented and discussed. Finally, some improvements are suggested for the iMPAcT tool in order to be able to generate test cases that can kill more mutants and so, hopefully, detect more failures in the future. © 2019 IEEE.

2019

Testing android incoming calls

Autores
Paiva, ACR; Goncalves, MA; Barros, AR;

Publicação
Proceedings - 2019 IEEE 12th International Conference on Software Testing, Verification and Validation, ICST 2019

Abstract
Mobile applications are increasingly present in our daily lives. Being increasingly dependent on apps, we all want to make sure apps work as expected. One way to increase confidence and quality of software is through testing. However, the existing approaches and tools still do not provide sufficient solutions for testing mobile apps with features different from the ones found in desktop or web applications. In particular, there are guidelines that mobile developers should follow and that may be tested automatically but, as far as we know, there are no tools that are able do it. The iMPAcT tool combines exploration, reverse engineering and testing to check if mobile apps follow best practices to implement specific behavior called UI Patterns. Examples of UI Patterns within this catalog are: orientation, background-foreground, side drawer, tab-scroll, among others. For each of these behaviors (UI Patterns), the iMPAcT tool has a corresponding Test Pattern that checks if the UI Pattern implementation follows the guidelines. This paper presents an extension to iMPAcT tool. It enables to test if Android apps work properly after receiving an incoming call, i.e., if the state of the screen after the call is the same as before getting the call. It formalizes the problem, describes the overall approach, describes the architecture of the tool and reports an experiment performed over 61 public mobile apps. © 2019 IEEE.

Teses
supervisionadas

2019

Mutation-based Web Test Case Generation

Autor
Sérgio Miguel Almeida Ferreira

Instituição
UP-FEUP

2019

Android Crawler

Autor
Marco António Fernandes Gonçalves

Instituição
UP-FEUP

2019

Fault Injection in Android Applications

Autor
Adélia Helena Valentim Gonçalves

Instituição
UP-FEUP

2019

Mining Web Usage to Generate Regression GUI Tests Automatically

Autor
Marta Inês Macedo Vasconcelos

Instituição
UP-FEUP

2019

Exploração Dinâmica em Android

Autor
Jorge Miguel Rodrigues Ferreira

Instituição
UP-FEUP