Histórico sobre Testes de Software

Olá pessoal!

Este post faz parte da minha monografia que foi entregue no semestre passado em minha faculdade. Espero que gostem deste artigo, pois não foi fácil fazer!

Durante as pesquisas para a elaboração deste trabalho acadêmico, não foi encontrado nenhum material que descreva claramente o início e a evolução da área de Testes de software. Pode ser que exista algum material, porém em pesquisas feitas em sites especializados, blogs, e consulta a vários profissionais da área, não foi encontrado nenhum artigo que tratasse sobre o assunto. Portanto, este histórico foi criado com uma consulta e resumo de alguns fatos marcantes com uma atenção ao cenário nacional.

Para começar a falar sobre testes, podemos citar sobre a origem do termo bug, que inicialmente não surgiu com os softwares. O termo bug quer dizer inseto, porém na área de informática ele ganhou outro significado, pois quando ocorria um erro de programação, o termo bug era utilizado.

Thomas Edison teve problemas de leitura em seu fonógrafo com um inseto em 1878 e em todos os defeitos industriais passou a denominá-los como bug. Já o primeiro bug em computadores foi encontrado em 1947, os engenheiros que trabalhavam com a máquina Harvard Mark I, encontraram um inseto nos circuitos. Este inseto estava causando um erro nos cálculos da máquina. Ao ser encontrado, o inseto foi retirado e colado no livro de registro com a intenção de registrá-lo como o primeiro bug encontrado.

Com o livro “The art of software testing” Glenford Myers trouxe ao leitor um conhecimento mais avançado sobre testes, abordando sobre as técnicas de software no ano de 1979.

Este livro é muito conhecido pelos profissionais, podendo ser tratado como uma referência teórica, com o ano de 1979 um grande passo para a área. O livro possui uma coletânea de materiais sobre testes de software. Atualmente este livro se encontra em sua 2ª edição e é utilizado até os dias de hoje, onde muitos o consideram como o marco inicial de Testes de Software.

Os modelos prescritivos de desenvolvimento de software surgiram na década de 80. Estes modelos, cascata, espiral, entre outros foram criados para organizar e inserir padrões no processo de desenvolvimento de software. Ele é composto por vários processos genéricos: comunicação, planejamento, modelagem, construção e implantação.

Dentro do processo construção, estão presentes as atividades de desenvolvimento e testes. Foi a partir desta organização que o conceito de testes de softwares tornou-se mais conhecido. Vale lembrar que testes também está presente em outros processos, como planejamento, modelagem e implantação.
Neste ano, surgiram também as primeiras ferramentas para o auxílio de testes funcionais. Com seu sucesso, surgiram novas ferramentas para gerenciamento de testes com a intenção de organizar, manter dados, resultados e apresentar relatórios.

Sendo assim, em 1990 os fornecedores passaram a integrar em uma suíte única, ferramentas para testes funcionais e de gerenciamento.
A partir do ano de 1995 surgiram as primeiras ferramentas para automação de testes de performance para algumas plataformas.
No ano de 2002, surgiu no Brasil a Associação Latino Americana de Teste de Software (ALATS).

A ALATS é uma entidade sem fins lucrativos que foi criada com a finalidade de reunir profissionais das áreas de teste e de qualidade de sistemas com o intuito de servir de apoio a troca constante de informações objetivando a melhoria dos processos de teste, mantendo-se a sua integração como o processo de desenvolvimento de aplicações. (ALATS).

Atualmente a ALATS promove palestras, encontros mensais e seminários. Dentre os eventos, o mais conhecido é o Seminário Brasileiro de Teste de Software (BRATESTE). Este seminário abrange assuntos como processos de testes, técnicas, palestras e tutoriais.

Os profissionais brasileiros podem contar também com instituições internacionais que atuam no país, como o International Software Testing Qualifications Board (ISTQB) fundado em Edinburgh (Reino Unido) em novembro de 2002. O ISTQB chegou ao Brasil em 2006 com o nome de Brazilian Software Testing Qualifications Board (BSTQB). O BSTQB oferece o exame de certificação do ISTQB, treinamentos e download do material em português.

