IEEE 1028 – Padrão para Revisões de Software

Um amigo meu, o Edimilson Estevam, fez o último exame da CTFL, e comentou comigo que caiu algumas questões a respeito desse padrão do IEEE.

Eu particularmente nunca tinha ouvido falar a respeito dele, nem na época que me preparei para a CTFL.

O intuito desse post, é compartilhar esse padrão (enviado pelo Edimilson – obrigado!), e também fazer um resumo a respeito dele.

O que é o IEEE 1028?

Como todo padrão elaborado pelo IEEE (lê-se “I três E”), o 1028 é fruto do trabalho voluntário de alguns membros do IEEE. E sendo um padrão, eles nos traz algumas importantes e relevantes informações a respeito de revisão de software. Mas é sempre bom lembrar, que ele deve ser usado com bom senso, pois o contexto sempre prevalece sob o padrão (ou deveria prevalecer).

O IEEE 1028 nos traz cinco tipos de revisão de software, junto com os procedimento necessários para a execuçaõ de cada tipo. Está fora do escopo do padrão questões como: quando uma revisão se faz necessária? como escolher qual tipo de revisão deve ser usado?

Os 5 tipos de revisão abordados são:

  • Revisões gerenciais;
  • Revisões técnicas;
  • Inspeções;
  • Walk-throughs;
  • Auditórias.

Os cinco tipos de revisão

Segue abaixo, a tradução do anexo B do padrão, que contém uma tabela comparativa entre os tipos de revisão (o texto original está numa linguagem meio chata de entender, e não consegui melhorar muito na tradução – se notarem algum erro ou melhoria, por favor me avisem):

Característica Revisão gerencial Revisão técnica Inspeção Walk-through Auditória
Objetivo Garantir o progresso; recomendar ações corretivas; garantir alocação correta dos recursos Avaliar a conformidade do estado atual com as especificações e planos; garantir integridade da mudança Encontrar anomalias; verificar decisões; verificar a qualidade do produto Encontrar anomalias; examinar alternativas; melhorar o produto; fórum para aprendizado Avaliação independente de cumprimento com os objetivos de padrões e regulamentos
Tomada de decisão A equipe de gerenciamento traça o curso da ação; decisões são feitas na reunião ou como resultado das recomenda-ções A equipe de revisão solicita aos gerentes ou a liderança técnica que atuem nas recomendações A equipe de revisão escolhe as disposições pré-definidas do produto; os defeitos devem ser removidos A equipe concorda com as mudanças para serem feitas pelo autor Organização auditada, iniciador, comprador, cliente ou usuário
Verificação das mudanças O líder verifica que itens são fechados; a verificação das mudanças é deixada para outros controles do projeto O líder verifica que itens são fechados; a verificação das mudanças é deixada para outros controles do projeto O líder verifica que itens são fechados; a verificação das mudanças é deixada para outros controles do projeto O líder verifica que itens são fechados; a verificação das mudanças é deixada para outros controles do projeto Responsabili-dade da organização auditada
Tamanho recomendado do grupo Duas ou mais pessoas Três ou mais pessoas Três a seis pessoas Duas a sete pessoas Uma a sete pessoas
Quem participa Gerentes, liderença técnica e algumas pessoas de outras áreas Liderença técnica e algumas pessoas de outras áreas Pessoas da área com acompanhe-mento documen-tado Liderença técnica e algumas pessoas de outras áreas Auditores, organização auditada, pessoal de gerência e técnico
Grupo da liderança Normalmente o gerente responsável Normalmente o engenheiro líder Um facilitador treinado O facilitador ou o autor O auditor líder
Volume de materiais Moderado para muito, depende dos objetivos da reunião Moderado para muito, depende dos objetivos da reunião Relativa-mente baixo Relativa-mente baixo Moderado para muito, depende dos objetivos da reunião

Abaixo, segue o link para baixar o padrão IEEE 1028:

http://bit.ly/ieee_1028

Simulados Online da CTFL

O Fábio Martinho divulgou na lista do Quality Assurance vários simulados da CTFL. Segue abaixo, os links:

Os simulados estão em inglês e o resultado é apresentado, após você completar ele. Uma boa para quem está se preparando para a CTFL do ISTQB/BSTQB.

Fique por dentro das novidades, assine o feed do QualidadeBR.

Impressões exame CTFL-BSTQB

É pessoal. Hoje das 09:00 às 10:00 fiz o exame da CTFL (Certified Tester – Foundation Level).

