Fundamentos do Teste de Software

28 09 2009

Há algum tempo venho pensando em escrever algo mais fundamentado aqui no blog. Hoje parei pra pensar, arrumei um tempo e resolvi falar sobre o capítulo 1 do Foundation Level Syllabus, material base pra certificação do ISTQB e BSTQB. É quase um resumão, às vezes com algumas considerações minhas imbutidas conforme minha experiência na área.

Este capítulo fala sobre os Fundamentos do Teste de Software.

Erro ao tentar finalizar uma transação importante!

Erro ao tentar finalizar uma transação importante!

Muitas pessoas devem se perguntar por que se faz necessário testes em software. Ora, devemos levar em consideração o contexto de cada software em desenvolvimento. Atualmente todos temos acesso a diferentes softwares diariamente. Em menor ou maior grau de dificuldade de uso, como por exemplo, aplicações bancárias, sejam elas acessadas pela web, celular ou caixa eletrônico. Você poderia imaginar o desastre se essas aplicações não fossem muito bem testadas? Você se sentiria seguro em realizar uma transação pela web? Bom, eu com certeza não. Outra aplicação que nos serve como exemplo, é o nosso querido Gmail. Bom, eu não vivo mais sem ele, e diferentemente do sistema bancário, eu não me preocupo muito em perder informações ali contidas (minha opinião tá, tem gente que tem muita coisa armazenada ali!!). Uma outra aplicação que considero importante de ser testada, são os sistemas de lojas e supermercados. Até hoje eu tenho o hábito de verificar os valores dos itens que estou comprando, porque não me sinto segura no sistema de barramento x valor do produto. Enfim, ema ema ema, cada um com seus problemas!! Esses exemplos servem pra mostrar que softwares que não funcionam corretamente podem trazer diversos prejuízos e grandes impactos para as pessoas e empresas que os utilizam.

Algumas causas dos problemas de software podem ser causadas por erros (enganos) humanos. O erro gera um defeito (bug) no software. E esse bug, gera uma falha no sistema. É atrás dessa falha que os testadores correm atrás (imaginei uma corrida de cachorros, onde eles correm em busca de um coelho, ou A recompensa).

Testadores atrás de um bug

Testadores atrás de um bug

Falhas podem ocorrer também, por eventos externos ao software, como quedas de luz, radiação, calor, poluição, campos magnéticos ou eletrônicos. Conheço um caso onde os servidores ficavam na mesma sala com 8 desenvolvedores, onde o ar condicionado no verão mal dava pra refrescar as pessoas. A temperatura da sala girava em torno dos 24 graus diariamente. Resultado disso: queda frequente do sistema, devido ao aquecimento das máquinas no ambiente.

Os testes têm funções específicas em cada fase do desenvolvimento e manutenção do software, e servem para reduzir os riscos de ocorrências de problemas no ambiente operacional, quando os defeitos encontrados são corrigidos em fase anterior a implantação na produção.

Qualidade em software implica em testes em todas as fases do desenvolvimento, desde o planejamento, através de testes na documentação, até a fase final do aceite do cliente. O teste ajuda a medir a qualidade em termos de defeitos encontrados por características e requisitos funcionais ou não funcionais do sistema. Os resultados da execução dos testes bem projetados pode representar a confiabilidade do software, quando poucos são os erros encontrados ou quando os mesmos são encontrados e corrigidos de forma efetiva.

Testes finalizados!

Testes finalizados!

E a pergunta que não quer calar é: quando devemos parar com os testes?

Bom, não se tem uma resposta padrão pra essa pergunta, porque tudo depende de cada projeto. Diversos são os fatores que podem definir quando parar-se de testar, como por exemplo: prazo, orçamento e riscos. É nesse sentido que os testes devem trazer informações suficientes para a tomada de decisão pelos stakeholders. Seus interesses são fundamentados nas limitações do projeto e, acredito eu, no grau de maturidade e qualidade do software desenvolvido. Para isso é que temos as versões beta, não é mesmo?

Anúncios




SCRUM ou CMMI? Temos mesmo que escolher?

8 09 2009

Recebi este link para uma ótima palestra sobre Scrum e CMMI, ministrada pelo professor Dr. Marcello Thirry, para os alunos da Unisul Virtual.

Vale a pena ver e rever várias vezes!

http://unisul.streambrasil.com/ONDEMAND-UV/unisul_sv_030909.html

Abraços

Fernanda





Qualidade do software

19 05 2009

Dando continuidade aos posts dos estagiários, agora é a vez do Marcello Caon (vulgo DJ Jogadi Apaixonado). Ele possui pouco tempo de experiência na área, mas já mostra que captou a essência da importância dos testes dentro da empresa.