A primeira certificação brasileira de testes foi criada pela ALATS e no ano de 2006 surgiram os primeiros profissionais certificados com a Certificação Brasileira de Testes de Software (CBTS).
Atualmente podemos encontrar uma grande quantidade de certificações, ferramentas e conteúdo sobre testes de software. Livros, blogs, listas de discussões, são alguns exemplos de conteúdos que podem ser facilmente encontrado.

Antes de citar minhas fontes, gostaria de agradecer a algumas pessoas que de alguma forma me ajudaram dando dicas, opiniões ou ao menos se prontificaram a ajudar: Carolina Fontana, Fabrício Ferrari, Camilo Ribeiro, Fernanda Thiesen e Marcelli Barbosa

Abaixo, uma imagem para ilustrar resumidamente os fatos da área:

Fontes:

http://qualidadebr.wordpress.com/2008/06/22/o-que-e-bug/

http://myoldmac.net/FAQ/firstComputerBug.htm

http://blog.prasabermais.com/2010/02/15/histrico-da-evoluo-das-ferramentas-para-testes-e-qualidade-de-software/

http://istqb.dedicated.adaptavist.com/display/ISTQB/Brazilian+Software+Testing+Qualifications+Board+%28BSTQB%29

http://istqb.dedicated.adaptavist.com/display/ISTQB/History?atl_token=XcZn9CV4Ee

Livro Engenharia de Software de Roger S. Pressman.


Pesquisa para trabalho de TCC

Pessoal, atualmente estou em meu último ano de faculdade de Sistemas de Informação e estou desenvolvendo meu trabalho de conclusão de curso na área de Testes de Software. Gostaria de contar com a ajuda das pessoas que trabalham em empresas de desenvolvimento que respondam este pequeno questionário que criei no google docs.

A minha intenção é saber destas empresas quais possuem uma equipe de testes, quais tipos de testes aplicam, etc.

[ 21/08 - com a pesquisa concluída o link foi removido]

Desde já agradeço a ajuda!


Carreiras em TI – Testes de Software III

Pessoal estou postando mais uma entrevista com uma profissional na área de testes de software. O que mais gosto destas entrevistas é que cada profissional tem algo diferente e interessante para contar de experiência. Outro motivo é que um dos termos mais pesquisados que aparece no wordpress é este, portanto acho legal compartilhar mais este assunto.

A entrevista é com a Marcelli, minha amiga que trabalhou comigo no projeto do Santander e que me ajudou com os testes em Mainframe.

1. Como você conheceu e se interessou por testes?

Não conhecia a área de testes até entrar na IBM (Fevereiro de 2006). Eu imaginava que as empresas testavam seus produtos (softwares) mas não tinha noção de quão organizado e estruturado eram esses testes. Me interessei rapidamente por esta área, pois envolve muito a parte de análise, requisitos, leitura de documentos, que eram as áreas que já me chamavam atenção.

2. Quais as atividades de um profissional que trabalha nesta área?
São muitas. Resumindo, para um analista de teste:

• Ler, ler, ler e ler os requisitos do sistema. É o documento principal para seus casos de testes. Não assuma nada, tire todas suas dúvidas com o responsável pelo requisito. E leia também qualquer outra documentação do projeto que possa ajudar no entendimento da nova funcionalidade.
• Com base no que você leu, planeje os cenários de teste, pense na pré e pós condição, resultados esperados, dados específicos etc.
• Crie os casos de teste, e escreva o passo a passo. Vale ressaltar que o passo a passo deve ser escrito não só para você, ou seja, todos precisam entender e conseguir seguir o roteiro feito por você.
• Envie seus casos de teste para revisão e aprovação do cliente quando necessário. E analise as alterações sugeridas pelo mesmos.
• Quando o ambiente de teste estiver liberado, inicie a execução. Tire evidência dos passos de seu caso de teste, e quando o resultado obtido for diferente do resultado esperado, reporte este defeito e reteste assim que corrigido.

