domingo, 20 de dezembro de 2009

Overview tipos de técnicas de testes

A figura abaixo mostra a taxonomia utilizada para estudo da CTAL.



A primeira distinção é entre teste estático e teste dinâmico. Testes estáticos compreendem os testes que não envolvem a execução de testes (rodar) e os testes dinâmicos são aqueles relacionados à execução dos testes.

Testes estáticos são as revisões e a análise estática. As revisões são realizadas por pessoas e análise estática é realizada através de ferramentas.

Testes dinâmicos são 5:

Caixa preta: é o teste baseado em especificações (ou comportamentos). O teste é realizado em cima da idéia de como o sistema deveria se comportar. Esses testes são divididos ainda em funcionais e não funcionais, seguindo a norma ISO 9126. Uma maneira de distingui-los é que os testes funcionais dizem o que o sistema deve fazer e os não funcionais dizem como.

Caixa branca: também chamados de testes estruturais. São realizados emcima de como o programa foi construido.

Baseado em experiência: baseado nas habilidades, intuições e experiências anteriores do testador.

Análise dinâmica: análise da aplicação enquanto ela está rodando através de ferramentas.

Baseado em defeitos: utilização do entendimento de defeitos como base para o projeto de testes.

Ao contrário do que pode sugerir a figura, esses testes não são exclusivos. É possível (e comum) utilizar mais de uma dessas técnicas. É necessário selecionar que tipos de teste se aplicam na sua estratégia e em que nível eles serão aplicados.

Os ATA e ATTA que aparecem nessa figura referem-se à especilidade do ISTQB em que a técnica é coberta. Os ATA são cobertos na prova de analista e os ATTA na prova de analista tecnico. Essa abordagem não necessariamente é a aplicada na sua empresa, é apenas uma divisão para estudos.

Nos próximos posts cobrirei algumas das técnicas desses tipos de teste.

Fonte: Advanced Software Testing Vol 1. - Rex Black


Ver também:
Partição por Equivalência
Análise por Valor Limite

A profissionalização do teste

(Artigo escrito para o GUTS-RS, publicado pela SUCESU-RS)

Quando o teste de software despontou, era apenas uma parte da Engenharia de Software. Após o UP (Unified Process), a disciplina começou a ter mais força e alcançar um lugar próprio na TI. Ainda hoje o conhecimento sólido dessa disciplina é restrito a poucos profissionais, e muitas vezes é tida como uma disciplina que não requer muito conhecimento técnico, ou que qualquer profissional sem um bom respaldo acadêmico e/ou treinamento adequado pode executar com maestria.

Poucas faculdades incluem no seu currículo uma disciplina dedicada a Teste de Software. Normalmente, quando é abordada, não compreende mais do que algumas aulas da disciplina de Engenharia de Software.

Esse cenário aos poucos vem mudando. Com a crescente demanda do mercado por profissionais que desejam seguir essa carreira, algumas faculdades têm incluído a disciplina no seu currículo e também têm surgido cursos de pós graduação na área. Essas iniciativas dão a base acadêmica que o profissional deveria ter para descobrir, ganhar interesse e ingressar na área. Até então, esse papel estava sendo desempenhado apenas por cursos de extensão/capacitação.

Antes mesmo dessas iniciativas acadêmicas, assim como em outras áreas de TI, surgiu a necessidade de criar uma maneira de atestar o conhecimento do profissional em Teste de Software. Começaram a surgir então as certificações. Todas elas com o objetivo de criar uma linguagem única e um guia de boas práticas a ser seguido pelos profissionais.

Algumas das instituições internacionais mais conhecidas que aplicam certificações em Teste de Software são ISTQB (2002) / BSTQB (2006), ISEB (~1980), QAI (1980), IIST (1966).

No Brasil, essa iniciativa veio por parte da ALATS (2002) que criou a CBTS (Certificação Brasileira de Teste de Software) após analisar as certificações internacionais e criar o seu próprio padrão.

Cada instituição possui a sua própria base de conhecimento para a aplicação desses exames. Em relação a processos, são bastante similares, mas podem gerar dúvidas quanto a algumas terminologias que nem sempre representam a mesma coisa.

Além das certificações, iniciativas de grupos de profissionais estão se tornando cada vez mais populares no Brasil. Há vários grandes grupos de discussão na web e grupos que promovem encontros com palestras.

Com o apoio da SUCESU-RS foi criado o Grupo de Usuários de Teste de Software do Rio Grande do Sul, integrando o time de GUs da instituição. Hoje o grupo conta com 213 usuários e encontros constantes que promovem o networking na área e a disseminação de conhecimento.

Esse tipo de iniciativa agrega bastante, ajundando a difundir a área e aprimorando o conhecimento dos profissionais de Teste de Software e de outras áreas que interagem com eles.

Há várias empresas no Brasil que valorizam o profissional de Teste de Software e entendem o seu papel no ciclo de desenvolvimento, mas ainda é muito pouco. A grande maioria ainda não entende o papel do profissional de teste, não tem um processo de contratação adequado para esses profissionais e até mesmo se negam a contratar um profissional especializado devido ao seu valor, para contratar pessoas sem experiência, sem treinamento, sem preparo algum.

Teste de Software é uma área que vem crescendo mediante essas iniciativas acadêmicas e profissionais, entretanto ainda é uma área que sofre preconceito, muitas vezes é tida como uma área que não demanda conhecimento técnico e que inclusive empresas que buscam profissionais de Teste de Software, não sabem exatamente o que estão buscando. O profissional de teste, na verdade, é um agente de mudanças, trabalhando na prevenção de defeitos e colaborando para a melhoria contínua das equipes e processos.

Essa é uma realidade que vem sendo transformada aos poucos e que conta com a sede de conhecimento de cada um para crescer ainda mais e firmar o seu lugar no ciclo de desenvolvimento de software.




Fontes:
Associação Latino-Americana de Testes
Brazilian Software Testing Qualification Board
International Software Testing Qualifications Board
Quality Assurance Institute Brasil
Information Systems Examination Board
International Institute for Software Testing