SUSE Linux Enterprise Live Patching
30 de março de 2021Teste de Sanidade (Sanity Tests)
13 de abril de 2021De acordo com a descoberta do desenvolvimento ágil, o teste é reconhecido não como uma fase separada, mas uma parte integrante do desenvolvimento de software com a codificação. A abordagem de “equipe inteira” está sendo usada pela equipe Ágil para “associar a qualidade” ao produto de software. Equipe ágil contendo os Testadores, que emprestam sua experiência em obter exemplos de comportamento desejado dos clientes. Eles colaboram com a equipe de desenvolvimento que orienta a codificação, para transformá-los em especificações executáveis. O Teste e a Codificação estão sendo realizados de forma incremental e iterativa, até que forneça valor suficiente para liberar para produção cada construção de recurso feita. Abrange diferentes tipos de teste. Os quadrantes fornecem uma taxonomia útil que ajuda as equipes a identificar e planejar a necessidade de teste.
Introdução:
As metodologias de ciclo de vida de desenvolvimento de software seguem modelos sequenciais ou são iterativas por natureza, como o modelo em cascata. Com o teste simples, o desenvolvimento de software é a tarefa mais complexa, os modelos sequenciais não podem se adaptar com eficiência às mudanças que ocorrem durante o desenvolvimento. Esta desvantagem foi removida com o processo de teste ágil que é baseado nas metodologias iterativas e supera as desvantagens dos modelos sequenciais.
A principal diferença entre esses dois métodos, teste de software Agile e metodologias de teste tradicionais são as seguintes:
• Na maioria das indústrias de software, a equipe de desenvolvimento refere-se à abordagem incremental em vez de sequencial. Métodos incrementais e de ciclo rápido são usados no desenvolvimento ágil. Isso leva lentamente ao método incremental, mas também à geração de liberação na funcionalidade anterior. O teste completo neste processo garante que todos os problemas sejam tratados nas próximas iterações;
• Mais estresse é colocado nas pessoas e nas interações, em vez de nos processos e ferramentas. Testadores, desenvolvedores e clientes se coordenam de forma consistente. Essa coordenação descreve a consciência dos requisitos para o testador para os recursos que estão sendo desenvolvidos durante uma iteração específica e pode isolar a discrepância entre o sistema e seus requisitos;
• Um software ativo é preferível para inspirar as documentações detalhadas. A metodologia ágil trabalha no fato de ponto a ponto, ou seja, comunicação face a face e colaborações com equipes que trabalham em pares. Baseando-se no fato de uma ampla comunicação, com clientes e membros da equipe, o projeto não exige um documento de requisitos abrangente;
• A colaboração do cliente é mais considerada em comparação com a negociação do contrato. O envolvimento do cliente é uma parte importante do processo Agile. Os desenvolvedores imediatamente buscam sugestões de requisitos do cliente para melhor esclarecimento;
• Responder às mudanças é mais importante do que um planejamento extensivo. A programação extrema enfatiza a mudança do plano para acomodar quaisquer mudanças nas premissas, em vez de seguir vigorosamente o plano original.
Processo de teste de software:
O Teste de Software é um processo de verificação e validação do software, é um processo para garantir a execução de Software / aplicativos livres de erros e bugs.
Um modelo ágil projetado para atender todos os requisitos técnicos e de negócios. Este modelo pode ser implementado com as mesmas características, quando implementado funcionará conforme o esperado. O Teste de Software identifica defeitos, erros e falhas no programa / Software. Esses defeitos, erros e falhas devem ser corrigidos durante o processo de teste de software. Quando algumas alterações são aplicadas no programa, novamente este Software deve ser testado novamente e novamente até que todos os defeitos sejam encontrados e corrigidos no Programa / Software.
As atividades de teste são controladas e relatadas no processo de teste e no status do software em teste. Durante o planejamento de teste, defeitos importantes são realizados por meio da revisão dos requisitos e documentos de design. A equipe de teste remove esses defeitos, mas não pode melhorar a qualidade do software. Todas as melhorias devem ser documentadas durante a fase de codificação no desenvolvimento do Software de forma que, antes de testar, todas as melhorias sejam incorporadas ao sistema. A arquitetura de software e os designers projetam um bom modelo se receberem todas as melhorias em um prazo definido. O teste antes da codificação pode melhorar o design do Software / Aplicativo.
O Agile Testing é um tipo de prática de teste de software usado mais do que o modelo em cascata. O teste Agile segue os estatutos do manifesto Agile, também tratando o desenvolvedor de software como um novato para resolver os problemas de forma adequada.
O teste ágil é aquele que envolve o teste do lado do cliente em um estágio inicial. O teste de estágio inicial também é chamado de teste de unidade.
Agile trabalha no método incremental. Portanto, no método incremental, o software em desenvolvimento deve ser testado em cada estágio, o que significa que, após algum desenvolvimento, ele foi testado com os clientes e esse tipo de teste também é feito usando o teste de aceitação automatizado. O teste de aceitação automatizado minimiza o trabalho manual. No processo ágil, o teste manual para todo o Software não funcionará. Fazer o teste manual leva ao software com bugs no teste ágil, portanto, não é possível testar todo o Software construído manualmente.
A metodologia ágil, uma estrutura conceitual para o desenvolvimento de software, a interação face a face com o cliente promove o método de desenvolvimento iterativo ao longo do ciclo de vida do projeto.
Não há necessidade de documentos escritos no método ágil, pois ele se concentra na comunicação um a um em vez de documentações escritas. A equipe ágil pode fazer poucos documentos escritos em comparação com o modelo em cascata ou em V. Os métodos ágeis enfatizam o funcionamento do software como a principal medida de progresso. Frequentemente, as equipes ágeis trabalham em um único escritório aberto com a equipe de desenvolvedores e clientes. A equipe Agile inclui testadores, arquiteturas de software, desenvolvedores de software, testadores e gerentes (baixo e alto nível). O resultado é uma crítica aos métodos ágeis por serem indisciplinados.
Processo ágil unificado:
Scott Amber desenvolveu uma versão simplificada do IBM Rational Unified Process (RUP) chamada Agile Unified Process (AUP). A abordagem ágil fornece um método simples, muito fácil e de bom entendimento para desenvolver o Software / aplicativos que são verdadeiros com o RUP. O Agile Unified Process (AUP) inclui o desenvolvimento orientado a testes (TDD), Agile Change Management (ACM), Agile Modeling e refatoração de banco de dados para aumentar a produtividade.
Ao contrário do RUP, o AUP possui apenas sete disciplinas. Modelo. Para entender o processo de qualquer organização e equipe de desenvolvimento, trata-se do domínio do problema encontrado durante o estudo do processo de negócios. A equipe de desenvolvimento também propõe uma solução para resolver o problema. Portanto, a solução proposta assume uma forma de modelo para o problema.
• Implementação. Este modelo se transforma em código executável pela equipe de desenvolvimento e realiza um teste muito básico chamado teste de unidade;
• Teste. Uma verificação de que o sistema funciona de acordo com o projeto é chamada de validação e verifica se todos os requisitos são atendidos e realiza uma avaliação objetiva para garantir a qualidade do Software / programa;
• Desdobramento, desenvolvimento. Para verificar se ele está pronto para entrega e disponibilizá-lo aos usuários finais;
• Gerenciamento de configurações. Os artefatos do projeto são gerenciados e acessados. As versões do artefato são rastreadas ao longo do tempo e também controladas e gerenciadas pela equipe;
• Gerenciamento de projetos. Dirige todas as atividades dos projetos e também gerencia riscos, direcionando pessoas, coordenando também com as pessoas de fora do projeto para garantir que o projeto seja desenvolvido no prazo e dentro do orçamento;
• Ambiente. Para o desenvolvimento do projeto / programa todas as diretrizes devem estar disponíveis com todas as ferramentas necessárias, Hardware e Software.
Conclusão:
Os modelos Waterfall, V-Model e Agile são escolhidos para o desenvolvimento do software. Cada um tem suas próprias vantagens 6 e desvantagens, dependendo do modelo da organização a ser escolhido.
Se o cliente muda seus requisitos com frequência e é solicitado a entregar o Software em um curto período de tempo com recursos qualificados, então é benéfico escolher o modelo de teste baseado em Agile, enquanto por outro lado o modelo em cascata pode ser usado quando o requisito é claro, os projetos são grandes e os desenvolvedores têm tempo suficiente. Se os projetos forem muito grandes, os requisitos mudam e a validação adequada é necessária em cada fase, então, nesse caso, o testador usa “V-Model”.
Mas, podemos dizer que devido aos prazos apertados e às altas expectativas dos clientes, agora a Metodologia de Teste Ágil de um dia é a melhor metodologia que a indústria deve adotar para entregar os projetos.
Referencias:
[I] K. Beck, Embracing chan ge with Extreme Programming. IEEE Computer, Vol. 32, I ssue 10 October 1999.
[2] J. Stapleton, Dynamic systems development method -The method in practice. Addison W esley 1997
[3] K. Beck, Extreme Progra mming explained: Embrace chan ge. Reading, M ass., Addison-Wesley, Novl6, 2004
[4] L. Rising and N. S. Janoff, The S crum software developme nt process for s mall teams, IEEE Software, Issue 17, pp. 26-32, 2000
[5] K. Schwaber and M. Beedle, Agile Software Development with Scrum, U pper Saddle River, NJ, Prentice – Hall, 1st Edition, Oct 2001
Este texto é uma adaptação livre do artigo publicado em:
https://www.researchgate.net/publication/315914633_Agile_approach_for_Software_Testing_process