Segue abaixo as minhas impressões sobre o exame:

  • Bom nível de dificuldade: naquela média de: 20 questões fáceis, 15 questões de médio/difícil e 5 questões de nível muito difícil;
  • Bem elaborada: as questões eram bem feitas e claras;
  • Pouco tempo: 60 minutos para 40 questões? Pouco! Muito pouco! O tempo foi o maior vilão da prova. Eu que costumo fazer as provas com calma, comecei e terminei o exame a 100km/h e mesmo assim só fui passar as respostas para o gabarito, faltando 5 minutos para o término da prova. Acabei quase em cima do tempo máximo;
  • Revisar é luxo: se você também tem o hábito de revisar as questões, então esquece! Não dá para revisar as questões, devido ao pouco tempo. Eu até tentei revisar umas de tabela de decisão, mas desisti;
  • Enunciados grandes: várias questões eram bem longas, onde apresentavam alguma situação;
  • Códigos e tabelas de decisões: acho que poucas pessoas conseguiram realmente resolver essas questões, devido ao curto tempo. Eu mesmo só analisei a questão e marquei a alternativa mais próxima do que eu achava, ou seja, quase um Cálculo Hipotético Universal de Tempo e Espaço (C.H.U.T.E.).

Bem agora é esperar até no máximo 20 dias para saber o resultado do exame. Espero que ele seja positivo 🙂

Boa sorte a todos que fizeram o exame!!!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q36S3

Mais uma questão sobre classe de equivalência. Bom para treinar mais um pouco.

Questão

Na modelagem de um sistema que trabalha com impostos a serem pagos: Um empregado recebe R$4.000 de salário livre de impostos. Os próximos R$1.500 são tributados em 10%. E os próximos R$28.000 são tributados em 22%. Qualquer outro valor é tributado em 40%. Para o mais próximo valor inteiro, qual desses grupos de números cai na mesma classe de equivalência?

a) R$4.800; R$14.000; R$28.000
b) R$5.200; R$5.500; R$28.000
c) R$28.001; R$32.000; R$35.000
d) R$5.800; R$28.000; R$32.000

Análise

Precisamos saber qual alternativa contém valores que caem na mesma classe de equivalência. Portanto precisamos, antes de mais nada, saber quais classes de equivalências temos.

Resolução

De acordo com o enunciado da questão temos 4 classes de equivalência, que são:

  1. Valores até 4000 = não tributados
  2. Valores entre 4001 e 5500 = tributados em 10%
  3. Valores entre 5501 e 33500 = tributados em 22%
  4. Valores maiores que 33501 = tributados em 40%

Logo os valores da alternativa D R$5.800; R$28.000; R$32.000, pertencem a mesma classe de equivalência que é a 3.

Resposta

Alternativa: d) R$5.800; R$28.000; R$32.000

Até mais!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Coberturas

100% de cobertura de comando cobre 100% de cobertura de desvio? Ou é o contrário?

100% de cobertura de caminho garante 100% de cobertura de LCSAJ?

Se algumas dessas perguntas já passaram pela sua cabeça, garanto que não foi somente pela sua. Pela minha e de várias outras pessoas também.

Então o que você acha de solucionar de uma vez todas as dúvidas quanto as coberturas?

“Se tá brincando, Fabrício?”

“Sei, sei e eu também vou te mostrar um esquema para acertar todos os números da loteria”

Que isso pessoal, é verdade. Eu agarantiu!!!

Seu Creysson

Eu criei uma representação gráfica de qual cobertura cobre qual, baseada em uma outra que a leitora Renata Eliza (muito obrigado!) me enviou:

Coberturas

Ficou mais fácil não ficou?

Mas se mesmo assim restaram dúvidas, segue abaixo a listagem de quais coberturas cobrem quais, baseado no material da certificação CTFL, cedido pela BSTQB:

  1. 100% da  cobertura de decisão ou desvio garante 100% da cobertura de comando, mas não vice-versa;
  2. 100% de cobertura de decisão implica em 100% de cobertura de desvio, e vice-versa;
  3. 100% de cobertura LCSAJ implica em 100% de cobertura de decisão;
  4. 100% de cobertura de caminho implica em 100% de cobertura LCSAJ.

E isso aí pessoal. Espero que eu tenha ajudado. 🙂

Fique por dentro das novidades, assine o feed do QualidadeBR.
Assine o feed

Fonte:

ISTQB – Glossário de Termos de Teste (Versão 1.3 – Português/Brasil);

Syllabus Foundation Level (em Português/Brasil).

Resolução de questões CTFL: Q15S2

Essa deveria ser uma questão mais fácil de cobertura de sentença e desvio, por usar a nossa linguagem. Porém, aplicada numa questão de Teste de Software, as coisas ficam confusas.

Questão

Considere o seguinte:

Pegar e ler o jornal
Olhe o que está passando na televisão
Se tiver um programa que você estiver interesse em assistir, então, veja a TV e
assista o programa
Caso contrário
Continue lendo o jornal
Se existe uma palavra cruzada no jornal, então tente completar

