quinta-feira, 17 de maio de 2012

ESTRUTURA ORGANIZACIONAL


Da empresa

 Com base na pesquisa e na observação das empresas estudadas, seguem as recomendações sobre a estrutura organizacional que o departamento de testes de software melhor se adéqua:
·         Não é recomendado o departamento de qualidade e testes de softwares ser gerenciados pela mesma gerência de desenvolvimento, pois, pode gerar conflitos de interesses;
·         De preferência o departamento de testes de software estar abaixo de uma diretoria específica de qualidade da empresa;

Da equipe de testes


A estrutura interna do departamento de teste de software é recomendável seguir os padrões de certificações existentes citadas anteriormente que são:
  • ·         Líder do projeto de testes: responsável pela liderança de um projeto de teste específico, normalmente relacionado a um sistema de desenvolvimento, seja um projeto novo ou em manutenção (RIOS e MOREIRA, 2006);
  • ·         Engenheiro/Arquiteto de teste: responsável pela montagem da infra estrutura de teste, montando o ambiente de teste, escolhendo as ferramentas de teste e preparando a equipe para executar o seu trabalho neste ambiente de teste;
  • ·         Analista de teste: responsável por modelar, especificar e documentar os casos de testes que devem ser realizados, em resumo esta função cria os Planos de testes que o testador irá executar;
  • ·         Testador: responsável por executar os testes e analisar os resultados obtidos, seguindo parâmetros previamente definidos no Plano de testes;

  • Logo abaixo iremos definir o que é um Plano de teste, ficando mais claro as funções de cada integrante da equipe.

quinta-feira, 3 de maio de 2012

CMMI (Capability Maturity Model Integration for Development)


O gerenciamento de projetos ou processos de software se refere à aplicação de conhecimentos, habilidades.
O gerenciamento de projetos ou processos de software se refere à aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de satisfazer seus requisitos, e é realizado com o uso de processos tais como: especificação, implementação, testes, manutenção e evolução (CITS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE, 2008).
Para auxiliar neste gerenciamento temos como opção seguir o padrão  CMMI (Capability Maturity Model Integration for Development) foi criado pelo SEI - Software Engineering Institute, sendo reconhecido mundialmente por atestar a maturidade dos processos de desenvolvimento da organização. Reúne diretrizes e boas práticas, tanto acadêmicas quanto de mercado, as quais devem ser incorporadas pelas empresas em seus processos (CITS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE, 2008).
Ele possui cinco níveis de maturidade que especificam o desenvolvimento dos seus processos de desenvolvimento de softwares:
  • ·         Inicial;
  • ·         Gerenciado;
  • ·         Definido;
  • ·         Quantitativamente Gerenciado;
  • ·         Otimizado.



O CMMI abrange 25 áreas de processo divididas em 4 categorias:
·         Gerenciamento de projetos:
·         Definição do processo organizacional;
·         Foco no processo organizacional;
·         Treinamento organizacional;
·         Desempenho do processo organizacional.
·         Gerenciamento de processos:
·         Gerenciamento quantitativo de projeto;
·         Gerenciamento de risco;
·         Gerenciamento integrado de projeto;
·         Gerenciamento de acordo com fornecedor;
·         Monitoramento e controle de projetos;
·         Planejamento de projetos;
·         Gerenciamento integrado de fornecedores.
·         Engenharia:
·         Validação;
·         Verificação;
·         Integração de produtos;
·         Solução técnica;
·         Desenvolvimento de requisitos;
·         Gerenciamento de requisitos.
·         Suporte:
·         Gerenciamento de configuração;
·         Garantia de qualidade de processo e produto;
·         Medição e analise;
·         Análise e tomada de decisão;
·         Análise de causas e resolução;
·         Ambiente organizacional para integração.

ISO/IEC 14598 - Engenharia de Software - Avaliação da Qualidade de Produto de Software



A Norma ISO/IEC 14598-5 define um processo de avaliação da qualidade de produto de software, onde se define as principais características de um processo de avaliação (repetibilidade, reproducibilidade, imparcialidade e objetividade) (GOMES, 2000).
As etapas são:
·         Estabelecer os requisitos de avaliação: analisar os requerimentos para identificar o propósito da avaliação;
·         Especificar a avaliação: define o escopo e métricas da avaliação e as medições a que o produto será submetido.
·         Projetar a avaliação: com base nas especificações do produto elaborar um plano de avaliação no qual estejam relacionados os componentes do produto de software a serem avaliados e os métodos de avaliação;
·         Executar a avaliação: consiste na inspeção, medição e teste dos produtos e seus componentes de acordo com o plano de avaliação;
·         Conclusão da avaliação: consiste no relatório de avaliação e liberação dos dados obtidos na fase anterior.
Outra visão da norma:



Figura 4. Visão Geral do processo – ISO 14598-1 (COLOMBO, 2007).

sábado, 24 de março de 2012

