Estudo comparativo entre ferramentas de teste unitário para Angular ao programar com o paradigma reativo utilizando RxJS
Main Author: | |
---|---|
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 |