Paralelo a todos os itens acima, mantenha a ferramenta de testes que você utiliza atualizada com seus resultados.
Bom, acima é só um resumo de algumas das atividades de um analista de teste, porém dentro da área de Teste de uma empresa, temos vários cargos. Por exemplo, se você for um Líder de Testes terá que acompanhar e coordenar as atividades citadas acima, se for um Analista de teste de performance terá outras atividades adicionais etc..

3. Para trabalhar com testes é necessário saber sobre outras áreas?

É necessário ter um conhecimento de Lógica, raciocínio lógico para criar as situações de teste necessárias, e dependendo da aplicação que você for testar é necessário alguns skills específicos, como por exemplo: Mainframe, SQL etc.

4. Qual foi o defeito mais difícil que você encontrou?

Não me lembro de um em específico, mas defeitos que envolvem processamento batch, jobs em geral que passam dados de um sistema para o outro etc.

5. Alguma vez alguém já falou para você que testar não é preciso?

Os desenvolvedores hahahaha. Brincadeira, nunca ouvi isso diretamente, mas várias vezes já ouvi dos desenvolvedores: “Eu já testei e está tuuuudoo certo”.

6. Quais são os tipos de testes mais complicados?

Mainframe – batch, que eu já testei…mais complicado pois sempre envolve problemas de acesso, precisa ter um skill específico para acessar os diretórios etc. Performance parece ser complicado também, mas não conheço.

7. Dicas para quem está começando (materiais/links/etc).

- Fazer um curso de inglês pois a maioria das empresas colocam como pré requisito;
- Para aprender sobre testes o livro BASE DE CONHECIMENTO EM TESTE DE SOFTWARE é muito bom;
- Ter concentração, pois precisamos ler vários documentos, e ter um bom raciocício lógico;
- Estudar algumas ferramentas de teste (Rational por exemplo) pode ser um diferencial;
- Fiz um estudo para minha monografia sobre Testes, especificamente sobre MAPEAR CASOS DE USO EM CASOS DE TESTE, quem tiver interesse sobre o assunto pode me contactar.

Obrigado Marcelli pela colaboração! Muito boa a descrição da atividade de um analista de testes, com certeza dá uma boa idéia sobre o papel deste profissional.

Para quem tiver o interesse em ver a monografia dela ou quer alguma ajuda, pode entrar em contato que ela irá responder com todo prazer: marcellitb@hotmail.com

Abraços a todos.

Vinicius Sabadoti


Scrum em Menos de 10 Minutos

Como estou começando a criar o meu TCC estou pesquisando sobre as metodologias ágeis e no blog do meu amigo André Baltieri encontrei um video muito interessante sobre Scrum.

Este video fala sobre os principais conceitos sobre o tema em menos de dez minutos! Para quem ainda não conhece, vale a pena conferir:

Obrigado André por autorizar a postar aqui também!

Abraços a todos.

Vinicius Sabadoti


Dicas – Criando um CV

Criar um curriculum parece ser fácil, porém há muitas questões. O que realmente devo colocar, como deve ser o modelo, quantas páginas, etc. Estas são algumas das várias dúvidas que muitas pessoas possuem quando vão criar um.

Gostaria de compartilhar com vocês um video do consultor de carreiras Max Gehringer que dá dicas de como montar um Curriculum Campeão.

Gostou do vídeo? Precisa acertar o CV? Então mãos à obra e boa sorte na procura de oportunidades!

Abraços.

Vinicius Sabadoti


Notícias – Youtube não oferecerá mais suporte ao IE6

Para os usuários que ainda possuem o Internet Explorer 6 a partir de março o Youtube não oferecerá mais suporte ao navegador. O site avisa que vai ser possível continuar ver os vídeos pelo navegador, porém novos recursos que podem surgir não estarão mais disponíveis para o IE6. Se você quer conferir basta acessar o site com o IE6 que antes de iniciar o vídeo o site exibe uma mensagem e sugestões para atualizar o navegador.

A luta para que usuários atualizem seus navegadores não vem de hoje. Programadores que trabalham com o desenvolvimento web criticam muito o IE6, há até uma campanha do imasters para que os usuários atualizem o navegador.