NBR ISO/IEC 12119 (atual ISO/IEC 25051)


Norma que estabelece os requisitos de qualidade para pacotes de software e instruções de como testar um pacote de software com relação aos requisitos estabelecidos (GOMES, 2000).
Estes requisitos são:
·         Descrição do produto – informações sobre o produto e suas principais funcionalidades têm como finalidade ajudar o usuário ou o comprador a avaliar se o produto atende suas necessidades;
·         Documentação do usuário – documentação de fácil compreensão identificando o conhecimento necessário para a utilização da aplicação;
·         Documentação do produto e dados – são os requisitos de programas e dados necessários para seu funcionamento.
Os testes definidos nesta norma são para validar os itens citados acima e seguem a seguinte estrutura:

Figura 3. Estrutura da Norma ISO/IEC 12119.

domingo, 12 de fevereiro de 2012

Certificações para as empresas de desenvolvimento de software

NBR ISO 13596


Norma voltada à área de tecnologia da informação – Avaliação de produtos de software, características de qualidade e diretrizes para seu uso. Versão brasileira da norma ISO/IEC 9126.
A definição de qualidade pela norma NBR ISO 13596 é a totalidade das características de uma entidade, que lhe confere a capacidade de satisfazer as necessidades explicitas e implícitas (ABNT - ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS., 1996).
Pontos fortes desta norma:
·         Confiabilidade:
·         Maturidade;
·         Tolerância a falhas.
·         Eficiência – definido pelo relacionamento desempenho x recursos utilizados;
·         Funcionalidade:
·         Adequação;
·         Exatidão;
·         Interoperabilidade;
·         Conformidade;
·         Segurança.
·         Portabilidade:
·         Adaptabilidade;
·         Suporte a várias plataformas.

NBR ISO/IEC 9126


A norma fornece um modelo de propósito geral o qual define seis amplas categorias de características de qualidade de software que são, por sua vez, subdivididas em subcaracteristicas (GOMES, 2000):
·         Funcionalidades – conjunto de funções que satisfazem os requisitos definidos no produto, as subcategorias:
·          Adequação – propões-se a fazer o que é definido nos requisitos?
·         Gerar resultados corretos, conforme definido nos requisitos?
·         Interoperabilidade – é capaz de interagir com os sistemas especificados?
·         Segurança de acesso – evita acessos não autorizados?
·         Conformidade – está de acordo com as normas e convenções previstas em leis e descrições similares?
·         Confiabilidade – o desempenho se mantém em longos períodos, as subcategorias:
·         Maturidade – freqüência de falhas;
·         Tolerância a falhas – comportamento quando as falhas ocorrem;
·         Recuperabilidade – é capaz de recuperar dados após uma falha?
·         Usabilidade – facilidade no uso do software, as subcategorias:
·         Inteligibilidade;
·         Apreensibilidade;
·         Operacionalidade.
·         Eficiência – os recursos e os tempos utilizados são compatíveis com o nível de desempenho especificado nos requisitos.
·         Manutenibilidade – facilidade nas correções, atualizações e alterações, as subcategorias:
·         Analisabilidade – facilidade encontrar erros quando ocorrem;
·         Modificabilidade – facilidade em modificar as funcionalidades;
·         Estabilidade – riscos de bugs quando se faz alterações;
·         Testabilidade – facilidade de testar as alterações.
·         Portabilidade – utilização do produto em diversas plataformas com pequeno esforço de adaptação.

sexta-feira, 3 de fevereiro de 2012

Certificações para o profissional

Certificação Brasileira de Teste de Software (CBTS)


A Certificação Brasileira em Teste de Software (CBTS) foi criada pela Associação Latino Americana de Teste de Software (Alast) com o objetivo de estabelecer padrões para avaliar a qualificação dos profissionais que atuam na área de testes de software (ALATS – ASSOCIAÇÃO LATINO AMERICANA DE TESTE DE SOFTWARE, 2010).
Não a pré-requisitos para a realização do exame, que será exigido os seguintes tópicos:
·                    Introdução ao Processo de Teste;
·                    Processo de Teste;
·                    Ambiente de Teste;
·                    Análise de Risco;
·                    PMBOK do PMI;
·                    Planejamento de Teste;
·                    Elaboração do Teste;
·                    Gestão de Defeitos;
·                    Teste de Aceitação;
·                    Relatório de teste;
·                    Estimativa de teste;
·                    Tópicos especiais em teste de software.
Os assuntos podem mudar de um exame para outro, recomenda-se fazer download sempre da última versão disponibilizada no site da Alast.

Certificações da Quality Assurance Institute (QAI)


As certificações da Quality Assurance Institute (QAI) são internacionais e foram lançadas em 1990, desde sua criação aproximadamente 35 mil profissionais adquiriram a certificação em 43 países (QAI BRASIL, 2011).
As três certificações abaixo são relacionadas à área de testes de software focada ao profissional da área.