a) CS = 1 e CD = 1
b) CS = 1 e CD = 2
c) CS = 1 e CD = 3
d) CS = 2 e CD = 2
e) CS = 2 e CD = 3

Análise do código

Que código?

Esse daqui:

  1. Pegar jornal
  2. Ler jornal
  3. Olhar televisão
  4. IF tiver um programa que você estiver interesse em assistir THEN
  5. Veja a TV
  6. Assista o programa
  7. ELSE
  8. Continue lendo o jornal
  9. IF existe uma palavra cruzada no jornal THEN
  10. Tente completar
  11. ENDIF
  12. ENDIF

Acredito que uma maneira de resolver essa questão é passando o cenário descrito para um pseudocódigo, embora gaste mais tempo. Mas no momento o importante é compreender a questão, leve o tempo que levar.

Analisando o código temos dois IFs, sendo que o primeiro tem um ELSE, e o segundo está associado ao ELSE, ou seja, é dependente do primeiro IF.

Resolução

Cobertura de sentença

Dois testes são necessários: um para passar pelo primeiro IF e outro para passar pelo segundo IF. E passando pelos dois IFs, iremos executar todas as sentenças.

Cobertura de desvio

Já para a cobertura de desvio é preciso 3 testes:

Teste 1

Está passando um bom filme e o cidadão vai assistir. (primeiro IF – verdadeiro)

Teste 2
Está passando o Faustão e o cidadão vai continuar a leitura do jornal de domingo. (primeiro IF – falso)
O cidadão acaba de encontrar uma palavra cruzada e logo tenta completar. (segundo IF – verdadeiro)

Teste 3
Está passando de Volta a Lagoa Azul e o cidadão vai continuar a leitura do jornal. (primeiro IF – falso)
Não há uma palavra cruzada no jornal. (segundo IF – falso)

Resposta

Alternativa: e)  CS = 2 e CD = 3

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q14S2

Essa é uma questão casca grossa. E a principal razão para eu dizer isso, é que ela quebra uma regra que eu tinha: o número de testes para garantir a cobertura de desvio será sempre maior que o número de testes para garantir a cobertura de sentença.

Questão

Dado o seguinte código, qual a alternativa verdadeira:

  1. IF A > B  THEN
  2. C = A – B
  3. ELSE
  4. C = A + B
  5. ENDIF
  6. Read D
  7. IF C = D Then
  8. Print “Error”
  9. ENDIF

a) 1 teste de cobertura de sentença (comando), 3 para a cobertura de desvio
b) 2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio
c) 2 testes de cobertura de sentença (comando), 3 para a cobertura de desvio
d) 3 testes de cobertura de sentença (comando), 3 para a cobertura de desvio
e) 3 testes de cobertura de sentença (comando), 2 para a cobertura de desvio

Análise do código

Temos dois IFs independentes, sendo que o primeiro IF tem um ELSE.

Resolução

Cobertura de sentença

Com um único teste poderíamos garantir quase toda a cobertura de sentença, por exemplo:

Teste 1

A = 20
B = 10
C = será 10
D = 10

Com o teste 1 iremos passar pelo primeiro e segundo IF, porém, não iremos passar pelo ELSE. Portanto precisamos de mais um teste:

Teste 2

A = 0
B = 10
C = será 10 (o valor de C nem interessa nesse teste)
D = 9 (o valor de D nem interessa nesse teste)

Com o teste 2 passamos pelo ELSE, porque A é igual a B e nos levará a linha 4, a única pela qual não tínhamos passado.

Cobertura de desvio

Podemos usar os mesmos testes feitos na cobertura de sentença. Mas com uma diferença: no teste 2, os valores de C e D nos interessam, pois irão cobrir o resultado falso (a não passagem) do segundo IF.

Portanto, com apenas dois testes também alcançamos a cobertura de desvio.

Resposta

Alternativa: b)  2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio

Dica

Adaptando a minha regra inicial: o número de testes para garantir a cobertura de desvio, na maioria das vezes, será maior que o número de testes para garantir a cobertura de sentença.

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q13S2

Retomando o simulado 2. Vamos resolver a questão 13, que é bem simples, comparada as demais apresentadas anteriormente.

Questão

Dado o seguinte código:

  1. Switch PC on
  2. Start “outlook”
  3. IF outlook appears THEN
  4. Send an email
  5. Close Outlook
  6. ENDIF

a) 1 teste de cobertura de sentença (comando), 1 para a cobertura de desvio
b) 1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio
c) 1 teste de cobertura de sentença (comando), 3 para a cobertura de desvio
d) 2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio
e) 2 testes de cobertura de sentença (comando), 3 para a cobertura de desvio

Análise do código

