4 research outputs found

    Live Collaboration in App Development

    Get PDF
    Real-time collaborative editing systems are increasing in popularity, having moved from document editing software to the world of software development. Live collaboration (or real-time collaboration) refers to a synchronous cooperation mechanism, allowing for concurrent changes to be made to the same object by multiple individuals. In recent years, many traditional software development tools have started to incorporate live collaboration. The motivation behind this fast expansion comes from a series of specific use cases propelled even more by the current COVID-19 pandemic, which forces people to stay at home and work in a remote manner. This hinders the possibilities for cooperation between team members during the development of a software project. In this work, we address this problem in the context of the OutSystems low-code platform, and we aim to determine how collaborative features, including real-time collaboration, can be implemented in OutSystems tools to enhance its collaborative experience for users developing applications. In this context, collaboration is defined as the processes and actions that take place between people during software development projects with the OutSystems platform, when trying to execute their work tasks. To test the ideal experience for collaborative features, such as real-time collaboration, in the OutSystems ecosystem, we analyzed the current state of the art of the research done in the fields of CSCW (Computer-supported CooperativeWork) and UX (User Experience) and experimented with other industry standard software to analyze their collaborative features. Because features are made for people, we then moved to the end-users and interviewed several users of the OutSystems platform to understand their issues when cooperating with other people, and finally we generated a series of designs to try to address their issues. These designs were conceptualized and materialized into actual mockups that were part of several usability tests, done with OutSystems users, to realize their potential in enhancing the collaboration experience when using OutSystems.Os sistemas de edição colaborativa em tempo-real estão a ganhar popularidade, tendo transitado do mundo do software da edição de documentos para o mundo do desenvolvimento de software. O título do documento, "Live collaboration in app development", refere-se a mecanismos de colaboração síncrona, que permitem alterações concorrentes a um mesmo objecto por parte de vários intervenientes. Nos últimos anos, várias ferramentas tradicionais de desenvolvimento de software começaram a incorporar colaboração em tempo-real. Esta rápida expansão é motivada por vários casos de uso, que ganham uma maior relevância na atualidade devido à pandemia da COVID-19, em que muitas pessoas têm de trabalhar de forma remota a partir de casa. Esta situação dificulta as possibilidades de cooperação entre colegas de equipa num projeto de desenvolvimento de software. Este trabalho aborda estes problemas no contexto da plataforma de low-code da OutSystems e pretende-se determinar se e como certas funcionalidades colaborativas, como colaboração em tempo-real, podem ser implementadas na plataforma da OutSystems de forma a melhorar a experiência colaborativa para os seus utilizadores. Neste contexto, colaboração refere-se aos processos e ações que ocorrem entre as pessoas durante os projetos de desenvolvimento de software com a plataforma da OutSystems. Para definir e testar a experiência ideal destas funcionalidades colaborativas, como colaboração em tempo-real, no ecossistema OutSystems, analisámos o estado da arte atual da investigação feita nas áreas de CSCW (Computer-supported CooperativeWork) e UX (User Experience) e experimentámos outros programas disponíveis no mercado para analisar as suas funcionalidades colaborativas. Como o software é feito para pessoas, entrevistámos vários utilizadores da plataforma OutSystems para compreender os seus problemas ao cooperarem com outras pessoas no contexto OutSystems e conceptualizámos várias ideias para tentar resolver esses problemas. Essas ideias foram depois materializadas em protótipos reais que fizeram parte de vários testes de usabilidade para perceber o seu potencial em melhorar a experiência de colaboração em OutSystems

    Multi-objective Search-based Mobile Testing

    Get PDF
    Despite the tremendous popularity of mobile applications, mobile testing still relies heavily on manual testing. This thesis presents mobile test automation approaches based on multi-objective search. We introduce three approaches: Sapienz (for native Android app testing), Octopuz (for hybrid/web JavaScript app testing) and Polariz (for using crowdsourcing to support search-based mobile testing). These three approaches represent the primary scientific and technical contributions of the thesis. Since crowdsourcing is, itself, an emerging research area, and less well understood than search-based software engineering, the thesis also provides the first comprehensive survey on the use of crowdsourcing in software testing (in particular) and in software engineering (more generally). This survey represents a secondary contribution. Sapienz is an approach to Android testing that uses multi-objective search-based testing to automatically explore and optimise test sequences, minimising their length, while simultaneously maximising their coverage and fault revelation. The results of empirical studies demonstrate that Sapienz significantly outperforms both the state-of-the-art technique Dynodroid and the widely-used tool, Android Monkey, on all three objectives. When applied to the top 1,000 Google Play apps, Sapienz found 558 unique, previously unknown crashes. Octopuz reuses the Sapienz multi-objective search approach for automated JavaScript testing, aiming to investigate whether it replicates the Sapienz’ success on JavaScript testing. Experimental results on 10 real-world JavaScript apps provide evidence that Octopuz significantly outperforms the state of the art (and current state of practice) in automated JavaScript testing. Polariz is an approach that combines human (crowd) intelligence with machine (computational search) intelligence for mobile testing. It uses a platform that enables crowdsourced mobile testing from any source of app, via any terminal client, and by any crowd of workers. It generates replicable test scripts based on manual test traces produced by the crowd workforce, and automatically extracts from these test traces, motif events that can be used to improve search-based mobile testing approaches such as Sapienz
    corecore