Será que com esta atitude o youtube consegue convencer os usuários a atualizarem o navegador? Na minha opinião se um usuário não o atualizou ainda é porque já está utilizando outro ou o usuário deve possuir um computador mais antigo e uma atualização pode acarretar na navegação.

Acredito que ainda testers, programadores e cia terão que lidar ainda com o navegador por um bom tempo.

Abraços!

Vinicius Sabadoti


Testes de software e a razão de testar.

Resumo: Neste artigo irei abordar o conceito de testes de software, sua importância e o motivo de testar softwares. Realmente você poderá encontrar muitos artigos tratando deste assunto, porém convido ao leitor a ler o artigo sobre a minha visão referente ao assunto.

Quando converso com alguém para falar que atuo na área de testes de software percebo que na maioria das vezes as pessoas possuem uma visão básica da área. Simplesmente dizer que trabalho com testes de software não é uma tarefa simples de testar para ver se o software está funcionando corretamente.

Na minha opinião a principal atividade é encontrar erros, porém com a atividade de ao encontrarmos erros há várias consequências  positivas.

Quando um defeito é encontrado e corrigido consequentemente a qualidade do sistema aumenta, portanto aumenta sua segurança e confiabilidade, reduzindo os riscos. Se um defeito é encontrado em fase de levantamento de requisitos podemos dizer que o risco é menor do que encontrado em fase de desenvolvimento e o custo também (saiba mais deste conceito pesquisando sobre a Regra 10 Myers).

Imagine a seguinte situação:  A equipe do projeto passa pelo ciclo de vida inicial do projeto e com o levantamento de requisitos do sistema concluído. Os desenvolvedores começam a criar o sistema, porém não está de acordo com o que o cliente pediu e realmente necessita. Ao encontrar este defeito em fase de produção pode acarretar uma grande parte do tempo para solucionar o problema e consequentemente irá afetar o cronograma do projeto.  Acreditem podem haver casos em que sejam necessário começar tudo do zero e caso aconteça como fica o tempo gasto e o custo da equipe? Com certeza o custo do projeto será maior.

Há várias técnicas para realizar os testes para garantir a qualidade do sistema,  duas técnicas bem conhecidas são: testes de caixa preta e testes de caixa branca. Resumindo, testes de caixa preta são os testes afim de verificar a funcionalidade de um sistema,realizando testes práticos no sistema, interagindo o Tester com o sitema. Os testes de caixa branca são voltados para a estrutura interna do sistema, por exemplo, validar se uma variável está declarada corretamente, um laço de repetição e prosseguindo para testes mais complexos. Geralmente os testes de caixa branca são executados pelo próprio programador.

A equipe de testes pode contar com uma grande variedade de softwares para auxiliar nos testes. São softwares que auxiliam desde o planejamento, modelagem até a execução dos testes.

As atividades são divididas entre os cargos presentes na área de testes, onde cada profissional exerce uma função dentro da equipe. Para saber mais sobre sobre as atividades do profisisonal de testes confira meu outro artigo clicando aqui.

Espero que com este artigo vocês possam ter um conhecimento maior sobre a área de testes, os benefícios e sua importância. Caso possuam alguma dúvida sintam-se a vontade para perguntar, responderei com prazer.

Abraços e até a próxima!

Vinicius Sabadoti.


Dica – Comunidade Insidedonet no Ning

Pessoal, lembram do meu amigo André Baltieri que já nos concedeu uma entrevista? Ele criou a comunidade do Insidedotnet no Ning. Para todos que gostam da tecnologia .Net, Visual Studio e tutoriais sobre o assunto podem ter certeza que lá é o lugar certo!

Comunidade do Inside.Net no Ning

Fica a dica para todos.
Abraços
Vinicius Sabadoti


Carreiras em TI – Teste de Software II

Dando continuidade nos posts de carreiras em TI, estou publicando uma outra entrevista interessante na área de testes. A entrevistada é a Daniela Marques e ela foi Team Leader do projeto em que participamos do banco Santander.

Como foi que você conheceu e entrou na área?

Durante meu mestrado gostei da área de qualidade do software, a partir deste momento comecei a procurar empregos na área de qualidade. Testes foi a primeira oportunidade que tive na área de qualidade e por esse motivo entrei na  área.

