Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS

Bibliographic Details
Main Author: BARROS, André
Publication Date: 2023
Format: Bachelor thesis
Language: por
Source: Repositório Institucional da UFPE
Download full: https://repositorio.ufpe.br/handle/123456789/50486
Summary: Angular é um framework frontend, construído em TypeScript, baseado em componentes para construir aplicações web.Parte da comunidade do Angular defende o uso do paradigma de programação reativa para ter ganhos em manutenibilidade. No Angular isso pode ser alcançado com o uso da biblioteca RxJS, porém o código da aplicação pode tornar-se mais complexo. Independentemente do paradigma de programação escolhido, os testes são parte fundamental no ciclo de desenvolvimento de software quando se busca atingir níveis altos de qualidade. O intuito desse trabalho é comparar três estratégias que podem ser utilizadas para fazer testes unitários em uma aplicação Angular que utiliza programação reativa com RxJS, sendo elas: O uso do método subscribe dos Observables do RxJS, o uso da API de Marble Diagrams que também é fornecida pelo RxJS e o uso da biblioteca Observer-spy que foi criada com o intuito de facilitar os testes de Observables do RxJS. As estratégias utilizadas foram comparadas com as seguintes métricas: quantidade de linhas, legibilidade do teste e finalidade das asserções. O objetivo da comparação é identificar quais das estratégias são melhores e piores em diversos cenários comumente encontrados no desenvolvimento de software frontend.
id UFPE_f8bad9cd57f55cd18d8026f4e3e89021
oai_identifier_str oai:repositorio.ufpe.br:123456789/50486
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str 2221
spelling Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJSFrontendTestesAngularRxJSProgramação reativaÁreas::Ciências Exatas e da Terra::Ciência da ComputaçãoAngular é um framework frontend, construído em TypeScript, baseado em componentes para construir aplicações web.Parte da comunidade do Angular defende o uso do paradigma de programação reativa para ter ganhos em manutenibilidade. No Angular isso pode ser alcançado com o uso da biblioteca RxJS, porém o código da aplicação pode tornar-se mais complexo. Independentemente do paradigma de programação escolhido, os testes são parte fundamental no ciclo de desenvolvimento de software quando se busca atingir níveis altos de qualidade. O intuito desse trabalho é comparar três estratégias que podem ser utilizadas para fazer testes unitários em uma aplicação Angular que utiliza programação reativa com RxJS, sendo elas: O uso do método subscribe dos Observables do RxJS, o uso da API de Marble Diagrams que também é fornecida pelo RxJS e o uso da biblioteca Observer-spy que foi criada com o intuito de facilitar os testes de Observables do RxJS. As estratégias utilizadas foram comparadas com as seguintes métricas: quantidade de linhas, legibilidade do teste e finalidade das asserções. O objetivo da comparação é identificar quais das estratégias são melhores e piores em diversos cenários comumente encontrados no desenvolvimento de software frontend.Angular is a frontend framework, built in TypeScript, based on components for building web applications. Part of the Angular community advocates for the use of reactive programming paradigm to achieve gains in maintainability. In Angular, this can be achieved using the RxJS library, but the source code becomes more complex. Regardless of the chosen programming paradigm, testing is a fundamental part of the software development cycle that aims to achieve high levels of quality. The purpose of this work is to compare three strategies that can be used for unit testing in an Angular application that uses reactive programming with RxJS, namely: using the subscribe method of RxJS Observables, using the Marble Diagrams API also provided by RxJS, and using the Observer-spy library that was created to facilitate testing of RxJS Observables. The strategies used were compared with the following metrics: amount of lines, test readability, and purpose of assertions. The objective of the comparison is to identify which strategies are better and worse in various scenarios commonly encountered in frontend software development.TEIXEIRA, Leopoldohttp://lattes.cnpq.br/2117651910340729BARROS, André2023-05-23T16:09:59Z2023-05-23T16:09:59Z2023-04-272023-05-22info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesis45p.application/pdfhttps://repositorio.ufpe.br/handle/123456789/50486porhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPE2023-05-24T05:30:56Zoai:repositorio.ufpe.br:123456789/50486Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212023-05-24T05:30:56Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.none.fl_str_mv Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
title Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
spellingShingle Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
BARROS, André
Frontend
Testes
Angular
RxJS
Programação reativa
Áreas::Ciências Exatas e da Terra::Ciência da Computação
title_short Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
title_full Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
title_fullStr Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
title_full_unstemmed Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
title_sort Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
author BARROS, André
author_facet BARROS, André
author_role author
dc.contributor.none.fl_str_mv TEIXEIRA, Leopoldo
http://lattes.cnpq.br/2117651910340729
dc.contributor.author.fl_str_mv BARROS, André
dc.subject.por.fl_str_mv Frontend
Testes
Angular
RxJS
Programação reativa
Áreas::Ciências Exatas e da Terra::Ciência da Computação
topic Frontend
Testes
Angular
RxJS
Programação reativa
Áreas::Ciências Exatas e da Terra::Ciência da Computação
description Angular é um framework frontend, construído em TypeScript, baseado em componentes para construir aplicações web.Parte da comunidade do Angular defende o uso do paradigma de programação reativa para ter ganhos em manutenibilidade. No Angular isso pode ser alcançado com o uso da biblioteca RxJS, porém o código da aplicação pode tornar-se mais complexo. Independentemente do paradigma de programação escolhido, os testes são parte fundamental no ciclo de desenvolvimento de software quando se busca atingir níveis altos de qualidade. O intuito desse trabalho é comparar três estratégias que podem ser utilizadas para fazer testes unitários em uma aplicação Angular que utiliza programação reativa com RxJS, sendo elas: O uso do método subscribe dos Observables do RxJS, o uso da API de Marble Diagrams que também é fornecida pelo RxJS e o uso da biblioteca Observer-spy que foi criada com o intuito de facilitar os testes de Observables do RxJS. As estratégias utilizadas foram comparadas com as seguintes métricas: quantidade de linhas, legibilidade do teste e finalidade das asserções. O objetivo da comparação é identificar quais das estratégias são melhores e piores em diversos cenários comumente encontrados no desenvolvimento de software frontend.
publishDate 2023
dc.date.none.fl_str_mv 2023-05-23T16:09:59Z
2023-05-23T16:09:59Z
2023-04-27
2023-05-22
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/50486
url https://repositorio.ufpe.br/handle/123456789/50486
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 45p.
application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1834468084113473536