# SESSION FOUR: CHECKIN | ANÁLISE DE SISTEMAS Author: Igor Lima Charles N°: 18 Grade: INFOA ![](https://i.imgur.com/TpH07ag.jpg) ## O QUE É E O QUE FAZ UM QA? **QA = Quality Assurance** * Garantia de Qualidade * Analista de qualidade de software * O QA é responsável por encontrar e reparar: erros, defeitos e falhas no software **Bugs = falhas de software** **Os bugs podem:** - Prejudicar a experiência do usuário - Vazamento de dados sensíveis - Acidentes fatais **O que causa os bugs?** - Falha humana - Diferença entre ambientes - Falha na concepção do projeto ou na arquitetura - Falha de Testes **Como evitar os bugs?** - Testes - Técnicas de QA - Técnicas e tipos **QA's são guardiões da qualidade** - Garantir que as regras de negocio estão sendo seguidas - Garantir que o software está funcionando conforme o planejado - Achar bugs/brechas nos softwares ou nas regras de negocio - Mostrar para a equipe e empresa o valor dos testes - Garantir que o usuário final não terá problemas no software **Mantras** - A qualidade de software é uma responsabilidade de todos - Não somos inimigos dos desenvolvedores - Testes não atrasam a entrega do software - A qualidade de software é algo inegociável ## TIME ÁGIL - Dev = desenvolvedor do código - Product Owner (Io) = dono de produto - Agile Master (AM) = busca sempre a melhor metodologia e deixar o time cada vez mais ágil, além de resolver conflitos (pessoas, internos, externos) - Coordenador (Coord/Chefinho) = cuida da parte burocrática do capital humano ## FRONT END — BACK END **Front-End:** qualquer tipo de interface gráfica que o usuário consiga enxergar ou interagir, como, por exemplo: tela de login, página inicial do facebook, etc. **Back-End:** refere-se a parte lógica, sustentação, banco de dados, processamentos que está por trás do Front-End. **Exemplificando:** - **Front-End:** parte "bonita" que enxergamos da casa; - **Back-End:** parte estrutural da casa que a mantém em pleno funcionamento. ## TESTES: FRONT—END Devemos sempre testar a nossa feature, o primeiro passo é testar o fluxo principal, ou seja, aquilo que a feature principal foi designada a fazer, caso contrário, se não retornar, é um bug Após realizarmos os testes dos fluxos principais, devemos realizar os dos fluxos alternativos, estes onde a maioria dos bugs dormem. ## TESTES: BACK—END Diferentemente do Front-end, nós não temos acesso diretamente a uma interface, portanto, devemos testar o código em si e as respostas que este retorna, se está salvando no banco de dados, em suma, se está fazendo aquilo que foi designado para fazer. Dentre algumas ferramentas que podemos utilizar está a API da POSTMAN. As ações HTTP que as API's mais utilizam são: * **GET** = é o ato de buscar algo, ou seja, output. * **POST** = é o ato de enviar algo, ou seja, input. * **PUT** = atualizar informações (atualiza todos os dados e informações). * **PATCH** = atualizar informações (atualizar apenas um campo que houve alteração, algo que faz muita diferença na performance, todavia cada um tem sua importância). * **DELETE** = utilizado para deletar a informação que queremos. **Status code** Peça fundamental, exerce a função de nos dizer por meio do código se a requisição foi feita ou não pela API. * **200 = OK**. * **404 - NOT FOUND**. * **500 - INTERNAL SERVER ERROR** ## TEST CASE É uma técnica de prescrita, onde mapeamos os cenários de teste, como estes testes devem ser executados e quais os resultados esperados a partir deles **Como escrevemos-os** Seguimos uma espécie de receita: partindo do *cenário*, sucedida pelo *step* e finalizada pelo *resultado esperado* * **Cenário:** onde escrevemos tudo que de fato será testado na nossa funcionalidade * **Step:** escrevemos as ações que iremos executar para realizar o teste do cenário * **Resultado esperado:** escrevemos o resultado esperado (e satisfatório) que esperamos obter com tais testes **Quando devemos escrevê-lo?** Assim que o escopo do projeto for finalizado ## COMO REPORTAR BUGS & BOARD KANBAN (JIRA) O KanBan serve para ajudar no processo de desenvolvimento de funcionalidades em qualquer área, ajuda o Agile Master a colher diversas métricas, como esta o andamento do desenvolvimento da funcionalidade, ter uma visão da data de entrega da funcionalidade, se existem impedimentos para finalizar a entrega desta, etc. Ele divide-se em colunas verticais e cada individuo (DEV) que for desenvolver algum item, deve colocar o seu nome e arrastar o card até a coluna de desenvolvimento. ***Para reportarmos um bug***, devemos criar uma coluna especifica para isso e arrastar o card referente ao que desenvolvemos e está com defeito. Vale ressaltar que devemos descrever o que está acontecendo, colocando antes de tudo ***{BUG}***. Após isso, devemos arrastar a tarefa {BUG} quanto a que está em pleno funcionamento para a parte que sinaliza que foi feito. Além de tudo, é importante que mantenhamos o Jira **sempre atualizado**. ## TIPOS DE TESTES Existem dois tipos de teste e cada um é aplicado por alguém especifico. * **CAIXA BRANCA** = Avaliar o código do software, onde verificamos se ele está cumprindo com aquilo que foi proposto * **CAIXA PRETA** = Avaliamos o software em si, sem acesso a ele. * **Teste Funcional** = teste do tipo caixa preta e aplicado por QA's. Nele, é validado o software, critérios de aceite da equipe de produtos e é procurado bugs de modo funcional, e é testado todas as camadas do código. * **Teste Unitário** = do tipo caixa branca e é aplicado pelos desenvolvedores. Nesse tipo de teste, com a ajuda de frameworks e MOS testa a menor parte possível do software validando entrada e saíde de dados por ele. Esse tipo de teste é de extrema essência para a validação do software. * **Teste Componente/ Instrumentado/ UI** = Melhorar a forma de desenvolver o código * **Teste Integrando** = Pode ser tanto de caixa branca quanto caixa preta, testa todas integrações, partes e API's do software de back-end quanto front-end e testá-las para saber se ambos estão funcionando perfeitamente e deste modo, valida. * **Teste Regressivo** = Também é um teste tanto de caixa preta quanto caixa branca, geralmente é aplicado por QA's e também, desenvolvedores. É nada mais nada menos que testar novamente todas as partes que já foram testadas e que tudo esteja funcionando perfeitamente. É nesse teste que implementamos atualizações e funcionalidades. * **Teste de Carga && Teste de Stress (Teste de Perfomance)** = Não é um teste funcional, ele não valida as funcionalidades em si, são aplicados normalmente por equipes maiores, como analistas de infraestruturas, etc. No teste de estresse é voltado, por exemplo, para avaliar a quantidade de máquinas simultâneas conseguem acessar ao servidor. E o teste de carga, verificar a quantidade de usuários simultâneos conseguem utilizar o software. * **Teste de Usabilidade** = é aplicado pelos PIO's e pelos UX's, geralmente é realizado utilziando entrevistando o usuário, se ele consegue usar o software, quais dificuldades ou problemas ele está tendo, etc. ## O QUE É METODOLOGIA ÁGIL? É uma série de conceitos, práticas e ferramentas que ajudam na gestão dos projetos. É nome que se dá a um conjunto de metodologias que visam facilitar, por assim dizer, o desenvolvimento de algo.
{"metaMigratedAt":"2023-06-16T02:03:15.701Z","metaMigratedFrom":"Content","title":"SESSION FOUR: CHECKIN | ANÁLISE DE SISTEMAS","breaks":true,"contributors":"[{\"id\":\"80bf1c37-2722-44c2-96a3-490c9bac8b2e\",\"add\":7527,\"del\":216}]"}
Expand menu