Certified Associate Software Testing (CAST)


A primeira de uma série de certificações seqüenciais que representa a evolução dos conhecimentos do profissional da área de testes de software.
Os pré-requisitos para realizar a prova de certificação são:
·         Formação de 3 ou 4 anos em alguma instituição de nível universitário reconhecido;
·         Formação de 2 anos em alguma instituição de nível universitário reconhecido e 1 ano de experiência na área de sistemas de informação;
·         Três anos de experiência na área de sistemas de informação.
A certificação irá exigir 10 tópicos:
·                    Princípios e Conceitos de Teste de Software;
·                    Construindo o ambiente de teste;
·                    Gerenciando o projeto de teste;
·                    Planejamento de Teste;
·                    Execução do Plano de Teste;
·                    Teste de Status, Analysis and Reporting;
·                    Usuário testes de aceitação;
·                    O teste de software desenvolvidos por organizações fora;
·                    Controles de Teste de Software e da adequação dos procedimentos de segurança;
·                    Testar novas tecnologias.

Certified Software Tester (CSTE)


A segunda de uma série de certificações seqüenciais que representa a evolução dos conhecimentos do profissional da área de testes de software.
Os pré-requisitos para realizar a prova de certificação são:
·         Formação universitária na área de TI, mais dois anos de experiência profissional;
·         Seis anos de experiência profissional;
·         Estão trabalhando, ou que tenham trabalhado em qualquer momento dentro dos últimos 18 meses, na área abrangida pela certificação.
A certificação irá exigir 10 tópicos:
·         Princípios e Conceitos de Teste de Software;
·         Construindo o ambiente de teste;
·         Gerenciando o projeto de teste;
·         Planejamento de Teste;
·         Execução do Plano de Teste;
·         Teste de Status, Analysis and Reporting;
·         Usuário testes de aceitação;
·         O teste de software desenvolvidos por organizações fora;
·         Controles de Teste de Software e da adequação dos procedimentos de segurança;
·         Testar novas tecnologias.

 Certified Software Quality Analist (CSQA)


A segunda de uma série de certificações seqüenciais que representa a evolução dos conhecimentos do profissional da área de testes de software.
Os pré-requisitos para realizar a prova de certificação são:
·         Formação universitária na área de TI, mais dois anos de experiência profissional;
·         Seis anos de experiência profissional;
·         Estão trabalhando, ou que tenham trabalhado em qualquer momento dentro dos últimos 18 meses, na área abrangida pela certificação.
A certificação irá exigir 10 tópicos:
1.      Princípios da Qualidade e Conceitos;
2.      Liderança em Qualidade;
3.      As linhas de base de qualidade (Avaliação e Modelos);
4.      Garantia da Qualidade;
5.      Planejamento da Qualidade;
6.      Definir, construir, implementar e melhorar processos de trabalho;
7.      Práticas de Controle de Qualidade;
8.      Métricas e Mensuração;
9.      Controle Interno e de Segurança;
10.  Prestação de serviços.

Certified Tester Foundation Level - (BSTQB/ISTQB)


Esta certificação é internacional que foi criada no Reino Unido com a British Computer Society´s Information Systems Examination Board (ISEB) em 1998, é reconhecida por uma comissão nacional do International Software Testing Qualifications Board (ISTQB), a principal diferença é que este certificado não expira e não precisa ser renovado (BSTDB, 2010).
Existem dois níveis da mesma certificação e os pré-requisitos são:
·         Certified Tester Foundation Level (CTFL), não há pré-requisitos, mas recomenda-se:
·         Tenha um mínimo conhecimento em qualquer desenvolvimento de software ou teste de software, seis meses de experiências em um sistema ou teste de aceite ou desenvolvedor de software;
·         Fazer o curso que é autorizado pelos padrões do ISTQB (por uma comissão nacional reconhecida).
·         Certified Tester Advanced Level (CTAL) os pré-requisitos são:
·         Dois anos de experiência prática em Teste de Software ou Qualidade em TI;
·         Dois anos dedicados à Pesquisa Acadêmica relacionada à Qualidade de TI em nível de Pós Graduação, ou como instrutor de cursos ou disciplinas relacionadas à Qualidade de TI;
·         Três anos em Desenvolvimento de Sistemas, Análise de Sistemas ou Engenharia de Software;
·         Certificação ISTQB Certified Tester, Foundation Level (CTFL).
Segundo pesquisa do Ministério de Ciência e Tecnologia, cerca de 65% das empresas conheciam as normas ISO/IEC 9126 ou ISO/IEC 12119, e um pouco menos (60%), a ISO/IEC 14598 (MINISTÉRIO DE CIÊNCIA E TECNOLOGIA, 2008).



Figura. Conhecimento de normas da qualidade de produtos (MINISTÉRIO DE CIÊNCIA E TECNOLOGIA, 2008).