fbpx
Escolha uma Página

O que são normas técnicas e por quê elas existem?

Normas técnicas são documentos publicados por organizações profissionais responsáveis por padronizar determinadas atividades, processos, dispositivos, produtos, etc.

Nessas normas são descritas as etapas de processos, entradas e saídas esperadas de cada etapa, as formas e conteúdos de documentações, bem como outras informações necessárias a atividade de teste.

O motivo da existência de normas é para que se tenha uma padronização nas formas com que são realizados processos, produzidos documentos, e para que cada termo tenha o mesmo significado e seja entendido em diferentes situações facilitando a comunicação tanto entre as equipes internas de uma organização, quanto entre organizações diferentes.

A utilização de normas garante que todas as organizações que realizam determinada ação a faça de maneira similar, e que a comunicação entre essas organizações seja facilitada devido a essa similaridade. O uso de padrões também facilita a obtenção de um parâmetro de comparação para determinado atributo.

Nesse sentido, no teste de software e na computação em geral, utilizamos normas provenientes de duas instituições:

ISO: “International Organization for Standardization”ou em
português, “Organização Internacional para Padronização”.

IEEE: “Institute of Electrical and Electronics Engineers”, pronuncia-se I-3-e, ou em português “Instituto de Engenheiros Eletricistas e Eletrônicos”.

As seguintes normas são fundamentais para o desenvolvimento de bons processos de teste de software:

ISO 9126-1-Software Quality Characteristics (2003):

Esse padrão define um modelo de qualidade o qual pode ser aplicado a qualquer tipo de software sem fazer especificações sobre os requisitos desse produto. O objetivo desse padrão é proporcionar um framework para avaliação da qualidade dos produtos de software. Assim o modelo de qualidade definido por ele é baseado em seis características:

1. Funcionalidade: é a capacidade que o software tem de prover funções que atendam aos requisitos implícitos e explícitos. Pode ser entendido como “o que o software faz”.

2. Portabilidade: capacidade da transferência de um produto de software de um ambiente para outro.

3. Confiabilidade: capacidade que o produto de software tem de repetir sua funcionalidade dadas as mesmas condições antes aplicadas. Ou ainda, é a capacidade que um produto tem de executar determinada função sem sofrer desgaste ou envelhecimento.

4. Manutenibilidade: capacidade que o produto de software possui de ser modificado. As modificações incluem correções, melhorias ou adaptações.

5. Usabilidade: capacidade que o produto tem de ser compreendido por diversos tipos de usuários. O quão fácil é para que o usuário aprenda e possa utilizar esse produto.

6. Eficiência: capacidade do produto de apresentar um desempenho satisfatório quando lhe é proporcionado recursos suficientes.

Atualmente, essa norma foi substituída pela Norma ISO/IEC 25000 – SQuaRE. Na família de normas 25000, essas capacidades do sofwawre foram unidas a outras que vieram de outras normas.

ISO 12207 -Systems and Software Engineering – Software Life Cycle Processes (2008):

Essa norma descreve a arquitetura dos processos de ciclo de vida de software, sem especificar os detalhes de implementação ou execução das atividades e tarefas incluídas nos processos.

Esse padrão estabelece ainda um framework para processos de ciclo de vida de software, com terminologias bem definidas, que podem ser referenciadas por desenvolvedores de software. Nele são descritos processos, atividades e tarefas que são executadas durante a aquisição de um produto de software ou serviço, e durante o fornecimento,
desenvolvimento, operação, manutenção e o descarte de produtos de software. Em determinados contextos software pode incluir porções de hardware.

Nesse padrão, as seções que terão mais importância no âmbito do teste são a Seção 6.4.6 na qual é discutido o processo de qualificação de teste de sistema e a Seção 7.1.7 referente ao processo de qualificação de teste de software.

Esse padrão cita ainda o padrão ISO/IEC 15288 que irá substituir o padrão ISO/IEC 12207 muito em breve. Assim é melhor investigar o novo padrão e basear as futuras modificações do processo de teste nesse novo padrão.

Como o novo padrão englobará as oito seções do padrão 12207 com algumas modificações, o padrão 12207 ainda é uma boa fonte de informações sobre os processos de ciclo de vida do software, e é utilizado como base para o desenvolvimento desse projeto

 IEEE 1012 –  Standard for Software Verification and Validation (2004):

O IEEE Std 1012-2004 é um padrão de processo que define os processos de verificação e validação em termos de atividades específicas e tarefas relacionadas a cada um deles. O padrão também define os conteúdos do plano de V&V incluindo exemplos e formas os quais servem de diretivas.

Esse padrão se aplica ao desenvolvimento de software, manutenção e reuso. Os processos da V&V são definidos conforme o padrão ISO 12207 e referencia os processos de ciclo de vida do software, sendo compatível com todos os modelos de ciclo de vida. É importante notar, que nem todos os modelos de ciclo de vida utilizam todos os processos descritos nesse padrão.

Os objetivos desse padrão são:

– Estabelecer um framework para os processos de V&V, atividades e tarefas que contribuam de maneira direta para todos os processos de ciclo de vida de software. Inclusos nesses estão os processos de aquisição, fornecimento, desenvolvimento, operação e manutenção;

– Definir as tarefas de verificação e validação, conjunto de entradas e conjunto de saídas;

 – Identificar as tarefas mínimas de V&V correspondentes a um esquema de integridade de 4 níveis;

Definir o conteúdo de um plano de V&V.

Esse padrão pode ser inserido em todos os contextos de aplicações de software. Quando se conduz os processos de validação e verificação é importante examinar a relação que o software tem com o sistema do qual faz parte.

IEEE 829 –  Standard for Software and System Test Documen-tation (2008):

A IEEE 829 provê um conjunto de padrões reconhecidos internacionalmente em documentação para planejamento de teste. Ela foi desenvolvida especialmente para esse fim e é aplicável a cada fase do ciclo de teste de software, incluindo teste de sistema e aceitação.

Esse padrão descreve um conjunto de documentos básicos, abarcando forma e conteúdo, que devem ser criados juntamente com a execução do processo de teste. A norma define a padronização da documentação de teste tanto em tempo de desenvolvimento, quanto as versões seguintes após completo esse desenvolvimento do produto de
software.

Não são definidos nesse padrão metodologias específicas para se realizar o teste, bem como não são definidas técnicas, nem ferramentas para fazê-lo. A escolha das metodologias, técnicas e ferramentas cabe ao gerente de teste juntamente com a equipe de gerencia de projetos.

Alguns outros documentos de teste não descritos nessa norma podem ser necessários para a composição de uma boa documentação dependendo da metodologia utilizada, nesse sentido, fica a cargo do gerente de teste da instituição optar por quais desses documentos devem ser incluidos.

O padrão 829 é composto por oito documentos divididos em três áreas principais, sendo elas:

Plano de teste;

 Especificação de Teste;

Relatórios.

Atualizado em 26/11/13 – OBS> O conjunto de normas “ISO/IEC/IEEE 29119 Software Testing The international standard for software testing” que a substitui já começou a ser lançado. Em breve todas suas componentes estarão finalizadas. O post que descreve esse novo conjunto de padrões está aqui.