Prévia do material em texto
UNIVERSIDADE FEDERAL FLUMINENSE DAYANNEMARTINS PIMENTA DIEGO JUNIORHERMES RSPAPER V O.4.0 REFATORAÇÃO UTILIZANDOMVC E PROPOSTA DE TESTE DE REGRESSÃO FUNCIONAL NITERÓI 2023 DAYANNE MARTINS PIMENTA DIEGO JUNIOR HERMES RSPAPER V O.4.0 REFATORAÇÃO UTILIZANDO MVC E PROPOSTA DE TESTE DE REGRESSÃO FUNCIONAL Trabalho de Conclusão de Curso submetido ao Curso de Tecnologia em Sistemas de Computação da Universidade Federal Fluminense como requisito parcial para obtenção do título de Tecnólogo em Sistemas de Computação. Orientador: ALTOBELLI DE BRITO MANTUAN NITERÓI 2023 DAYANNE MARTINS PIMENTA DIEGO JUNIOR HERMES RSPAPER V O.4.0 REFATORAÇÃO UTILIZANDO MVC E PROPOSTA DE TESTE DE REGRESSÃO FUNCIONAL Trabalho de Conclusão de Curso submetido ao Curso de Tecnologia em Sistemas de Computação da Universidade Federal Fluminense como requisito parcial para obtenção do título de Tecnólogo em Sistemas de Computação. Este trabalho foi defendido e aprovado pela banca em 14/12/2023. BANCA EXAMINADORA Prof. Dr. Altobelli de Brito Mantuan – Orientador UFF - Universidade Federal Fluminense Prof.ª Dr.ª Helga Dolorico Balbi – Avaliadora CEFET/RJ – Centro Federal de Educação Tecnológica Celso Suckow da Fonseca AGRADECIMENTOS Agradeço primeiramente ao meu estimado orientador Prof. Dr. Altobelli de Brito Mantuan, pela orientação dedicadae sabedoria compartilhadaao longodeste trabalho. Sua paciência, insights valiosos e incentivo foram fundamentais para o desenvolvimento deste TCC. À minha dedicada dupla de trabalho, Diego Junior Hermes, expresso minha sincera gratidão. Nossa colaboração foi inspiradora e enriquecedora, e o sucesso deste projeto é, em grande parte, resultado do trabalho conjunto, troca de ideias e esforço conjunto. Não posso deixar de mencionar minha família, que sempre esteve ao meu lado, oferecendo apoio incondicional, compreensão e encorajamento. Aos amigos que estiveram presentes, oferecendo palavras de estímulo, compartilhando experiências e contribuindo para um ambiente propício ao aprendizado, meu mais sincero agradecimento. Por fim, agradeço a todos que, de alguma forma, contribuíram para a realização deste trabalho, direta ou indiretamente. Este TCC não seria possível sem o apoio generoso e a colaboração de cada um de vocês. Dayanne Martins Pimenta. AGRADECIMENTOS Primeiramente aDeus por termedado saúde e guiadomeus passos para superar as dificuldades desta caminhada. A todos meus familiares, que sempre me motivaram a lutar pelosmeusobjetivos,muitopacientesemedandoapoiomoralparaodesenvolvimentodeste e de outros trabalhos da universidade. Agradeço a meu Orientador, à Prof. Dr. Altobelli de BritoMantuan, por gentilmente terme ajudado eme guiado no decorrer deste trabalho, pelo suporte no pouco tempo que lhe coube, pelas reuniões semanais, correções e incentivos. A esta universidade, seu corpo docente, direção e administração. Meus agradecimentos, a minha colega e amiga Dayanne Martins Pimenta, pela oportunidade de compartilhar o desenvolvimento desta monografia, e aos demais amigos e companheiros de trabalhos e irmãos na amizade que fizeram parte da minha formação e que vão continuar presentes em minha vida com certeza. A todos que direta ou indiretamente fizeram parte da minha formação, o meu muito obrigado. Diego Junior Hermes. “É muito melhor lançar-se em busca de conquis- tas grandiosas, mesmoexpondo-se ao fracasso, do que alinhar-se com os pobres de espírito, que nem gozam muito, nem sofrem muito, porque vivem numa penumbra cinzenta, onde não co- nhecem nem vitória, nem derrota.” (Theodore Roosevelt) RESUMO Este trabalho apresenta avanços na otimização do softwareRSPapers, um software de recomendações para artigos científicos, que no decorrer das versões desenvolvidas, foi sendo aprimorado com algoritmo de recomendação no intuito de facilitar a revisão bibliográfica, permitindo a ordenação de artigos conforme as preferências do usuário. A interface que foi aprimorada na versão 0.3.0 do RsPaperQt6, teve a sua base guiada por princípiosdedesigne técnicasde interaçãohumano-computador (IHC), o queproporcionou umaexperiênciamais intuitiva emoderna, validada por testes especializados. Poremcomo aumento das features houve a necessidade da reestruturação do código criando modulo controller seguindo as diretivas domodel view control (MVC), e a opção de salvamento do estadodapesquisapara futurasediçoes.Alémdisso, este trabalho implementaa integração entre a interface gráfica do LabTif e códigos Python, visando uma comunicação mais eficiente com servidores. O projeto destaca-se também, pela integração com outras bases de dados como Scopus e Pubmed, além de aprimoramentos na arquitetura, alinhados à aplicação de princípios de IHC para criar interfaces intuitivas e acessíveis. Esse trabalho também destaca a realização de testes de regressão, que obtiveram êxito em seus resultados garantindo a integridade do software após consideráveis mudanças em suas estrutura, visando a eficiência e uma boa experiência do usuário. Palavras-chave: IHC, RSPapers, Python, PyQt6, Teste de Regressão. LISTA DE ILUSTRAÇÕES Figura 1 – Diagrama de Classes do RSPaper v 0.3.0.............................................................25 Figura 2 – Diagrama de Classesv 0.4.0....................................................................................26 Figura 3 – Esquema de Teste de caixa preta............................................................................28 Figura 4 – Tela principal.................................................................................................................32 Figura 5 – Janela de pesquisade arquivo................................................................................. 32 Figura 6 – Pasta de resultados.....................................................................................................33 Figura 7 – Tela de resultado Pubmed.........................................................................................33 Figura 8 – Tela de resultado Scopus...........................................................................................34 Figura 9 – Teste 2: Salvamentode Resultados........................................................................ 35 Figura 10 – Tela principal.................................................................................................................37 Figura 11 – Janela de seleçãode arquivo................................................................................... 37 Figura 12 – Tela excluindo um artigoda pesquisa.....................................................................38 Figura 13 – Pop up de confirmação de descarte de artigo...................................................... 38 Figura 14 – Tela exibindo alteração no campo de artigos descartados................................ 39 Figura 15 – Tela de salvamento dapesquisa atual....................................................................39 Figura 16 – Tela exibindo que a pesquisafoi salva....................................................................40 Figura 17 – Tela principal exibindo o campo de artigos descartados.................................... 40 Figura 18 – Tela dos artigos descartados.................................................................................... 41 Figura 19 – Tela inicial sem artigos............................................................................................... 42 Figura 20 – Tela de novo projeto....................................................................................................42 Figura 21 – Tela de novo projeto pesquisando artigos sobre covid........................................43 Figura 22 – Tela inicial com a barrade progresso......................................................................43 Figura 23 – Tela Novo projeto.........................................................................................................44 Figura 24 – Telapesquisa avançada.............................................................................................45Figura 25 – Tela de novo projeto com a inserção das regras da palavras-chaves..............45 Figura 26 – Tela Principal.................................................................................................................46 Figura 27 – Tela com resultados depesquisas anteriores....................................................... 47 Figura 28 – Tela com o cursor sobre o botão “Like” do artigo................................................. 47 Figura 29 – Tela com a solicitação de confirmação para mover artigo selecionado para a aba artigosde interesse................................................................................48 Figura 30 – Tela com o cursor sobre o botão de artigos de interesse...................................48 Figura 31 – Tela da aba artigos de interesse.............................................................................. 49 Figura 32 – Tela principal.................................................................................................................50 Figura 33 – Tela com seleção de projeto salvo na pasta de resultados................................50 Figura 34 – Tela com cursor em cima do botão de “Deslike”...................................................51 Figura 35 – Tela de confirmação da transferência do artigo para a aba de artigos descartados.................................................................................................................. 51 Figura 36 – Tela com o cursor sobre o botão de artigos descartados..................................52 Figura 37 – Tela somente com os artigos descartados............................................................52 LISTA DE ABREVIATURAS E SIGLAS CT Caso de Teste GUI Graphical User Interface IEEE Instituto de Engenheiros Eletricistas e Eletrônicos IHC Interface Humano Computador MVC Model View Control SO Sistema Operacional UFF Universidade Federal Fluminense UFRJ Universidade Federal do Rio de Janeiro UX User Experience WCAG Web Content Accessibility Guidelines SUMÁRIO 1 INTRODUÇÃO..............................................................................................................10 2 FUNDAMENTAÇÃOTEÓRICA................................................................................ 12 2.1 INTERAÇÃO HUMANOCOMPUTADOR (IHC).....................................................12 2.2 BREVE HISTÓRICO DAEVOLUÇÃO (IHC)..........................................................12 2.2.1 Qualidade em IHC........................................................................................................13 2.2.1.1 Usabilidade....................................................................................................................14 2.2.1.2 Acessibilidade............................................................................................................... 14 2.2.1.3 Comunicabilidade.........................................................................................................14 2.3 REGRAS FUNDAMENTAIS PARAO BOM FUNCIONAMENTO DE UMA (IHC)................................................................................................................................15 2.3.1 Esforce-se pela consistência.....................................................................................15 2.3.2 Atender a usabilidade universal................................................................................ 16 2.3.3 Oferecer um feedback informativo........................................................................... 16 2.3.4 Diálogos que indiquem o fim de uma ação.............................................................16 2.3.5 Evite erros......................................................................................................................16 2.3.6 Permitir a fácil reversãode ação...............................................................................17 2.3.7 Suportar o controle do usuário..................................................................................17 2.3.8 Reduzir a carga de memória de curta duração..................................................... 17 2.4 HEURÍSTICAS DE NIELSEN PARAO BOM FUNCIONAMENTO DE UMA (IHC) 17 2.4.1 Visibilidade do statusdo sistema..............................................................................18 2.4.2 Correspondência entre o sistema e o mundo real................................................ 18 2.4.3 Controle e liberdadedo usuário................................................................................18 2.4.4 Consistência e padronização.....................................................................................18 2.4.5 Prevenção de erros......................................................................................................19 2.4.6 Reconhecimento em vezde memorização.............................................................19 2.4.7 Flexibilidade e eficiênciade uso................................................................................19 2.4.8 Estética e designminimalista.................................................................................... 19 2.4.9 Ajuda aos usuários a reconhecerem, diagnosticarem e recuperarem-se de erros...........................................................................................................................20 2.4.10 Ajuda e documentação................................................................................................20 2.5 ANÁLISE E PROJETODE INTERFACE.................................................................20 3 RSPAPER V 0.4.0........................................................................................................22 3.1 BIBLIOTEC PYQT6..................................................................................................... 23 3.2 DIAGRAMA DE CLASSE........................................................................................... 23 4 TESTE DE SOFTWARE............................................................................................ 27 4.1 TESTES FUNCIONAIS...............................................................................................27 4.1.1 Teste de Regressão.....................................................................................................29 4.2 PLANO DE TESTE......................................................................................................29 4.3 EXECUÇÃO DOS TESTES.......................................................................................31 4.4 ANALISE DOS RESULTADOS..................................................................................53 5 CONCLUSÃO...............................................................................................................55 REFERÊNCIAS............................................................................................................56 10 1 INTRODUÇÃO Orápido desenvolvimento da sociedade impulsiona abusca por soluções ágeis para desafiosemergentes.Nessecontexto, a computação desempenhaumpapel crucial ao criar sistemas que automatizam tarefas, substituindo eficazmente funções que eram anterior- mente desempenhadas por seres humanos. Para garantir a eficiência desses sistemas, é essencial contar com interfaces que não apenas atendam às demandas funcionais, mas que também sejam de fácil utilização e agradáveis ao usuário final, uma vez que é pormeio delas que ocorre a interação humana com os sistemas. Nesse contexto, foi desenvolvido o RSPapers que é umprojeto fruto da colaboração entre oProfessorAltobelli Mantuan e estudantes daUniversidadeFederal doRio de Janeiro (UFRJ), com o propósito de oferecer suporte a pesquisadores na área farmacêutica, simpli- ficando a busca por artigos científicos alinhados aos interesses individuais dos usuários., um software especializado embusca e gerenciamento de artigos científicos, que integra um algoritmo de recomendação. Este algoritmo possibilita a ordenação dos artigos conforme as preferências eescolhas do usuário, permitindo a seleção de artigos relevantes para sua pesquisa ou a exclusão de outros. Desde sua versão inicial, a interface do software passou por melhorias significativas, com foco em proporcionar uma experiência mais moderna e intuitiva aos usuários. Essas melhorias foram implementadas seguindo os princípios de design e as técnicas de interação humano-computador (IHC). Com a atualização da interface do RsPaper para PyQt6 na versão 0.3.0, e o au- mento das features, o objetivo principal deste trabalho foi de criar melhorias no código seguindo omodeloModel View Control (MVC), realizar a integração com as fontes da Sco- pus(ELSEVIER, 27 de junho de 2022) e Pubmed(PUBMED, 12 dezembro 2023), além de salvar o estado da pesquisa para futuras edições, função essa que não tinha no programa. Com o auxílio de trabalhos de renomados autores dos temas de técnicas de Interação Humano-Computador (IHC) e princípios dedesign, e comaajudadoprof. AltobelliMantuan, foram realizados as modificações necessárias e um plano e execução de testes que visou aferir as funcionalidades especificadas na regra de negócio. Dentro do escopo da execução do plano de testes, foi utilizado no projeto o teste de regressão funcional, que emerge como um componente crucial na busca pela sus- tentabilidade e qualidade contínua do software, especialmente quando confrontado com alterações substanciais em sua estrutura. Este enfoque é essencial para salvaguardar a integridade do sistema, assegurando quemodificações ou atualizações não comprometam a funcionalidade previamente estabelecida. O objetivo primordial dos testes de regressão funcional é garantir, não apenas a eficiência operacional, mas também a manutenção de uma experiência do usuário aprimorada. Ao validar a consistência das funcionalidades existentes após mudanças significativas, esses testes desempenham um papel crucial na identificação e correção proativa de possíveis regressões, contribuindo assim para a Capítulo 1. INTRODUÇÃO 11 confiabilidade e estabilidade do software ao longo do tempo. Acercadaabordageminicial,opresente trabalhoestáestruturadoemcincocapítulos, sendo o primeiro atinente ao que sera desenvolvido no decorrer do projeto, somado com a relevância da abordagem do tema proposto. O segundo capítulo , o embasamento teórico e histórico dentro do contexto evolutivo da IHC, com suas regras e qualidades para um bom funcionamento. No terceiro capítulo tem-se o software RsPaper versão 0.4.0 com seu diagrama de classes mostrando as mudanças ocorridas após as melhorias, e a biblioteca PyQt6 utilizada na atualização da versão 0.3.0. No quarto capitulo ve-se a execução do plano de testes seguido das conclusões que foram descritas no capitulo cinco. 12 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo, serão explorados os conceitos relacionados à Interação Humano- Computador (IHC), bem como os padrões de qualidade associados. Esses padrões cons- tituem critérios e diretrizes que desempenham um papel crucial na asseguração de um sistema final eficaz, eficiente e centrado no usuário. Esses padrões abrangemáreas essen- ciais, como usabilidade, comunicabilidade, acessibilidade e experiência do usuário. 2.1 INTERAÇÃO HUMANO COMPUTADOR (IHC) AIHCéumaáreamultidisciplinarqueenvolveosprincípiosdaciênciadacomputação e da informação comperspectivas das ciências sociais e comportamentais. Seu foco reside na análise da dinâmica de interação entre os seres humanos e computadores. O objetivo central da IHC é compreender de que forma essa interação influencia a vida dos usuários, através de parâmetros de avaliação da qualidade do sistema resultante, em paralelo com o avanço tecnológico (Precee et al., 1994) Com o desenvolvimento exponencial das tecnologias de informação e comunicação nas últimas décadas, faz-se necessária a preocupação com o usuário final. Atualmente, sistemas, protótipos e equipamentos nas mais diversas áreas são desenvolvidos com o intuito de aprimorar a IHC e melhorar a experiência de quem irá usufruir do resultado. Independentedacomplexidadedasoperaçõesquesedeseja realizar,a interfaceprecisaser fácil de compreender e utilizar, executar o que está previsto, além de possuir a consistência necessária durante o tempo em que a interação acontece (Rocha; Baranauskas, 2003), (Norman, 2013). Segundo Barbosa (2010), o desenvolvimento e o aprimoramento da IHC é produto de conhecimentos vindos de outras áreas fora da Computação, como a Psicologia, Sociologia e Antropologia. No que tange a parte da cultura e comportamento do usuário em seus ambi- entes de interação, também pode-se citar a contribuição das áreas de design, Ergonomia, Linguística e Semiótica que auxiliam a IHC na definição da interface com o usuário (Barbosa; Silva, 2010) . 2.2 BREVE HISTÓRICO DA EVOLUÇÃO (IHC) No período compreendido entre 1940 e 1950, ocorre o Início da Computação e InterfacesPrimitivas.Esseperíodocoincidecomosurgimentodosprimeiros computadores. Nota-se que, nessa época, as interações eram principalmente baseadas em interfaces de linha de comando, onde os usuários inseriam os comandos por meio de fitas perfuradas ou cartões perfurados. Não havia uma compreensão clara sobre a experiência do usuário. Indivíduos altamente treinados e conhecedores tinham a capacidade de interagir com computadores. A interação estava restrita a programadores eespecialistas. Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 13 De acordo com Englebart (1968), na década de 60, a “Graphical User Interface“ (GUI) começou a surgir a partir do desenvolvimento de sistemas operacionais com o Xerox PARC. Com isso permitiu-se que houvesse interações por meio de ícones, janelas e mouse, tornando o processo mais intuitivo (Englebart; William, 1968) . Nesse período, o microcomputador da empresa Xerox em 1973 denominado Xerox Alto e o primeiro software baseado em janelas o Xerox Star lançado pela mesma empresa em 1981 foram marcos importantes. Já na década de 80, segundo Norman(1988), as interfaces gráficas tiveram a sua popularidade aumentada com o advento do lançamento do Macintosh da Apple e do sistema operacional Windows da Microsoft (Norman, 1988). Neste período o usuário final começou a ganhar o papel de destaque no design de projetos, focados na usabilidade e na experiência do usuário. Emergiu a necessidade de adaptar essas máquinas para que o público pudesse aproveitar a tecnologia sem necessariamente ser um especialista no assunto. Na década de 90, ocorre a expansão da IHC para a Web e dispositivos móveis. Surgem novas técnicas de design responsivo com abordagens e interação multiplataforma em consequência da evolução da internet e dos dispositivos móveis (Nielsen; Loranger, 2006). Entre os anos 2000 e 2010, segundo Norman (2010), surgem as interfaces naturais, onde toques e gestos ganham ênfase em dispositivos como Iphone e o Microsoft Surface (Norman, 2010). Ocorre tambéma influência de pesquisas na área da realidade aumentada e virtual para a IHC. Já Folstad (2018), afirma que, a partir de 2010, surgem assistentes virtuais e chatbots baseados em Inteligência Artificial (IA) que começam a desempenhar um papel junto a IHC. Isso faz com que as interações sejam mais contextuais, personalizando a experiência do usuário, o que leva a perceber que dentro de um futuro avanço tecnológico, novos desafios irão surgir e em paralelo a busca por interações mais eficazes e significativas para o usuário final (Folstad, 2018) . 2.2.1 Qualidade em IHC A qualidade em IHC é de suma importância para garantir que sistemas e interfaces atendam às necessidades e expectativas dos usuários. Conforme abordado por Sharp, H. et al.(2007), a qualidade em IHC é uma busca contínua para criar interfaces que sejam eficazes, eficientes e proporcionem uma experiência de usuário satisfatória. Isso inclui aspectoscomousabilidade,acessibilidadeecomunicabilidade.Portantoaqualidadeda IHC não se limita apenas à funcionalidade técnica, pois considera também o contexto de uso e a interação humana, promovendo designs centrados no usuário (Sharp;Rogers; Preece, 2015). Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 14 2.2.1.1 Usabilidade Nielsen (1994), enfatiza a importância da usabilidade como um componente-chave da qualidade em IHC. Ele argumenta que a usabilidade é fundamental para garantir que os usuários possam realizar suas tarefas de forma eficaz e eficiente, minimizando erros e frustrações.Ausabilidadeenvolveelementoscomo facilidadedeaprendizado, eficiênciade uso,prevençãodeerros e satisfação dousuário, para queoproduto desenvolvidogere uma experiência positiva e produtiva (Nielsen, 1994). Além disso, Norman (2013), afirma que o design de sistemas e interfaces deve ser intuitivo e permitir que os usuários compreendam facilmente sua funcionalidade. A usabilidade, portanto, desempenha um papel central na busca pela qualidade em IHC, pois assegura que os sistemas atendam às necessidades e expectativas dos usuários e proporcionem uma interação harmoniosa e eficaz (Norman, 2013) . 2.2.1.2 Acessibilidade A acessibilidade na (IHC) assegura que sistemas e interfaces sejam utilizáveis por pessoas com diferentes habilidades e necessidades. Como destaca Chisholm (2008), a acessibilidade na IHC visa tornar a tecnologia digital acessível a todos, ou seja, inclui pessoas com deficiências visuais, auditivas, motoras e cognitivas. Paraque isso seja possí- vel, envolve-se a consideração de diretrizes, como do WCAG (Web Content Accessibility Guidelines), para garantir que os sistemas sejam percebidos, operados e entendidos por todos os usuários, independentemente de suas capacidades (Chisholm; May, 2008). De acordo com Dix (2004), a acessibilidade tem um importante papel no que tange a experiência com o usuário, pois não é apenas uma preocupação ética, mas também uma questão de inclusão e equidade, tornando-se essencial para garantir que a tecnologia digital seja verdadeiramente acessível a todos, promovendo a igualdade de oportunidades (Dix et al., 2004). 2.2.1.3 Comunicabilidade A comunicabilidade se concentra na capacidade de os usuários compreenderem e comunicarem-se de forma efetiva com sistemas e interfaces. Norman (2013), ressalta que um design eficaz não apenas torna os sistemas usáveis, mas também torna sua funcionalidade clara e compreensível para os usuários. A comunicabilidade envolve a criação de interfaces que comuniquem de forma eficaz o funcionamento do sistema, as opçõesdisponíveiseasaçõespossíveis,facilitandoassimainteraçãodosusuários(Norman, 2013). Para Sharp, H et al. (2015), a comunicabilidade é destacada como parte integrante do processo de design de interação. Eles afirmam a importância de projetar interfaces Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 15 que permitam aos usuários entenderem o estado do sistema e como suas ações afetam o ambiente digital, contribuindo para que a experiência do usuário seja mais comunicativa e eficaz (Sharp; Rogers; Preece, 2015) . 2.3 REGRAS FUNDAMENTAIS PARAO BOM FUNCIONAMENTO DE UMA (IHC) A abordagem de Ben Shneiderman em relação às regras fundamentais para uma Interação Humano-Computador (IHC) eficaz é uma referência sólida no campo do design de interfaces e experiência do usuário. Seus princípios fornecem um guia valioso para os designers, desenvolvedores e profissionais de IHC que buscam criar sistemas e interfaces que atendam às necessidades dos usuários de maneira eficaz e agradável (Shneiderman, 2005). Quandoesses princípios são aplicados no processo de design, os resultados podem ser profundos. Eles não apenas melhoram a usabilidade do sistema, tornando-o mais fácil de aprender e usar, mas também têm o potencial de aumentar a satisfação do usuário. Uma interface consistente, que fornece feedback informativo e evita erros, pode criar uma experiênciamais suave e agradável para os usuários, reduzindo a frustração e a ansiedade (Shneiderman, 2005). Além disso, a ênfase de Shneiderman na “usabilidade universal” e no “controle do usuário” reflete a importância de tornar a tecnologia acessível a todos, independentemente de suas habilidades ou limitações. Essa abordagem inclusiva é crucial em ummundo onde a tecnologia desempenha um papel cada vez mais central em nossas vidas e onde a diversidade de usuários é a norma (Shneiderman, 2005). Os princípios de Shneiderman não apenas beneficiam os usuários finais, mas também têm implicações significativas para o desenvolvimento de produtos tecnológicos eficazes. Uma interface bem projetada pode resultar em uma redução no suporte técnico necessário e na taxa de erros, economizando tempo e recursos para asempresas. Além disso, a satisfação do usuário pode se traduzir em fidelidade à marca e recomendações positivas, contribuindo para o sucesso a longo prazo de um produto (Shneiderman, 2005). Neste capítulo serão abordados esses princípios essenciais para o design de siste- mas e interfaces. 2.3.1 Esforce-se pela consistência Essa regra enfatiza a importância do desenvolvimento de uma interface de usuário que seja coesa e uniforme ao longo de um sistema ou aplicativo. Segundo Shneiderman (2016), isso significa que elementos de design, como cores, fontes, ícones e ações, devem ser consistentes em todo o sistema, para que os usuários possam prever como as coisas funcionam e interagem. A consistência ajuda a reduzir a curva de aprendizado, torna a Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 16 interação mais intuitiva e reduz erros (Shneiderman, 2016). 2.3.2 Atender a usabilidade universal Shneiderman (2016), destaca a importância de criar interfaces de usuário que sejam acessíveis e utilizáveis por uma ampla gama de pessoas, independentemente de suas habilidades, conhecimentos,experiênciaou limitações. Issoenvolveprojetar consi- derando a diversidade de usuários, como aqueles iniciantes, experientes, com deficiências visuais, auditivas, motoras ou cognitivas, e garantir que a interface seja intuitiva e adaptável para atender às necessidades de todos os públicos. Essa abordagem contribui para a inclu- são digital e a usabilidade efetiva do sistema emumcontextomais amplo (Shneiderman, 2016). 2.3.3 Oferecer um feedback informativo Shneiderman (2016), enfatizaa importânciademanter osusuários informadossobre o que está acontecendo no sistema durante suas interações. Isso significa que o sistema deve fornecer respostas claras e imediatas às ações dos usuários, indicando se uma ação foibem-sucedidaou não,o status deumaoperaçãoemandamento e quaisquermensagens de erro relevantes. Esse feedback informativo ajuda os usuários a compreenderemmelhor o sistema, a tomar decisões informadas e a evitar confusão ou frustração (Shneiderman, 2016). 2.3.4 Diálogos que indiquem o fim de uma ação Shneiderman (2016), ressaltaa importânciade fornecer feedback claroe perceptível aos usuários quando uma ação é concluída em uma interface de usuário. Isso significa que, após realizarumaoperação,osusuáriosdevemreceberumaconfirmaçãovisível ouauditiva de que a ação foi bem-sucedida, permitindo-lhes saber que podem continuar interagindo com o sistema ou realizar outras ações, sem ambiguidade. Isso aumenta a sensação de controle e compreensão por parte dos usuários, contribuindo para uma experiência de usuário mais eficiente e satisfatória (Shneiderman, 2016). 2.3.5 Evite erros Esse princípio consiste em projetar o sistema de forma que o usuário não cometa erros ou se, ao cometer, não sejam erros graves, como por exemplo, desabilitar menus que não são apropriados evitando dessa forma que o usuário clique ou acesse umaárea restrita do sistema. Esse princípio também indica que as mensagens de erros devem ser claras, objetivas e específicas. Mensagens que são muito genéricas tornam difícil para o iniciante saber o que deu errado. Mensagens simples e condenatórias são frustrantes porque não Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 17 fornecem informações suficientes sobre o que deu errado nem o conhecimento para corrigir as coisas. Portanto, a quantidade certade especificidadeé importante” (Shneiderman, 2005). (p. 480). 2.3.6 Permitir a fácil reversão de ação É essencial que o sistema ofereçaaos usuários a capacidade de desfazer suas açõessemprequepossível.Essafuncionalidadenãoapenasconcedecontroleaosusuários, mas também promove uma sensação de tranquilidade ao saber que erros podem ser corrigidos. Além disso, ela estimula a exploração do sistema, incentivando um aumento do conhecimento do usuário sobre o funcionamento domesmo. 2.3.7 Suportar o controle do usuário Essa regra está ligada à concessão de controle ao usuário, proporcionando-lhe a sensação de liderança quando percebe que a interface responde prontamente às suas ações. Além disso, essa diretriz ressalta a importância de que, ao desenvolver um sistema, as informações contidas nele devem ser claras e que as respostas não devem desviar das expectativas do usuário. Por exemplo, ao clicar no botão “fechar” de uma janela, o usuário espera que a ação resulte no fechamento da janela, sem surpresas ou resultados inesperados. 2.3.8 Reduzir a carga de memória de curta duração Conforme destacado por Shneiderman (2005), os seres humanos têm limitações na capacidade de memorização, sendo capazes de reter aproximadamente “sete blocos de informações”. Portanto, ao projetar um sistema, é de extrema importância evitar que os usuários sejamobrigadosamemorizar extensasquantidades de informações.Os sistemas nãodevemrequererqueosusuáriosmemorizeminformaçõesdeumapáginaparautilizá-las em outra (Shneiderman, 2005). 2.4 HEURÍSTICAS DE NIELSEN PARAO BOM FUNCIONAMENTO DE UMA (IHC) JakobNielsen,umrenomadoespecialistaemInteraçãoHumano-Computador (IHC), propôs um conjunto de 10 heurísticas de usabilidade que são amplamente usadas na avaliaçãodeinterfacesdeusuário.Essasheurísticassãodiretrizesgeraisparacriarsistemas mais usáveis e identificar problemas de usabilidade. As próximas seções explicam as 10 heurísticas de Nielsen (Nielsen, 1994). Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 18 2.4.1 Visibilidade do status do sistema Essa heurística refere-se à importância de manter os usuários informados sobre o estado do sistema durante suas interações. É essencial para garantir uma experiência de usuário eficaz e reduzir a incerteza em relação às ações realizadas. Quando os usuá- rios podem perceber claramente o que está acontecendo em um sistema, eles têm uma sensação de controle e confiança, o que contribui significativamente para a usabilidade e satisfação geral do usuário. Nielsen (1994) argumenta que fornecer feedback imediato e visível é crucial para manter os usuários envolvidos e informados durante suas interações com um sistema, ajudando a evitar frustrações e erros (Nielsen,1994). 2.4.2 Correspondência entre o sistema e o mundo real Essaheurística relata a importância emprojetar interfacesqueadotam terminologias e conceitos familiares aos usuários, alinhados coma linguagemeas convenções domundo real e do domínio do problema. De acordo com Nielsen (1994), esta heurística promove a familiaridade e a intuitividade da interface, tornando-a mais acessível aos usuários. Os designers de interface buscam reduzir a carga cognitiva dos usuários, permitindo que eles se concentrem nas tarefas em vez de aprender novos termos ou conceitos (Nielsen, 1994). 2.4.3 Controle e liberdade do usuário É preciso que o usuário tenha a capacidade de controlar suas ações e navegação dentro de um sistema de forma intuitiva e eficaz. Isso significa que os usuários devem ser capazes de realizar operações desejadas facilmente, ao mesmo tempo em que têm a liberdade de voltar atrás ou desfazer ações indesejadas sem grandes dificuldades. A essênciadestaheurísticaéproporcionaraosusuáriosumambientedigitalqueseassemelhe ao senso de controle e liberdade que eles experimentariam na interação com omundo real. Essa abordagem visa minimizar a sensação de aprisionamento digital e promover uma experiência mais amigável e satisfatória para o usuário (Nielsen,1994). 2.4.4 Consistência e padronização Essaabordagemvisa reduzir a cargacognitivadosusuários, tornandomais fácil para eles identificar e compreender a funcionalidade dos elementos de interface, como botões e menus, sem a necessidade de aprender novos padrões a cada interação. Aconsistência promove uma experiência de usuário mais intuitiva e eficiente, aumentando a familiaridade e reduzindo a possibilidade de erros. Conforme Nielsen e Molich (1990) destacam, essa heurísticaé fundamental paragarantir que odesign da interface atendaàs expectativas dos usuários, criando uma experiência mais fluida e satisfatória (Nielsen; Molich, 1990). Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 19 2.4.5 Prevenção de erros A “Prevenção de Erros” nas diretrizes de usabilidade de acordo com Nielsen e Molich (1990), destacam a importância de projetar sistemas de forma a evitar que os usuários cometam erros. Isso envolve a implementação de mecanismos de segurança e ações de confirmação para ações críticas, bem como o uso de feedback claro para informarosusuáriossobreasconsequênciasdesuasações.Aprevençãodeerroscontribui significativamente para a experiência do usuário, reduzindo frustrações e aumentando a eficácia das interações (Nielsen; Molich, 1990). 2.4.6 Reconhecimento em vez de memorização Essa heurística enfatiza a importância de projetar interfaces que permitam aos usuários reconhecer facilmente informações e opções, a fim de que se evite a necessidade de memorizar dados ou procedimentos. Essa abordagem está alinhada com estudos cognitivos que destacam a capacidade humana de reconhecimento como mais eficiente e menos propensa a erros do que a memória de curto prazo (Baddeley, 1992). Ao minimizar a carga cognitiva de memorização, as interfaces de usuário se tornam mais acessíveis e amigáveis, facilitando a interação do usuário com o sistema (Shneiderman, 1998). 2.4.7 Flexibilidade e eficiência de uso Enfatiza a importância de projetar interfaces que atendam tanto a usuários novatos quanto a usuários experientes, ou seja oferecer a capacidade de personalização e atalhos para os usuários mais avançados, de modo a permitir que eles realizem suas tarefas de maneira mais eficiente. Essa heurística se baseia na ideia de que, ao dar aos usuários a flexibilidade de adaptar a interface às suas necessidades e níveis de habilidade, a experiência geral do usuário pode ser aprimorada, promovendo uma curva de aprendizado mais suave e aumentando a produtividade (Nielsen, 1994). 2.4.8 Estética e design minimalista As diretrizes de usabilidade de Nielsen (1994) destacam a importância em criar-se interfaces limpas e visualmente agradáveis. Uma estética eficaz não apenas contribui para umaexperiênciadousuáriomaisagradável,mastambémfacilitaacompreensãodainterface ea localização de informações relevantes.A simplicidadevisual e a organização cuidadosa dos elementos da interface ajudam a reduzir a carga cognitiva do usuário, tornando a interação mais fluida e eficiente. Isso ressalta a necessidade de equilibrar a estética com a funcionalidade, assegurando que elementos visuais não comprometam a usabilidade do sistema (Nielsen, 1994). Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 20 2.4.9 Ajuda aos usuários a reconhecerem, diagnosticarem e recuperarem-se de erros Segundo Nielsen (1994), existe a importância de projetar-se interfaces que não apenascomuniquemerrosdeformaclaraeprecisa,mastambémorientemosusuáriossobre como corrigir esses erros de maneira eficaz. Isso inclui a apresentação de mensagens de erro informativaseamigáveis,bemcomoaofertadesoluçõesousugestõespara resolveros problemas.A implementaçãoadequadadessa heurísticapodemelhorar significativamente a experiência do usuário, reduzindo a frustração e melhorando a eficiência na interação com o sistema (Nielsen, 1994). 2.4.10 Ajuda e documentação Essa heurística destaca a importância de fornecer aos usuários acesso a informa- ções de suporte quando necessário. Isso inclui a disponibilização de documentação clara e recursos de ajuda, como tutoriais e FAQs, para auxiliar os usuários em suas interações como sistema.Esses recursos desempenhamumpapel crucial namelhoria da usabilidade, pois capacitam os usuários a superar obstáculos,entender funcionalidades complexas e solucionar problemas de forma independente, contribuindo assim para uma experiência mais satisfatória (Nielsen, 1994) . 2.5 ANÁLISE E PROJETO DE INTERFACE Um sistema interativo é concebido com a finalidade de auxiliar os usuários a atingir seus objetivos. A elaboração do projeto desse sistema passa por etapas essenciais para garantir que o resultado final não seja apenas uma inovação tecnológica, mas também proporcione uma experiência de uso satisfatória aos usuários. • Análise de interface - Antes de iniciar qualquer projeto de interface é de suma importância compreender as necessidades e expectativas do usuário. A analise de interface consiste emcoletar informações sobre público-alvo, suas tarefas, preferen- cias e contexto. São usados entrevistas, questionários, observações e commétodos para obtenção de tais dados (Norman, 1988). • Projeto de interface - O projeto de interface é a fase em que os designers traduzem as informações coletadas na análise em soluções concretas. Isso envolve a criação de wireframes, protótipos, esboços e designs finais que definem a aparência e a inte- ração da interface. Os princípios de usabilidade, como a consistência, a simplicidade e feedback claro, são fundamentais nessa etapa (Sharp; Rogers; Preece, 2015) . • Usabilidade e Experiência do Usuário - A usabilidade e a experiência do usuário (UX) são pedras angulares do design de interface. Usabilidade refere-se à facilidade Capítulo 2. FUNDAMENTAÇÃO TEÓRICA 21 com que os usuários podem realizar tarefas, enquanto a UX aborda as emoções e percepções dos usuários ao interagirem com o sistema. Garantir que a interface seja intuitiva, eficiente e agradável é essencial para o sucesso do produto (JESSE JAMES GARRET, 2010). • Avaliação de interface - A avaliação de interface é um processo contínuo quevisa identificar problemas e áreas de melhoria na interação. Métodos como testes de usabilidade, avaliação heurística e análise de métricas de uso ajudam a refinar a interface com base no feedback dos usuários (DUMAS; LORING,2008). • Design centrado no usuário - O design centrado no usuário é uma abordagem que prioriza as necessidades e expectativas dos usuários em todas as fases do desenvolvimento. Isso inclui a realização de testes de usabilidade com usuários reais e a iteração constante do design com base no feedback coletado (COOPER; REIMANN; CRONIN, 2014). O processo de análise e projeto de interface não é apenas uma etapa essencial no desenvolvimento de sistemas interativos, mas também um fator determinante para o sucesso desses sistemas. É uma jornada que começa com a compreensão profunda das necessidades e expectativas dos usuários, permeia a criação de interfaces eficazes e agradáveis e continua com avaliações criteriosas e melhoriascontínuas. O design de interface não é simplesmente uma questão de estética ou funcionalidade; ele é impulsionado pela busca incansável pela usabilidade e pela busca por uma experiência do usuário que vá além da eficiência, incorporando a satisfação e o prazer na interação. É um campo que evolui constantemente, adaptando-se às mudanças nas tecnologias e nas preferências dos usuários. Avaliar e aprimorar a interface é uma prática contínua, alimentada pelo feedback valiosodosusuários.Énesseciclodeavaliaçãoemelhoriaqueas interfacesse transformam demeras inovações tecnológicasemferramentasquecapacitameencantamseususuários. Por fim, o design centrado no usuário é a essência que permeia todo o processo. Colocar as necessidades e expectativas dos usuários no centro do desenvolvimento é o que torna o design de interface mais do que apenas um conjunto de técnicas, mas uma filosofia que impulsiona a criação de interfaces verdadeiramente impactantes. 22 3 RSPAPER V 0.4.0 As versões que foram desenvolvidas do software, tiveram a contribuição de alunos de graduação em Tecnologia em Sistemas Computacionais da UFF. Em 2020, o aluno (Teobaldo, 2020) iniciou o projeto com uma interface baseada em PyQt5, e o sistema recebeu atualizações para o PtQt6 com (Coutinho; Valladão, 2022) e (Marques; Dias, 2023)). Empregando a técnica de web scraping, que automatiza a coleta de dados daWeb, o software possibilita a extração e organização eficiente de informações para análises subsequentes. O fluxo de trabalho do RSPAPER inicia-se quando o usuário realiza uma nova pes- quisa, aplicando filtros e palavras-chave específicas. Com base nessa seleção, o programa conduz uma pesquisa nas bases de dados escolhidas pelo usuário, apresentando uma lista de resultados obtidos. A partir dessa lista, o usuário pode selecionar ou descartar os artigos conforme seu interesse e necessidades. A versão 0.4.0 representa a refatoração da versão 0.3.0, introduzindo a classe control- ler para conferir maior autonomia e aderência ao padrão de arquitetura MVC de acordo com (Gamma E. et al., 1994), que serve como base de desenvolvimento do RSPAPER (Gamma et al., 1994). Este último é fundamentado na arquitetura MVC (Model-View-Control ), na qual as classes de um sistema são organizadas em três grupos: • Visão (View ): Responsável pela interface gráfica do sistema. • Controlador (Control): Responsável por interpretar o comportamento da aplicação. • Modelo (Model): Responsável pelas regras de negócio e comunicação com a base de dados. AarquiteturaMVCproporcionaumaabordagemestruturadaparaodesenvolvimento de software, oferecendo várias vantagens. A clara separação de responsabilidades entre o Modelo, que representa a lógica de negócios e os dados, a Visão, que trata da interface do usuário, e o Controlador, que gerencia as interações entre o Modelo e a Visão, facilita a manutenção e a evolução do código. Essa divisão também promove a reusabilidade de código,permitindoquemodelosevisõessejamutilizadosdemaneiraindependente(Gamma et al., 1994). Além disso, a arquitetura MVC facilita o desenvolvimento paralelo, pois diferentes equipes podem trabalhar em componentes distintos sem interferências. A flexibilidade e extensibilidade são características-chave, permitindo a adição de novas funcionalidades sem impactar o código existente. A testabilidade é aprimorada, possibilitando a realização de testes unitários em cada componente de forma isolada. Em resumo, o MVC contribui Capítulo 3. RSPAPER V 0.4.0 23 para uma experiência de desenvolvimento mais organizada, intuitiva e eficiente(Fowler, 5 novembro 2002). 3.1 BIBLIOTEC PYQT6 No desenvolvimento da interface gráfica para o software RSPAPER, optou-se por utilizar a biblioteca PyQt6. A biblioteca PyQt6 de acordo com é umwrapper doPython para o framework Qt uma robusta biblioteca de desenvolvimento de software que disponibiliza uma variedade de ferramentas e componentes para a criação de aplicações gráficas e interfaces de usuário (Summerfield, 9 outubro 2015). Essa escolha foi fundamentada por diversos motivos: • O PyQt6 é multiplataforma, proporcionando suporte para execução em diferentes sistemas operacionais, incluindo Windows, Linux e macOS. Garante-se, assim, a versatilidade da aplicação, tornando-a acessível a um amplo espectro de usuários. • Tanto o Qt quanto o PyQt têm a vantagem de possuir documentação abrangente e uma comunidade ativa. Essa característica facilita a localização de suporte e recursos online, contribuindo para um desenvolvimento mais eficiente e orientado pela experiência de outros desenvolvedores. • Rica biblioteca oferecida pelo Qt. Com uma ampla variedade de widgets ecompo- nentes gráficos, é possível construir interfaces complexas e interativas de maneira mais eficaz, economizando tempo e esforço no processo de desenvolvimento. • A integração direta com Python permite que os desenvolvedores utilizem todas às funcionalidades do Qt de forma transparente em suas aplicações Python. Essa sinergiaentreàsduas tecnologiasproporcionaumaexperiênciadedesenvolvimento mais fluida e flexível. • O PYQT é open source contribuindo para uma comunidade engajada e colaborativa. 3.2 DIAGRAMA DE CLASSE A versão 0.4.0 do RSPAPERSpossui uma arquitetura modular que simplifica a leitura, organização emanutenção do código. Ela é composta por trêsmódulos principais: o RSPublications, integrado aomódulo da Lib, encarregado de ordenar os artigos conformeo interesse do usuário; o módulo View, responsável pela interface e elementos do programa; e o módulo Controller, encarregado de supervisionar toda a aplicação, conectando as informações do RSPublications e exibindo-as na View. Por se tratar de uma refatoração, abaixo é exibido o modelo da versão 0.3.0 e em seguida as mudanças que foram realizadas na atual versão 0.4.0. A Figura 1 exibe o Capítulo 3. RSPAPER V 0.4.0 24 diagrama de classes do sistema em sua primeira versão, a v. 0.3.0, e na Figura 2 o diagrama de classe atual, v. 0.4.0. Capítulo 3. RSPAPER V 0.4.0 25 Figura 1 – Diagrama de Classes do RSPaper v 0.3.0 Fonte: (Amanda Miquilini Cordibello Marques, Luan Bernardo Dias (2023)) adaptado pelo autor, 2023. Capítulo 3. RSPAPER V 0.4.0 26 Figura 2 – Diagrama de Classes v 0.4.0 Fonte: Elaborado pelo autor, 2023 Fonte: Elaborado pelo autor, 2023. Conforme exibido nos diagramas de classes acima, na última atualização, foi criado o módulo controllers que visa separar da view janelaPrincipal as funções inerentes ao controle da aplicação, deixando-a somente com funções relativas a interface. Foi também realizada a junção do módulo servers_controllers disponibilizado pelo colega Vagner com o RSPaperQt6 (Marques; Dias, 2023), para que se consiga ter acesso aos artigos das fontes Pubmed e Scopus e trazer os resultados da pesquisa para a View. Foram implementados métodos para salvar o estado da pesquisa no formato .rsp e para poder abri-la posteriormente em outro momento. A classe LeitorArquivo foi transferida para o models, assim como também outras modificações foram realizadas nas classes Artigo, DefinirFiltroWindow e JanelaPrincipal a fim de que o projeto mantenha as funcionalidades para o qual foi criado. 27 4 TESTE DE SOFTWARE De acordo com Summerfield (2019) a execução de testes no desenvolvimento de software é uma prática essencial para assegurar a qualidade do produto final. Pormeio dos testes, torna-se possível identificar defeitos, minimizar riscos, reforçar a confiabilidade do software, garantir o atendimento aos requisitos estabelecidos, validar a integração entre os módulos, tudo isso antes mesmo de sua implementação em ambiente de produção. Essa abordagemproativanãoapenascontribui paraadetecçãoprecocedepossíveisproblemas, economizandorecursosfinanceirose temporaiseasatisfaçãodousuário final(Summerfield, 22 abril 2019). Este capítulo visa abordar o teste de regressão, que tem por finalidade garantir que as alterações feitas em um sistema não introduzam novos defeitos ou causem impactos negativos em funcionalidades já existentes. Este tipo de teste é particularmente útil em am- bientesdedesenvolvimentocontínuo,ondenovoscódigossão frequentementeadicionados oumodificações são feitas. Fazemparte do processo de desenvolvimento de um software e foramutilizados nesse trabalho na refatoração doRSPapers (Myers, 8 novembro 2011). Em virtude do crescimento das features do software, se fez necessária a realização de testes maisminuciosos para aferir se as funcionalidades doprograma estavamcompatíveis como esperado. Serão abordados os testes de regressão, com destaque para a apresentação minuciosa do plano de testes, os cenários planejados e executados, bemcomoa exposição conjunta das evidências coletadas, garantindo o correto funcionamento do software. Todos esses elementos serão analisados em conformidade com as entradas e saídas indicadas nos testes, proporcionando uma visão abrangente da validação funcional do RSPapers. 4.1 TESTES FUNCIONAIS Testes funcionais, tambémconhecidos como teste de caixa preta ou teste comporta- mental, concentram-se nos requisitos funcionais do software. Este tipo de teste negligencia a estrutura de controle e focaliza-se nas entradas e saídas do sistema, visando validar o software sob a perspectiva do usuário. Os testes são elaborados exclusivamente combase na interface do sistema. Nesse tipo de teste, incluem-se regras de negócio, requisitos e tudo mais que se caracterize como uma necessidade funcional do software (Molinari, 30 julho 2009). Na Figura 3 é apresentado o modelo de um teste funcional, onde são apresentadas as entradas de dados de teste que são os casos de teste. O sistema é o software a ser testado, que nesse caso o RSPapers e a saída dos resultados de teste são os resultados obtidos da execução dos casos de teste, caso as saídas não sejam iguais as esperadas, é sinal de que o teste detectou um erro com software. Capítulo 4. TESTE DE SOFTWARE 28 Figura 3 – Esquema de Teste de caixa preta Fonte: Sommerville, 2003. A função primordial dos testes funcionais é identificar as operações que o software deve executar, e desenvolver testes capazes de verificar se essas operações estão sendo realizadas conforme os requisitos do usuário. O teste funcional considera o comportamento do software, portanto, técnicas caixa-preta podem ser usadas para derivar condições de teste e casos de teste para a funcionalidade do componente ou sistema (Olsen; Posthuma; Ulrich, 1 julho 2021) . Este processo contribui significativamente para assegurar que o software atenda às expectativas funcionais estabelecidas, proporcionando uma visão abrangente da adequação do sistema às necessidades do usuário. Pressman (2011) indica alguns tipos críterios que podem ser usados para execução de testes funcionais que são (Pressman, 2011): • Particionamento deequivalência : este critério divide oconjuntodedadosdeentrada em classes, distinguindo entre dados válidos e inválidos para testar uma função específicadosoftware.Emcadaclasse,umelementoéselecionadopararepresentar toda a classe. O propósito é gerar menos casos de teste, onde cada elemento de uma classe inválida representa um caso de teste único. • Análise do valor Limite: este critério examina os valores limites, complementando o particionamento de equivalência ao priorizar a seleção de casos de teste centrados nas bordas das classes, em vez de escolher um elemento de cada classe. Capítulo 4. TESTE DE SOFTWARE 29 • Grafo de causa-efeito : este critério examina as combinações das condições de entrada, fundamentando seus testes nas diversas condições possíveis e suas res- postas esperadas. A partir dessa análise, é elaborado um grafo que relaciona as causas e efeitos, dos quais são derivados os casos deteste. 4.1.1 Teste de Regressão De acordo com Pressman (2011) sempre que um novo módulo é acrescentado, o softwaremuda e essa mudança podem causar problemas com funcionalidades que antes estavam funcionando perfeitamente. Por isso, se faz necessária a utilização de teste de regressão, pois ele auxilia na garantia de que as alterações realizadas não interferiram no bom funcionamento do software (Pressman, 2011). No trabalho presente, foi acrescentado o módulo controller que é responsável por interpretarocomportamentodaaplicação.Porissoos testesde regressãoserão focalizados nas funções que poderão ser afetadas pelamodificação. 4.2 PLANO DE TESTE Pressman (2011) descrever o plano de teste como um documento que delineia o conjuntode tarefasde teste, destacandoosartefatos queserãogeradosàmedidaquecada atividade de teste é realizada. Além disso, especifica como os resultados serão avaliados, registrados e potencialmente reutilizados ao longo do processo de teste (Pressman, 2011). Os objetivos fundamentais do plano de teste compreendem: a identificação de infor- mações já existentes e dos componentes de software que demandam testes; a elaboração de uma lista abrangente de requisitos de teste; a descrição detalhada da estratégia de teste adotada; a identificação dos recursos essenciais para a execução dos testes; e a compilação de uma relação dos produtos resultantes das diversas tarefas de teste. O escopo do trabalho delineia um plano de teste que abrange teste de regressão focados nas funçõesdo módulo controller. Ele envolve a execução de uma série de testes específicos para validar diferentes aspectos do sistema. De acordo com (Whittaker, 9 maio 2002) o plano de teste apresentado abaixo é base- ado no padrão IEEE 829 que é reconhecido internacionalmente e estabelece diretrizes para a elaboração de planos de testes, sendo uma referência valiosa no campo da engenharia de software. Plano de Teste de Regressão - IEEE 829 1) Introdução 1.1 Objetivo: validar as funcionalidades do código do model controller através de testes de regressão Capítulo 4. TESTE DE SOFTWARE 30 1.2 Escopo O plano abrange os testes de abertura de resultados anteriores, ordenação de artigos, salvamento de resultados, atualização de progresso, janela de definição de filtro, botões de seleção de artigos, carregamento de arquivos e limpeza de sessão. 1.2 Referências: documentação do RSpaper 2) Recursos 2.1 Pessoal Testador: [Nome] Desenvolvedor: [Nome] 2.2 Ambiente Sistemaoperacional: [SO] Ferramentas de teste: [Ferramentas] Ambiente de execu- ção: [Ambiente] 3) Itens a serem Testados: Controllers.py 4) Critérios de Aceitação: todos os testes devem ser bem-sucedidos, atendendo aos requisitos especificados. 5) Estratégia de Teste 5.1 Abertura de Resultados Anteriores CT. 1 Verificar se a função “abrir_resultados” abre corretamente diferentes tipos de arquivos .rsp. CT. 2 Verificar se a função “abrir_resultados” impede abertura de arquivos que não sejam arquivos .rsp. 5.2 Salvamento de Resultados CT. 3 Executar a função “salvar_resultado” e verificar se o arquivo.rsp é criado corretamente. CT. 4 Confirmar se os dados salvos incluem as informações corretas das listas de artigos 5.3 Atualização deProgresso CT. 5 Testa a função “atualizar_progresso” para garantir a atualização adequada da barra de progresso 5.4 Janela de definição de filtro CT. 6 Verififcar se a função “open_definir_filtro” abre corretamente a janela de definição de filtro CT. 7 Confirmar se a variavel “pesquisa” é atualizada corretamente com os resultados do filtro Capítulo 4. TESTE DE SOFTWARE 31 5.6 Botões de seleção de artigos CT. 8 Testar as funções artigo_selecionado_button, artigo_interesse_button, e ar- tigo_descartado_button para garantir o funcionamento e a atualização correta da variável pesquisa. 6) Cronograma: os testes serão realizados durante [período detempo] 7) Riscos de Contingências Risco: compatibilidade do ambiente deteste. Contingência: Garantir que o ambiente de teste seja configurado conforme as espe- cificações antes da execução dos testes. 8) Resultados esperados Todos os teste bem- sucedidos, sem falhas significativas 9) Aprovações [Nome e Cargo do Aprovador] 4.3 EXECUÇÃO DOS TESTES Nesse trabalho, será apresentada a execução dos testes funcionais de regressão usando como base o plano de testes elaborado anteriormente. Teste 1 : Abertura de Resultados Anteriores CT. 1: Abertura de arquivo.rsp válido. Premissa: Já ter um arquivo.rsp de uma pesquisa anterior. • Passos: 1) Abra o programa RSPaper 2) Clique no botão “Abrir” 3) Selecione um arquivo.rsp • Verificação: – Confirmar se a função abre corretamente o arquivo : Na Fiigura 4 pode ser observado o layout do programa em execução, sem artigos carregados e com a seta do cursor em cima da aba Abrir. Capítulo 4. TESTE DE SOFTWARE 32 Figura 4 – Tela principal Fonte: Elaborado pelo autor, 2023 Na Figura 5 pode ser observado o acesso à pasta resultados através do botão Abrir. Figura 5 – Janela de pesquisa de arquivo Fonte: Elaborado pelo autor, 2023 Na Figura 6 observam-se os testes realizados com os arquivos no formato .rsp. Capítulo 4. TESTE DE SOFTWARE 33 Figura 6 – Pasta de resultados Fonte: Elaborado pelo autor, 2023 Nas Figura 7 e 8 observa-se o layout da janela principal do programa com 2000 artigos carregados, sendo 1000 da fonte Scopus e 1000 da fonte Pubmed. Figura 7 – Tela de resultado Pubmed Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 34 Figura 8 – Tela de resultado Scopus Fonte: Elaborado pelo autor, 2023 CT. 2 : Abertura de arquivo.rsp inválido. • Passos: Premissa: Já ter um arquivo.rsp de uma pesquisa anterior. • 1) Abra o programaRSPaper 2) Clique no botão “Abrir” 3) Selecione uma extensão diferente de ‘rsp • Verificação: – Na janela de pesquisa não terá outra opção além da extensão ‘rsp • Evidências Na Figura 8 pode ser observado o layout do programa em execução, sem artigos carregados e com a seta do cursor em cima da aba Abrir. Capítulo 4. TESTE DE SOFTWARE 35 Na Figura 9 observa-se que não é possível escolher extensão de arquivo diferente de rsp. Figura 9 – Teste 2: Salvamento de Resultados Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 36 Teste 2: Salvamento de Resultados Premissa: Já ter um arquivo.rsp de uma pesquisa anterior. CT. 3: Executar a função “salvar_resultado” e verificar se o arquivo.rsp é criado corretamente CT. 4: Confirmar se os dados salvos incluem as informações corretas das listas de artigos. • Passos: 1) Abra o programa RSPaper 2) Clique no botão “Abrir” 3) Selecione uma extensão de ‘rsp’ 4) Clique no ‘x’ do primeiro artigo 5) Clique em ‘sim’ na janela de alerta 6) Clique em ‘salvar’ 7) Selecione um nome para o arquivo 8) Clique em ‘salvar’ 9) Clique em ‘abrir’ 10) Selecionar o artigo salvo • Verificação: O arquivo que foi salvo deverá constar na lista de resultados e, ao abrir o arquivo, ele deverá constar a quantidade correta de artigos descartados. • Evidências: Na Figura 10 pode ser observado o layout do programa em execução, sem artigos carregados e com a seta do cursor em cima da aba Abrir. Capítulo 4. TESTE DE SOFTWARE 37 Figura 10 – Tela principal Fonte: Elaborado pelo autor, 2023 Figura 11 observa-se a tela para seleção de pesquisa anterior. Figura 11 – Janela de seleção de arquivo Fonte: Elaborado pelo autor, 2023 Nas Figuras 12, 13, 14, 15 e 16 é apresentado o processo de salvamento de um descarte de artigo da pesquisa. Capítulo 4. TESTE DE SOFTWARE 38 Figura 12 – Tela excluindo um artigo da pesquisa Fonte: Elaborado pelo autor, 2023 Figura 13 – Pop up de confirmação de descarte de artigo Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 39 Figura 14 – Tela exibindo alteração no campo de artigos descartados Fonte: Elaborado pelo autor, 2023 Figura 15 – Tela de salvamento da pesquisa atual Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 40 Figura 16 – Tela exibindo que a pesquisa foi salva Fonte: Elaborado pelo autor, 2023 Nas Figuras 17 e 18 é exibida a quantidade de artigos que foram descartados no salvamento anterior. Figura 17 – Tela principal exibindo o campo de artigos descartados Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 41 Figura 18 – Tela dos artigos descartados Fonte: Elaborado pelo autor, 2023 Teste 3 : Atualização de Progresso CT. 5 Barra de progresso bem-sucedida • Passos: 1.1 Abra o programa RSPaper 1.2 Clique no botão “Novo Projeto” 1.3 Digite no campo de pesquisa “covid” 1.4 Clique no botão”Pesquisar” • Verificação: Deverá ser exibida a barra de progresso atualizando conforme o andamento da pesquisa. • Evidências: Na Figura 19 é observada a tela inicial sem nenhum artigo e mouse sobre botão “Novo Projeto” que, ao ser clicado, abre a janela que esta na Figura 20. Capítulo 4. TESTE DE SOFTWARE 42 Figura 19 – Tela inicial sem artigos Fonte: Elaborado pelo autor,2023 Figura 20 – Tela de novo projeto Fonte: Elaborado pelo autor,2023 Na Figura 21, pode ser observada a realização de uma pesquisa na janela “Novo Projeto”. Capítulo 4. TESTE DE SOFTWARE 43 Figura 21 – Tela de novo projeto pesquisando artigos sobre covid Fonte: Elaborado pelo autor, 2023 Na Figura 22 tem-se a barra de progressão sendo preenchida conforme os artigos vão sendo carregados no programa. Figura 22 – Tela inicial com a barra de progresso Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 44 Teste4 : Janela de definições de filtros CT. 6 Abertura da janela de definição de filtro • Passos: 1.1 Abra o programa RSPaper 1.2 Clique no botão “Novo Projeto” 1.3 Clique no botão “Pesquisa avançada” 1.4 Escreva as palavras chaves 1.5 Clique em “Adicionar Palavras-Chaves” • Verificação: As palavras adicionadas deverão ser exibidas no campo de pesquisa da janela do novo projeto. • Evidências: Novamente, na Figura 23 pode ser observada a tela “Novo Projeto” com o mouse sobre o botão pesquisa avançada e na Figura 24 a janela pesquisa avançada aberta. Figura 23 – Tela Novo projeto Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 45 Figura 24 – Tela pesquisa avançada. Fonte: Elaborado pelo autor, 2023 A Figura 25 mostra a tela de novo projeto com a inserção das regras da palavras- chaves. Figura 25 – Tela de novo projeto com a inserção das regras da palavras-chaves Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 46 Teste 5 : Botões de seleção de artigos CT. 7 Botão “Artigos de Interesse” Premissa: Ter pesquisas salvas anteriormente. • Passos: 1 - Abrir uma pesquisa realizada anteriormente 2 - Selecionar 3 artigos de interesse 3 - Clicar no botão “Artigos de interesse” • Verificação: O campo “Artigos de interesse” deverá estar atualizado com 3 artigos e, ao clicar-se no botão, deverá ser exibido a tela de artigos de interesse contendo somente os três artigos. • Evidências: Nas Figuras 26 e 27 é apresentados o processo para abrir uma pesquisa salva anteriormente. Figura 26 – Tela Principal Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 47 Figura 27 – Tela com resultados de pesquisas anteriores. Fonte: Elaborado pelo autor, 2023 As Figuras 28 e 29 apresentam a ação de selecionar um artigo Figura 28 – Tela com o cursor sobre o botão “Like” do artigo. Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 48 Figura 29 – Tela com a solicitação de confirmação para mover artigo selecionado para a aba artigos de interesse. A Figura 30 exibe a janela principal com o campo “Artigos de Interesse”, atualizado, indicando que há 3 artigos de interesses. Figura 30 – Tela com o cursor sobre o botão de artigos de interesse. Fonte: Elaborado pelo autor, 2023 A Figura 31 exibe a tela de artigos de interesse contendo somente os três artigos selecionados. Capítulo 4. TESTE DE SOFTWARE 49 Figura 31 – Tela da aba artigos de interesse. Fonte: Elaborado pelo autor, 2023 CT. 8 Botão “Artigos Descartados” Premissa: Ter pesquisas salvas anteriormente. • Passos: 1 - Abrir uma pesquisa realizada anteriormente 2 - Descartar 3 artigos de interesse 3 - Clicar no botão “Artigos Descartados” • Verificação: O campo “Artigos Descartados” deverá estar atualizado com 3 artigos e, ao clicar no botão, deverá ser exibida a tela de artigos descartados contendo somente os três artigos. • Evidências: Nas Figuras 32 e 33 é apresentados o processo para abrir uma pesquisa salva anteriormente. Capítulo 4. TESTE DE SOFTWARE 50 Figura 32 – Tela principal Fonte: Elaborado pelo autor, 2023 Figura 33 – Tela com seleção de projeto salvo na pasta de resultados. Fonte: Elaborado pelo autor, 2023 As Figuras 34 e 35 apresentam a ação de descartar um artigo. Capítulo 4. TESTE DE SOFTWARE 51 Figura 34 – Tela com cursor em cima do botão de “Deslike”. Fonte: Elaborado pelo autor, 2023 Figura 35 – Tela de confirmação da transferência do artigo para a aba de artigos descartados Fonte: Elaborado pelo autor, 2023 Capítulo 4. TESTE DE SOFTWARE 52 A Figura 36 exibe a janela principal com o campo “Artigos Descartados” atualizado, indicando que há 3 artigos descartados. Figura 36 – Tela com o cursor sobre o botão de artigos descartados. Fonte: Elaborado pelo autor, 2023. A Figura 37 exibe a tela de artigos descartados contendo somente os três artigos selecionados. Figura 37 – Tela somente com os artigos descartados. Capítulo 4. TESTE DE SOFTWARE 53 4.4 ANALISE DOS RESULTADOS Com base nas solicitações de melhorias por parte de (Marques; Dias, 2023), foi implementada a função salvar para poder armazenar o estado de pesquisa em formato .rsp, foi criado o arquivo “Controllers.py” visando separar funções relativas ao controle que estavam na view “JanelaPrincipal.py”. O arquivo “LeitorArquivo.py” foi transferido para o models, alêm da integração com o módulo servers_controlers que foi desenvolvido pelo colegaVagner Luiz Heineck dos Santos e que possibilitou a aquisição de artigos das fontes Scopus e Pubmed. E que após os testes realizados é excelente notar que a reestruturação da classe controller foi bem-sucedida e que todos os testes foram concluídos com êxito. Esses resultadossão indicativosdeumprocessoderefatoraçãoeficiente,ondeasmodificaçõesna estruturadocódigonãoapenasatenderamàsexpectativas,mastambémforamvalidadasde maneiraabrangentepelos testes funcionaisderegressão.Essesresultadosbem-sucedidos trazem alguns pontos positivos e implicações: • Integridade Funcional Preservada: A reestruturação da classe controller não comprometeu a integridade funcional do sistema.A validaçãobem-sucedida indica queasalteraçõesmantiveramoumelhoraramas funcionalidades existentes. • Cobertura Adequada dos Testes: A conclusão bem-sucedida dos testes sugere que a cobertura dos casos de teste foi adequada para capturar os principais cenários de uso da classe controller. Isso é crucial para garantir a robustez do sistema. • Efetividade dos Testes de Regressão: Os testes de regressão, ao serem bem-sucedidos, demonstram a efetividade do conjunto de testes em identificar potenciais regressões introduzidas durante areestruturação. Isso reflete a qualidade dos casos de teste implementados. • Confiança na Refatoração: Osucessodos testesproporcionaumnívelmaiselevadodeconfiançana refatoração realizada. A equipe de desenvolvimento pode sentir-se mais segura de que as alterações não introduziram comportamentos indesejados ou falhas nosistema. • Economia de Recursos: Capítulo 4. TESTE DE SOFTWARE 54 A conclusão bem-sucedida dos testes também implica em economia de recursos, uma vez que não será necessário alocar tempo e esforço significativos para corrigir falhas ou regressões identificadas durante a execução dos testes. • Validação do Processo de Desenvolvimento: O êxito dos testes reflete positivamente no processo de desenvolvimento como um todo. Indica que as práticas de refatoração e os procedimentos de teste foram seguidos adequadamente. • Oportunidade para Melhorias Contínuas: No entanto, é essencial manter a vigilância contínua. Monitorar o desempenho do sistema após a implementação em um ambiente de produção real é uma prática recomen- dada para identificar qualquer impacto não detectado nos testes. Este sucesso serve como uma base sólida para o desenvolvimento futuro, destacando a importância da integração eficaz entre refatoração e testes contínuos. 55 5 CONCLUSÃO Nodecorrerdeste trabalho, foramexploradosos fundamentosda InteraçãoHumano- Computador (IHC), apresentando sua evolução ao longo das décadas e a importância de padrões de qualidade, para garantir sistemas eficazes e centrados no usuário. No contexto da qualidade em IHC, foi enfatizada a importância da usabilidade, acessibilidade e comunicabilidade. Estas não são apenas métricas técnicas, mas também consideram o contexto de uso e a experiência humana, promovendo designs centrados no usuário. Acompreensãoda IHCfoiaprofundadapormeiodas regras fundamentaispropostas por Ben Shneiderman, destacando a consistência, a usabilidade universal, o feedback informativo e outras diretrizes essenciais para o design eficaz de sistemas e interfaces. No capítulo sobre o RSPAPER foi apresentado a criação do módulo de controladores, cujo propósito é separar as funções relacionadas ao controle da aplicação da janela principal da view, mantendo esta última exclusivamente com funções relacionadas à interface. Além disso, foi realizado um processo de integração entre o módulo servers_controllers, fornecidopelo colega Vagner, e o RSPaperQt6. Esse aprimoramento permite o acesso aos artigos das fontes Pubmed e Scopus, possibilitando a exibição dos resultados da pesquisa na View. Foram incorporados métodos para salvar o estado da pesquisa no formato .rsp e para recuperá-lo posteriormente em momentos subsequentes. A classe LeitorArquivo foi transferida para o módulo de modelos, juntamente com outras modificações nas classes Artigo, DefinirFiltroWindow e JanelaPrincipal, visando manter as funcionalidades originais para as quais o projeto foi concebido. Nocapítulode testesdesoftware, esforços foramconcentradosnos testes funcionais e, especificamente, nos testes de regressão.Combaseemprincípios reconhecidos interna- cionalmente, foi elaborado um plano de teste que abrange o módulo controller, garantindo que as alterações implementadas não impactassem negativamente nas funcionalidades existentes. Em síntese, este TCC proporcionou uma análise abrangente da IHC e dos testes de software, destacando a evolução, os princípios fundamentais e a importância da qualidade na interação entre humanos e computadores. Espera-se que este trabalho contribua para o avanço contínuo na criação de sistemas mais eficazes, acessíveis e centrados no usuário. Para futuras melhorias, ficou: • Implementação do botão “exportar”; • Implementação do botão “ordenar”; • Implementação de outras fontes de dados como Merck eDrugbank; • Direcionamento para o link da página do artigo quando este é selecionado na janela do abstract. 56 REFERÊNCIAS BARBOSA, S.; SILVA, B. Interação humano-computador. [S.l.]: Elsevier Brasil, 2010. CHISHOLM, W.; MAY, M. Universal Design for Web Applications: Web Applications That Reach Everyone. O’Reilly Media., 2008. COOPER, A.; REIMANN, R.; CRONIN, D. About Face: The Essentials of Interaction Design. Wiley, 2014. COUTINHO, J.B.; VALLADÃO,L.C.RSPAPERSV.0.3.0:MELHORIADE INTERFACEDE UM SOFTWARE DE RECOMENDAÇÕES PARA ARTIGOS CIENTÍFICOS. 2022. 60 p. Monografia (Tecnologia em Sistemas de Computação) — UNIVERSIDADE FEDERAL FLUMINENSE. DIX, A. et al. Human Computer Interaction, Pearson Education. 2004. DUMAS, J. S.; LORING, B. A. Moderating Usability Tests: Principles and Practices for Interacting. Morgan Kaufmann, 2008. ELSEVIER. O que é a visualização do Scopus? 27 de junho de 2022. Disponível em: https://service:elsevier:com/app/answers/detail/a_id/15534/supporthub/scopus/#tips. Acesso em: 15/12/2023. ENGLEBART, D. C.; WILLIAM, K. E. A Research Center for Augmenting Human Intellect. Proceedingsof theDecember 9-11, 1968, fall joint computer conference, part I., AFIPS Conference Proceedings, 1968. FOLSTAD, A. Chatbots in customer service: An overview. AI & Society, 33(3), 423-440, 2018. FOWLER, M. Patterns of Enterprise Application Architecture. 1. ed. [S.l.]: Addison- Wesley Professional, 5 novembro 2002. 560 p. ISBN -10 : 0321127420 ISBN-13 : 978-0321127426. GAMMA, E. et al.Design Patterns: Elements of ReusableObject-Oriented Software. [S.l.]: Addison-Wesley, 1994. JESSE JAMES GARRET. The Elements of User Experience: User-Centered Design for the Web and Beyond, Second Edition. 2. ed. [S.l.]: Pearson Education, Inc., 2010. ISBN 9780321683687. MARQUES, A. M. C.; DIAS, L. B. RSPAPERS V. 0.3.0: IMPLEMENTAÇÃO DA INTERFACE DE UM SOFTWARE DE RECOMENDAÇÕES PARA ARTIGOS CIENTÍFICOS UTILIZANDO PYQT6. 2023. 57 p. Monografia (Tecnologia em Sistemas de Computação) — UNIVERSIDADE FEDERAL FLUMINENSE. MOLINARI, L. Testes de software: Produzindo sistemas melhores e mais confiáveis. 4. ed. [S.l.]: Editora Érica, 30 julho 2009. 232 p. ISBN -10 : 857194959X ISBN-13 : 978-8571949591. MYERS, G. J. The Art of Software Testing. 3. ed. [S.l.]: Wiley, 8 novembro 2011. 240 p. ISBN -10 : 1118031962 ISBN-13 : 978-1118031964. https://service.elsevier.com/app/answers/detail/a_id/15534/supporthub/scopus/#tips Referências 57 NIELSEN, J. Usability Engineering. Morgan Kaufmann, Academic Press, 1994. NIELSEN, J.; LORANGER, H. Prioritizing WebUsability. Educação Pearson, 2006. NIELSEN, J.; MOLICH, R. Heuristic evaluation of user interfaces. In Proceedings of the SIGCHI conference onHumanFactors inComputing Systems.DOI: 10.1145/97243.97281, 1990. NORMAN, D. A. Living with Complexity. MIT Press, 2010. NORMAN, D. A. The Design of Everyday Things. [S.l.]: Basic Books, 1988. NORMAN, D. A. The Design of Everyday Things. Basic Books, 2013. OLSEN, K.; POSTHUMA, M.; ULRICH, S. Certified Tester Foundation Level (CTFL) Syllabus. [S.l.]: Copyright Notice ©International Software Testing Qualifications Board (hereinafter called ISTQB®), 1 julho 2021. PRECEE et al. Human-Computer Interaction. Addison-Wesley, 1994. PRESSMAN, R. S. Modelos de processo. In: PRESSMAN, R. S. (ed.). Engenharia de software uma abordagem profissional. Ltda, 2011. Sétima Edição, cap. 2. Disponível em: http://paginapessoal:utfpr:edu:br/wolff/disciplinas/et7bh-sistemas-flexiveis-de- manufatura/s11-engenharia-de-software/S11-Cap2-ModelosdeProcesso-Pressman- 2011:pdf/at_download/file. Acesso em: 18 nov. de 2017. PUBMED. PubMed User Guide. 12 dezembro 2023. Disponível em: https: //pubmed:ncbi:nlm:nih:gov/help/. Acesso em: 15/12/2023. ROCHA, H. V.; BARANAUSKAS, M. C. C. Design e avaliação de interfaces humanocomputador.Universidade Estadual deCampinas, UNICAMP,Campinas, 2003. SHARP, H.; ROGERS, Y.; PREECE, J. Interaction Design: Beyond Human-Computer Interaction. Wiley. 2015. SHNEIDERMAN, B. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Pearson, 2016. SHNEIDERMAN, B. Designing the user interface: Strategies for effective human-computer interaction. Addison-Wesley, v. 3 ed, 1998. SHNEIDERMAN, B. Designing the user interface: strategies for effective human-computer interaction. Pearson, p. 480 –, 2005. SUMMERFIELD, I. Engenharia de Software. 10. ed. [S.l.]: Pearson, 22 abril 2019. 768 p. ISBN ISBN-10 : 8543024978 ISBN-13 : 978-8543024974. SUMMERFIELD, M. Rapid GUI Programming with Python and Qt: The Definitive Guide to PyQt Programming (Pearson Open Source Software Development Series). 1. ed. [S.l.]: Pearson, 9 outubro 2015. 648 p. ISBN -10 : 0134393333 ISBN-13 : 978-0134393339. WHITTAKER, J. How to Break Software: A Practical Guide to Testing W/CD. 1. ed. [S.l.]: Pearson, 9 maio 2002. 208 p. ISBN -10 : 0201796198 ISBN-13 : 978-0201796193. http://paginapessoal.utfpr.edu.br/wolff/disciplinas/et7bh-sistemas-flexiveis-de-manufatura/s11-engenharia-de-software/S11%20-%20Cap2%20-%20Modelos%20de%20Processo-%20Pressman-%202011.pdf/at_download/file http://paginapessoal.utfpr.edu.br/wolff/disciplinas/et7bh-sistemas-flexiveis-de-manufatura/s11-engenharia-de-software/S11%20-%20Cap2%20-%20Modelos%20de%20Processo-%20Pressman-%202011.pdf/at_download/file http://paginapessoal.utfpr.edu.br/wolff/disciplinas/et7bh-sistemas-flexiveis-de-manufatura/s11-engenharia-de-software/S11%20-%20Cap2%20-%20Modelos%20de%20Processo-%20Pressman-%202011.pdf/at_download/file https://pubmed.ncbi.nlm.nih.gov/help/ https://pubmed.ncbi.nlm.nih.gov/help/ RESUMO LISTA DE ILUSTRAÇÕES 1INTRODUÇÃO 2FUNDAMENTAÇÃO TEÓRICA 2.1INTERAÇÃO HUMANO COMPUTADOR (IHC) 2.2BREVE HISTÓRICO DA EVOLUÇÃO (IHC) 2.3REGRAS FUNDAMENTAIS PARA O BOM FUNCIONAMENTO DE UM 2.4HEURÍSTICAS DE NIELSEN PARA O BOM FUNCIONAMENTO DE 2.5ANÁLISE E PROJETO DE INTERFACE 3RSPAPER V 0.4.0 3.1BIBLIOTEC PYQT6 3.2DIAGRAMA DE CLASSE 4TESTE DE SOFTWARE 4.1TESTES FUNCIONAIS 4.2PLANO DE TESTE Plano de Teste de Regressão - IEEE 829 4.3EXECUÇÃO DOS TESTES 4.4ANALISE DOS RESULTADOS 5CONCLUSÃO REFERÊNCIAS