“Uma área essencial: A qualidade do software é um dos tópicos mais valorizados pelo cliente na escolha de uma empresa para desenvolver seu sistema. O cliente quer resultado, não adianta ter um projeto pronto, com telas bem elaboradas, botões personalizados e menus interativos se nada disso funcionar direito! Não adianta ter um software assim se ele aceitar “ç” no campo data, ou aceitar um cadastro de usuário sem o campo “nome” estar preenchido, ou ainda uma visualização de notícia que exiba nomes de variáveis ao invés de seu conteúdo. E esses erros, acredite ou não, são comuns no campo da programação. E para captar esses erros que podem gerar desconforto na hora da apresentação do software para o cliente, surge o setor de “teste de software”.

Cada vez mais as empresas, sejam elas pequenas, médias ou grandes, observam o constante crescimento dos testes de software, e acabam se adaptando a esta nova “mania” que acaba se tornando essencial em algumas empresas, pois pode prevenir gastos enormes com manutenções futuras, de um simples bug que poderia ter sido detectado ainda na fase de programação do projeto se a empresa tivesse pensado em ter uma equipe de testes desde o início do mesmo.

Os benefícios dos testes de software não são observados apenas pela empresa, pois primando pela qualidade do software, além de evitar gastos com manutenções desnecessárias, o cliente pode ter em suas mãos um software mais estável e pouco suscetível a erros.

O ganho de agilidade durante a elaboração de um projeto também é grande, pois libera os programadores dos testes, que podem ser realizados por uma equipe especializada, que encontra erros, falhas e vícios de programação enquanto os programadores continuam no desenvolvimento do projeto.

Os benefícios trazidos por uma boa equipe de testes, com sua própria estrutura, seus próprios casos de teste, sua própria “independência” são incontáveis. É notório que as empresas que se adequam a esta “novidade” estão muito satisfeitas com os resultados e investem cada vez mais neste setor, primando sempre pela qualidade de seus softwares.”

O mais legal disso tudo é ver como esses meninos estão aprendendo a importância da qualidade no desenvolvimento de um produto. Nem todos seguirão a trilha de encontrar erros, acredito que muitos tem o dom de programar mesmo, mas serão desenvolvedores muito melhores, pelo simples fato de saberem que devem fazer o seu melhor a todo instante. Tô ficando orgulhosa 🙂





Motivação do tester

11 05 2009

Começo aqui uma série de posts vindos dos meus queridos estagiários.

Cada um é livre pra falar sobre o que quizer, claro, respeitando a área em que atuamos. Até porque se eu deixar livre, vai ter um Jogadi Apaixonado publicando musiquinhas cuti-cuti por aqui, não é mesmo DJ Caonzinho? 😛

Brincadeiras a parte, aqui vai o primeiro texto, do estagiário sênior:  Márcio Santos.

“Uma das maiores alegrias de um tester é encontrar um bug. É um prazer humano apontar o erro de outra pessoa. Mas como se manter motivado quando não se acha mais os erros?

O tester pode ficar horas procurando e não achar nada, muito comum em final de projeto quando já foram encontrados uma boa parte dos bugs. Às vezes a empolgação de quando o tester encontra um bug nessa reta final pode fazer com que o tester não analise o erro. Exemplo: Pode ser falta de limpar cookie ou cache, falta de update do sistema, e por ai vai. A atenção começa a faltar no pequeno tester que já não se sente mais motivado para achar erros alheios. Sensação de que o trabalho não está sendo bem feito, começa a não sentir confiante em validar. Mas aí, o que fazer?

Alguns analistas podem motivar com prêmios. Conheço uma analista que dá estrelinhas para quem encontrar um mega bug. É um meio de criar competição sadia consigo mesmo, ir atrás das tão sonhadas estrelinhas. Reuniões que mostram os bons resultados do projeto podem também criar motivação. É importante estar sempre disposto e realizado com o trabalho, se sentir importante no que faz e gostar. Afinal é uma área nova e que tem muita coisa para ser descoberta. Então é sempre importante fazer pesquisas sobre a área, inventar coisas novas, descobrir meios de tornar a atividade gostosa e ao mesmo tempo séria. Então, temos um mundo de inovações para testar e isso é um motivo maravilhoso para se sentir motivado.”

O que o Márcio relatou é algo muito comum mesmo em fases mais estáveis dos projetos. Acabamos por encontrar “pelo em casca de ovo” (como já dizia o mestre Abu, erros ou acertos bem sutis, que não fazem muita diferença no desempenho final do objeto desenvolvido. Mas o que importa mesmo Márcio, é a sensação do dever cumprido, de que fizemos o melhor para garantir que o nosso cliente receba um software “livre” de bugs. É garantir a qualidade daquilo que nossa equipe está desenvolvendo. Não fique tão preocupado, pois novos projetos sempre existirão, e dai faltará tempo pra cadastrar todos os errinhos que encontrarmos!!!