Cenários de testes utilizados durante o desenvolvimento da aplicação.
Nessa etapa foi enumerado quais cenários de testes foram selecionados para teste. Para isso foi adotado uma desenvolvimento dinâmico onde o processo de teste já acontece em paralelo com o codificação da aplicação, dado ao número reduzido de membros na equipe. Sendo todos responsáveis neste ciclo pela manutenção as etapas de desenvolvimento, teste das funcionalidades da aplicação e se o objetivo referente as estas etapas estão sendo atendidos.
ATIVIDADES | EQUIPE DE DESENVOLVIMENTO | OBJETIVO |
---|---|---|
Estudo do Projeto | Desenvolve a aplicação | Implementar telas, elementos e navegação da aplicação |
Estudo das Funcionaliades | Executa continua testagem das funcionalidades durante o desenvolvimento | Tornar a aplicação funcional |
Estudo dos Integrações | Executa continua testagem das integrações como o Firebase durante o desenvolvimento | Manter a integridade dos dados |
Estudo das Melhorias | Desenvolve novas soluções para problemas de interface e de design | Deixar a aplicação mais fluída para o usuário |
Foi adotado um modelo DevOps baseado no Design Thinking para que desenvolvimento e os testes da aplicação ocorram em paralelo, isso porque as mudanças no sistema entravam em produção mais rapidamente, o plano foi automatizar todo o pipeline, para atingir o tão desejado “continuous delivery”, o DevOps visou otimizar e se aplicar a cada etapa do processo de desenvolvimento de software, desde o planejamento até a entrega.
[ 1 ] Essas são as etapas da produção da aplicação. O fluxo mostra desde o planejamento até o monitoramento, passando por todas as que fazem parte do cotidiano dos desenvolvedores e operadores.
[ 2 ] Acrescentar agora as ferramentas que nos auxiliam em cada uma dessas fases.
[ 3 ] Adicionaremos as práticas de DevOps que vão otimizar os processos.
[ 4 ] E por baixo dessas práticas, há a base que sustenta toda essa intrincada estrutura: a qualidade.
São: testes unitários, funcionais, de interface gráfica, integrados — todos eles compõem a esfera da qualidade que viabiliza a produção sustentável da aplicação.
Em suma, já no estágio inicial do desenvolvimento foram realizados os Testes Unitários no processo, estes ocorram no "continuous deploy", "integration" e "delivery" da aplicação.
Foram os testes de unidades ou componentes individuais da aplicação: as menores partes testáveis do software. Geralmente, eles tiveram apenas um ou poucos inputs e outputs, nesse caso, inicialmente feito individualmente nas telas da aplicação. Trata-se do primeiro nível de automação de testes e é geralmente feito sob o nível de métodos.
Foram aqueles pelos quais o sistema é testado contra as especificações ou requisitos funcionais. Isso se extende desde o cadastro a ultizacação da aplicação em si. As funções foram testadas por meio da entrada de inputs realizados pela equipe de desenvolvimento e a análise do resultado foi utilizada para garantir que os requisitos sejam satisfatoriamente cumpridos. Esses testes são também chamados de end-to-end.
Graphical User Interface é a interação com o computador por meio de imagens em vez de texto. Esses foram os testes de interface de usuário sendo, então, aqueles que envolvem checar as telas com controles, como menus, botões, ícones etc.
Foram os testes nos quais se validam a integração de módulos ou sistemas, nesses caso, a intração e a persistência dos dados com o Firebase. O objetivo foi de garantir que a interface do sistema esteja de acordo com a especificação e que os sistemas estão se conversando conforme o esperado. São um pouco mais complexos de se executar, uma vez que dependem de se ter mais de um sistema no ar. É o tipo de teste que utilizou das técnicas de Mocking.
Foram aplicados TDD (Test Driven Development) já no inicio do processo de desenvolvimento para correção de bugs. Bug é por natureza um cenário do sistema que falha que ocorreram com frequência. Então, identificado um bug no sistema, foi adotado o seguinte procedimento:
- Analisar a origem do bug;
- Executa o teste da aplicação (compliação), como esperado;
- Corrije o bug;
- Execute o teste e veja se dessa vez passa.
Envolveu o registro do desempenho de usuários típicos, realizando tarefas típicas. Ambiente controlado. Usuários são observados e cronometrados. Os dados são usados para calcular os tempos gastos pelos usuários nas tarefas, bem como para identificar e explicar erros. Satisfação do usuário é avaliada por meio de questionários e entrevistas que são compilados em avaliação POSITIVA e NEGATIVA.
O participantes escolidos para realizar os testes da aplicação foram os integrantes da equipe de desenvolvimento da aplicação assim como participaram tambem membros das familia de cada participante.
As tarefas escolhidas para o teste devem corresponder ao uso esperado e natural do sistema. O número de variáveis que possam gerar resultados inválidos ou mascarar os resultados obtidos deve ser reduzido o mais possível. As sessões foram padronizadas. Os testes pilotos (dry run) das sessões de teste foram realizados para melhorar a clareza da fala do administrador de testes, verificar a viabilidade da execução das tarefas, aprimorar as estimativas de duração das sessões.
Os teste devem corresponder ao uso esperado e natural do sistema:
- O usuário faz seu cadastro na aplicação;
- Atualiza os dados pessoais;
- Realiza a navegação entre as telas e a lista de doações;
- Realiza a inserção de uma nova doação;
- Seleciona uma doação e inicializa a comunicação com outro usuário.
O objetivo era validar que um bug foi corrigido e evita que o mesmo bug ocorra no futuro por conta de outras alterações no código, portanto, adotar DevOps, permitiu acelerara a entrega de novas funcionalidades. Isso permitiu aumenta da qualidade da entrega, aumento da previsibilidade, segurança para refactoring, redução de custos e aumento da satisfação dos desenvolvedores.
O objetivo era validar a usabilidade da aplicação, as tarefas escolhidas para o teste devem corresponder ao uso esperado e natural do sistema:
- Onde o usuário faz seu cadastro na aplicação;
- Atualiza os dados pessoais;
- Realiza a navegação entre as telas e a lista de doações;
- Realiza a inserção de uma nova doação;
- Seleciona uma doação e inicializa a comunicação com outro usuário.
Essa etapa tiveram os testes limitados, pois os objetivos eram de obter resultados claros, concisos e específicos de usabilidade da aplicação por outros usuários que não fossem os envolvidos no desenvolvimento do projeto:
- Avaliação empírica apoia somente em experiências vividas pelos usuários.
- Detectar problemas de usabilidade por meio da observação do usuário interagindo com o sistema da aplicação.
Dentro dessa etapa foram executados testes de usabilidade em dois níveis:
- Resultados obtidos no protótipo de baixa fidelidade (representações provisórias da aplicação).
POSITIVAS | NEGATIVAS |
---|---|
Idéia do projeto | Instabiliade da aplicação e bugs de navegação |
Design agradável | |
Simplicidade da aplicação |
- Resultados obtidos no protótipo de alta fidelidade (representados muitos próximos da versão final da aplicação).
POSITIVAS | NEGATIVAS |
---|---|
Idéia do projeto | Poderia ter a opção de realizar chamada telefônica fácil entre os usuários |
Design agradável | Poderia ter a geolocalização da localização, ou filtrar as doações com base na localização dos usuários |
Simplicidade da aplicação | Usuário gostaria poder pesquisar/filtrar as doações |
Navegação dentro da aplicação | Questão de segurança entre os usuários com relação a entrega da doação |