Temos apenas um IF. Ou seja, é mamão com açúcar.

Resolução

Para alcançar a cobertura de sentença precisamos de apenas um teste, no qual iremos passar pelo IF. Ou seja, o outlook irá aparecer e executaremos as linhas 4 e 5, juntamente com as demais.

Já para alcançar a cobertura de desvio precisamos de dois testes, um que passe pelo IF e outro que não passe. Ou seja, num teste o outlook irá aparecer e no outro não.

Não falei que seria fácil. 🙂

Resposta

Alternativa: b)  1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q14S1

Voltando ao simulado 1. Vamos ver a questão de número 14.

Questão

Quantos  casos  de  testes  são  necessários  para  cobrir  todas  as  possibilidades  de
declarações  (caminhos)  para  o  seguinte  fragmento  de  código?  Supondo  que  as  duas
condições são independentes entre elas.
…………

  1. if (Condition 1)
  2. then statement 1
  3. else statement  2
  4. fi
  5. if (Condition 2)
  6. then statement 3
  7. fi

…………
a) 2
b) 3
c) 4
d) Não há como estimar

Análise

A questão pede o total de testes para cobrir todas as possibilidades de declarações (caminhos), ou seja, pede-se a cobertura de cobertura de caminho.

Quanto ao código, podemos perceber que há dois IFs independentes, como o próprio enunciado já fala.

Resolução

A melhor maneira de resolver essa questão é fazendo o fluxo do código para pode visualizar os caminhos existentes:

Fluxo

Olhando a figura acima, podemos visualizar que há 4 caminhos possíveis:

Azul: Condition 1 é verdadeira > executa o statement 1 > Condition 2 é falsa > finaliza

Preto: Condition 1 é verdadeira > executa o statement 1 > Condition 2 é verdadeira>executa o statement 3 > finaliza

Vermelho: Condition 1 é falsa> executa o statement 2 > Condition 2 é verdadeira> executa o statement 3 > finaliza

Verde: Condition 1 é falsa > executa o statement 2 > Condition 2 é falsa > finaliza

Resposta

Alternativa: c)  4

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q12S2

Dois dos assuntos que mais apresentam dificuldade são os de cobertura de sentença (comando) e desvio. E acredito que o motivo é que nós (da área de Teste e Qualidade de Software), na maioria das vezes não somos os responsáveis por usar tais coberturas. E sim os desenvolvedores, já que elas são técnicas baseadas em estrutura.

Irei apresentar a resolução da questão 12 do simulado 2, e em outros posts também abordarei as questões 13, 14 e 15 deste mesmo simulado, que também falam sobre cobertura de sentença (comando) e desvio.

Questão

Dado o seguinte código, o que é verdadeiro sobre o número mínimo de casos de
teste necessários para uma total cobertura de sentença (comando) e desvio:

  1. Read P
  2. Read Q
  3. IF P+Q > 100 THEN
  4. Print “Large”
  5. ENDIF
  6. If P > 50 THEN
  7. Print “P Large”
  8. ENDIF

a) 1 teste de cobertura de sentença (comando), 3 para a cobertura de desvio
b) 1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio
c) 1 teste cobertura de sentença (comando), 1 para a cobertura de desvio
d) 2 testes de cobertura de sentença (comando), 3 para a cobertura de desvio
e) 2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio

Análise do código

Temos dois IFs, e um detalhe importante: são dois IFs independentes, ou seja, o resultado do primeiro IF não impacta no segundo IF.

Resolução

Antes de ir para resolução propriamente dita, é bom lembrar dos conceitos de cobertura de sentença (comando) e da cobertura de desvio:

Cobertura de sentença (comando) = está associada a quantidade de linhas do código que está sendo testada
Cobertura de desvio = está associada a quantidade de desvios que são testados, o que inclui fazer o teste da saída verdadeira e falsa de um desvio (desvio = IF, CASE, SWITCH, WHILE, etc)

Agora vamos para a resolução, usando as duas técnicas:

Sentença (comando)

Com um único teste podemos alcançar a cobertura total de sentença, por exemplo:

P = 100
Q = 1

Iremos passar pelos dois IFs. Logo cobrimos todas as sentenças: 1,2,3,4,5,6,7,8.

Desvio

Já para alcançar a cobertura total de desvio precisamos de dois testes: um que passe pelos dois IFs e outro que não passe por eles, por exemplo:

Teste 1

P = 100
Q = 1

Com estes valores de entrada, iremos passar pelo primeiro IF e também pelo segundo.

Teste 2

P = 50
Q = 1

Com estes valores de entrada, não iremos passar pelo primeiro IF e nem pelo segundo.

Detalhe da questão: No enunciado da questão pede-se “o número mínimo de casos de teste”.

Resposta

Alternativa: b)  1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed