Saiba quais são as fases dos testes de software

testing Creio que ainda a atividade de teste sofre com problemas de vocabulário, pois quando se está em reuniões de trabalho discutindo-se teste de software, é uma festa! Cada um tem seu próprio termo para ser usado dado um determinado conceito de teste. Para contribuir com a melhoria do vocabulário utilizado na área de testes, segue abaixo as quatro fases dos testes de software:

Teste Unitário

É também conhecido como teste de unidade, e tem o objetivo de testar as menores unidades de software desenvolvidas ( pequenas partes, unidades do sistema ou uma classe).

Em sistemas orientados a objetos o foco desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código, visando encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando independentemente do todo.

É considerada uma das fases mais importante dos testes, já que se procura identificar bugs na menor unidade de software possível, o mais cedo possível, se traduzindo em uma excelente estratégia para se obter um software de melhor qualidade

Teste de Integração

Nesta fase o objetivo é encontrar falhas provenientes da integração interna dos componentes de um sistema. Os tipos de falhas encontradas são de envio e recebimento de dados.

Por exemplo, um objeto A pode estar aguardando o retorno de um valor X ao executar um método do objeto B. Entretanto este objeto B pode retornar um valor Y, desta forma gerando uma falha.

Não faz parte do escopo dessa fase de teste o tratamento de interfaces com outros sistemas (integração entre sistemas). Essas interfaces são testadas na fase de teste de sistema

Teste de Sistema

Tem o objetivo de executar o sistema sob ponto de vista de seu usuário final, buscando identificar falhas nas funcionalidades do sistema. Os testes são executados em condições similares  de ambiente, interfaces sistêmicas e massas de dados – àquelas que um usuário utilizará no seu dia-a-dia de manipulação do sistema.

Teste de Aceitação

É um teste conduzido por usuários finais do sistema. São realizados, geralmente, por um grupo pequeno de usuários do sistema, que simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com os requisitos do sistema. para permitir ao cliente determinar se aceita ou não o sistema.  Pode incluir testes funcionais, de configuração, de recuperação de falhas, de segurança e de desempenho.

Seis dicas para preparação de massa de dados para testes funcionais

massa

Para determinados tipos de sistemas a preparação de massa de dados é uma das etapas que mais pode consumir esforços e recursos e certamente define a qualidade dos testes funcionais.
Se você é o responsável por esta importante etapa dos testes, veja as dicas abaixo:
1. Direcione a criação de massa de dados através dos casos de testes. O projetista de testes ao desenvolver os casos de testes deve especificar a massa de dados necessária para a execução do mesmo. Assim você terá qualidade e não quantidade na massa de dados.

2. Se o sistema sob teste já tiver versão em ambiente de produção com dados, as bases de produção podem ser utilizadas, com descaracterização dos dados

3. Ao usar dados oriundos do ambiente de produção um processo de ETL – extração, transformação e carga, embora geralmente seja trabalhoso, demande a elaboração de rotinas customizadas para mascaramento de dados, consegue-se uma boa massa de dados para testes. O processo de ETL também é útil para extração de dados não relacional, e que não necessita de mascaramento.

4.  Quando os dados a serem extraídos estão em bases relacionais, um processo manual de ETL já não se demonstra adequado, seja por não se conhecer o modelo relacional das bases e tabelas envolvidas, ou pela complexidade das tabelas envolvidas.

5. Considere o uso de ferramentas de software para apoio na atividade de geração de massa de dados, observando: tipo de banco de dados envolvidos, tipos de software: pacotes ou desenvolvido internamente, segurança dos dados, tipos de seleção dos dados: por período de tempo, por critérios definidos pelo usuário.

6. Dois exemplos de ferramentas de extração e manipulação de dados, são Optim (IBM) e File-Aid (Compuware). Dois exemplos de ferramentas para geração de novos dados são: SQL Data Generator (Red Gate Software) e Visual Studio Team System

E você, utiliza algum tipo de ferramenta para geração de massa de dados para testes?

Referências Bibliográficas e Webgráficas sobre Teste de Software

Para os estudandes, praticantes e demais interessados no tema “Teste de Software”, aqui vai relação de livros e sites para consultas:

Bibliográficas

Paton, Ron. Software Testing. Sams Publishing. 2005.

H. Kan, Stephen. Metrics and Models in Software Quality Engineering. Second Edition. Addison Wesley. 2002

D. Everett, Gerald. McLeod Jr, Raymond. Software Testing Testing Across the Entire Software Development Life Cycle. IEEE Press. 2007

Eduardo Delamaro, Marcio. Carlos Maldonado, José. Jino, Mario. Introdução ao Teste de Software. Campus. 2007.

A. Menascé, Daniel. A.F.Almeida, Virgilio. Planejamento de Capacidade para Serviços na Web. Campus. 2003.

U.Smith, Connie. G. Williams, Lloyd. Performance Solutions A Practical Guide to Creating Responsive, Scalable Software. Addison-Wesley. 2002

Unhelkar, Bhuvan. Process Quality Assurance for UML-Based Projects. Addison-Wesley. 2003.

Kaner, Cem. Bach, James. Lessons Learned in Software Testing. John Wiley Consumer. 2001.

Falk, Jack. Quoc Nguyen, Hung. Kaner, Cem. Testing Software. John Wiley Professional. 1999.

Webgráficas

http://www.sqe.com/Default.aspx – Software Quality Engineering-Software Testing Conferences, Software Training & Certification

http://www.testingexcellence.com/ – Software Testing Tutorials and Articles – Test Techniques, Test Plan, Test Results…

http://www.spinsp.org.br/ – SPIN – Software Process Improvement Network

http://www.qaforums.com/ – Software Testing and Quality Assurance On-Line Forums

http://www.testingeducation.org/ – Center for Software Testing Education & Research

http://www.bstqb.org.br/ – Brazilian Software Testing Qualifications Board

http://www.istqb.org/ – International Software Testing Qualifications Board

http://www.alats.org.br/ – Associação Latino-Americana de Teste de Software

http://www.satisfice.com/kaner/ – Cem Kaner’s Blog

Material referência sobre testes de software (em português!)

Cada vez mais as empresas que desenvolvem software estão dedicando mais atenção à etapa de testes. Com o aumento do interesse nessa etapa do desenvolvimento, há necessidade de se ter acesso a bons a materias de referência: livros, sites, artigos, glossários etc. Tenho conversado bastante com fornecedores de serviços de testes, e vejo claramente como o vocabulário da área de testes ainda não está cristalizado. É comum haver problemas na definição de testes unitários, testes de sistemas, testes de integração, casos de testes, cenários de testes, condições de testes e por aí vai…Cada um tem a sua própria definição para cada termo. Penso que na área de codificação os termos já estejam bem mais critalizados se comparados com os termos de testes!

Certamente uma contribuição para sedimentação dos conceitos de testes são os processos de certificação. Segue abaixo as duas ofertas mais conhecidas de serviços de certificação:

1) a certificação do BSTQB (Certified Tester, Foundation Level – CTFL, provida pelo ISTQB). Veja mais informações sobre essa certificação no site – http://www.bstqb.org.br/modules/content/index.php?id=2.

2) e a certificação da ALATS (Certificação Brasileira de Teste de Software – CBTS). Veja mais informações sobre essa certificação no site – http://www.alats.org.br/Default.aspx?tabid=28

No site da BSTQB você encontra um conteúdo (em português) sobre fundamentos de testes (disponível em Syllabus Foundation Level), e ainda um glossário (disponível em ISTQB – Glossário de Termos de Teste). É um material que todo profissional da área de testes deveria ter conhecimento! Confira!