Quais são os maiores desafios?

Entender os requisitos que nem sempre são bem definidos e após esse entendimento atingir o prazo para garantia de qualidade.

Como é a relação entre testes e desenvolvimento?

Deve ser uma relação de trabalho em equipe pois a equipe de testes é contratada para garantir a qualidade do trabalho dos desenvolvedores. Se não for uma relação sadia é difícil conseguir resolver todos os problemas existentes e atingir a meta estabelecida nos projetos.

Curiosidade: Qual foi o defeito mais “simples” que você encontrou em um sistema?

Defeitos de escrita/layout.

Que tipos de testes na sua opinião são mais complicados?

Funcionais e perfomance.

Do que você mais gosta da sua profissão?

Encontrar defeitos difíceis que são verificados somente em determinadas ocasiões. Gosto dos defeitos que exigem mais raciocínio para encontrá-los.

Como você vê o futuro da area?

É sempre uma área promissora, mas que pode ser absorvida pelo treinamento de desenvolvedores em testes e garantia de qualidade.

Dicas para quem está começando.

Manter um raciocínio lógico e entender o negócio que está  sendo testado, desta maneira é  muito mais simples imaginar os cenários para testes.

Obrigado Dani pela entrevista, realmente os defeitos mais difíceis para serem encontrados são muito interessantes e valem a pena! Não podemos deixar passar nada!

Abraços

Vinicius Sabadoti.


Testes de SW – Profissional na área de testes de software

Pessoal estou preparando meus posts sobre testes. Primeiramente gostaria de deixar claro que quero começar sobre o básico e ir evoluindo com os artigos. A minha inteção é divulgar a área e ajudar com os artigos as pessoas que estão iniciando na área.

Nós podemos encontrar muitos conteúdos sobre testes na internet, porém não acho que é tão simples assim para uma pessoa começar com testes como alguém que deseja trabalhar com desenvolvimento, por exemplo, onde encontra milhares de tutoriais, dicas, etc.

Espero que vocês possam aprender bastante com os artigos e fiquem a vontade para opinarem. Vamos inicialmente começar pelas atividades do profissional de testes.

Muitas vezes uma pessoa que não possui tanto o conheciemnto com testes, ao escutar falar sobre teste de software imagina somente uma pessoa responsável que testa o sistema simplesmente. Muito pelo contrário, são muitas as atividades na área e elas estão divididas, onde possuem hierarquias e funções:

Testador: Muitas vezes, esta é a primeira oportunidade para o profissional que entra na área, caso não inicie como Analista de Testes. O Testador executa o Script de Teste (Passo a passo de como testar), coletando as devidas evidências e caso encontre algum defeito deve informar o defeito encontrado com o processo de abertura de defeito. Criar relatórios e enviar reports diários também são atividades do testador.

Automatizador de Testes: o automatizador é o responsável a criar Scripts de Testes automatizados, sendo assim uma vez o script criado e autmoatizado, o teste é executado por um programa. A vantagem de testes automatizados é a redução de tempo para executar um teste que poderia ser feito manualmente pelo profissional. Uma outra grande vantagem é a de poder reduzir o erro na hora da execução, pois um teste massante, cansativo pode induzir o Testador a errar.

É preciso tomar muito cuidado com os testes automatizados, porém se na criação o script foi criado incorretamente, o teste não sairá conforme o esperado.

Analista de Testes: É o profissional que elabora o Script de teste e em muitos casos ele também realiza a execução do mesmo.

Engenheiro Arquiteto de Teste: Profissional responsável na criação do ambiente de testes e execução de testes não funcionais* (veremos no próximo artigo alguns tipos de teste).

Gerente de Defeitos: O gerente de defeitos deve validar os defeitos abertos, verificando se realmente o defeito que o Tester abriu é válido ou não, geralmente o líder de testes faz esta função também.

Líder de Testes: o líder gerencia e ajuda a equipe, ele possui mais contato com o gerente do projeto, coleta as métricas de testes, estipula metas e prazos.

*exemplo de testes não funcionais: testes de caixa-branca que são testes que validam o código do sistema.


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.