Compartilhar via


ALM – Testes – Abordagens de Testes de Software

Introdução

Atualmente em desenvolvimento de software, possuimos diversas abordagens de processos, conforme a realidade da empresa, funcionários e necessidades. Sendo que cada modelo se adequa ao negócio, ficando a cargo dos envolvidos entenderem se há necessidade de mudanças ou não, conforme seus projetos, planejamentos e cenários.

Nesse artigo são destacados algumas das diversas abordagens, na parte de Testes de Software, para conhecermos e entendermos um pouco mais de cada uma. Cada abordagem aqui possui seu valor e objetivo, conforme a realidade da empresa que a utiliza.

Abordagens de Testes

Testes Analíticos

Características

- Testes são uma atividade técnica e rigorosa;

- Testes são um branch da ciência da computação e matemática;

- Software é um artefato lógico;

- Teste é uma ciência baseada em Computação e Matemática: Objetivo, rigoroso e compreensivo;

- Técnicas de testes devem ser objetivas: apenas uma resposta certa;

- Teste é uma atividade técnica;

Empresas que utilizam

- Indústrias de Telecom;

- Sistemas Críticos (Aviões, Navios, Medicina);

Instituições Divulgadoras

- Academias

Técnicas de Testes

- Testes de Caixa Branca;

- Testes estruturais;

- Testes de cobertura de código.

Testes Convencionais

Características

- Testes gerenciados: Previsível, repetível, planejado;

- Testes valida o produto;

- Testes medem o progresso do desenvolvimento;

Empresas que utilizam

- Enterprise IT;

- Desenvolvimento para Governo.

Instituições Divulgadoras

- IEEE Standards Boards

- Instituições certificadoras de Teste: ISTQB, ALATS, entre outras.

Técnicas de Testes

- Matriz de Rastreabilidade (Identifica se todos os requisitos foram testados);

- V-Model

http://qualidadeeti.files.wordpress.com/2014/12/image_thumb81.png?w=244&h=174

Testes Baseados em Quality Assurance

Características

- Disciplinado;

- Testes determina se o processo de desenvolvimento está sendo seguido;

- Cada bug é um problema de processo;

- Testadores devem proteger os usuários dos software ruins;

- O software não está pronto até que o QA (Controle de Qualidade de Software) concorde;

- Testes é o ponto de partida para a Melhoria do Processo;

Empresas que utilizam

- Organizações sob leis e obrigatoriedades

Instituições Divulgadoras

- American Society for Quality (ASQ);

- Software Engineering Institute (CMM);

- International Standards Organization (ISO);

Técnicas de Testes

- Testes baseados em processos;

- Suites de Testes definidas conforme as normas instituidas;

- Validação por um time de QA que identifica se os processos foram finalizados;

Testes Dirigidos ao Contexto

Características

- Teste deve encontrar bugs;

- Teste provê informações para o projeto;

- Teste é uma atividade mental que requer habilidade;

- Teste é multidisciplinar;

- O valor de qualquer prática depende de seu contexto;

- . Existem boas práticas em determinado contexto, mas não existem melhores práticas;

- As pessoas, trabalhando em conjunto, são a parte mais importante do contexto de qualquer projeto;

- Projetos se desdobram ao longo do tempo de maneiras normalmente imprevisíveis;

- O produto é uma solução. Se o problema não foi resolvido, então o produto não funciona;

- O bom teste de software é um processo intelectual desafiador;

- Somente por meio de julgamento e habilidade, realizados cooperativamente ao longo de todo projeto, somos capazes de fazer as coisas certas nos momentos certos para testar nossos produtos de forma efetiva.

Empresas que utilizam

- Software Comerciais;

- Market-driven Software (Software dirigido ao Mercado)

Instituições Divulgadoras

- LAWST Workshops;

- Los Altos Workshop on Software Testing;

- StarEast/StarWest

Técnicas de Testes

- Testes Exploratórios (Exploratory Testing);

- Execução e Design feitos de forma concorrente;

- Aprendizado Rápido (Rapid learning);

- Execução baseada em Missão e Estratégias;

- Difícil Gerenciamento;

- Preparado para mudanças. Adapta o planejamento dos testes baseado nos resultados;

- Efetividade das estratégias são verificadas colocando-as em prática;

- Pesquisas de testes requerem estudos empíricos e psicológicos

- Foco na habilidade ao invés da prática/método;

Testes Ágeis

Características

- Testes mostram que uma história está completa;

- Testes devem ser automatizados;

- Desenvolvedores devem fornecer frameworks para automação dos testes

Empresas que utilizam

- Consultorias

Instituições Divulgadoras

- Agile Workshops

Técnicas de Testes

- Testes Unitários;

- Test-Driven Development (TDD);

Ferramentas para Testes de Software

A Microsoft disponibiliza atualmente uma solução completa para auxiliar os times de testes das empresas, independentemente da abordagem utilizada. O Visual Studio ALM, permite que suas soluções se adequem a necessidade do cliente, não sendo necessário o cliente se adaptar a ferramenta.

Desde Templates de Processos prontos como SCRUM, CMMI, até a possibilidade de customizações fáceis nos processos para atender o fluxo de trabalho do cliente.

Destaque para as ferramentas de Testes de Software como:

Microsoft Test Manager: Solução de gerenciamento de Testes de Software, com gestão de Casos de Testes, Record & Play, coleta automática de informação de ambiente, entre outras características.

Microsoft Azure: O Azure integra-se com as tecnologias locais da Microsoft, de modo que você pode tirar vantagem completa do seu conhecimento, habilidades e investimentos existentes da Microsoft, e usar um desenvolvimento comum e uma estrutura de teste que abrange desde o datacenter até a nuvem. Tudo no Azure pode ser totalmente automatizado, então você pode realizar spin up e desmontar ambientes virtuais com um pressionamento de tecla. E graças à funcionalidade de escala do Azure, é possível fornecer capacidade adicional sob demanda e com custo reduzido, para projetos de curto prazo e iniciativas com prazo maior

App Insights: É uma ferramenta de análise de aplicações Web e Móveis que tem como objetivo ajudar o desenvolvedor a monitorar suas aplicações, independente de onde estejam instaladas, como celulares, tablets, televisores, servidores, em qualquer parte do mundo. Com essa poderosa ferramenta, você poderá avaliar como seu aplicativo está se comportando nos tablets espalhados pelo mundo, quais as funcionalidades mais usadas, quais as funcionalidades menos usadas, quais os navegadores mais utilizados para acessarem sua aplicação, entre outros recursos.