Normalmente, são descobertos defeitos durante o processo de ...
b) ERRADO. Os primeiros trabalhos sobre confiabilidade de software tentaram explorara matemática da teoria da confiabilidade de hardware para a previsão da confiabilidade de software. A maioria dos modelos de confiabilidade relacionada com hardware tem como base falhas devido a desgaste e não as falhas devido a defeitos de projeto. Em hardware, as falhas devido a desgaste físico (por exemplo, os efeitos decorrentes de temperatura, corrosão, choque) são improváveis do que uma falha relacionada ao projeto. Infelizmente, a reciproca é verdadeira para o software. Na realidade, todas as falhas de software podem ser associadas a problemas de projeto ou de implementação, o desgaste não entra em questão.
Fonte: Engenharia de Software - 8ª Edição. Por Roger Pressman, Bruce Maxim
Alternativa correta: B - a confiabilidade de um software apresenta características semelhantes às do hardware onde ele é executado.
A questão trata do tema de verificação e validação em Engenharia de Software, enfocando o processo de identificação e correção de defeitos. A compreensão deste processo é fundamental para garantir a qualidade do software desenvolvido. Vamos analisar a alternativa correta com mais detalhes.
Quando afirmamos que a confiabilidade de um software apresenta características semelhantes às do hardware, estamos ignorando uma diferença fundamental entre essas duas categorias de componentes de um sistema computacional. O software, diferente do hardware, não está sujeito a desgaste físico ou envelhecimento, o que significa que sua confiabilidade não decai com o tempo devido a fatores como fadiga material ou desgaste mecânico. A confiabilidade de um software está mais relacionada à presença de defeitos no código e na lógica de programação, podendo ser afetada por modificações no sistema ou introdução de novos erros durante o processo de manutenção. Portanto, a alternativa B é incorreta, pois propõe uma semelhança que na realidade não existe na forma como software e hardware se comportam em termos de confiabilidade.
É importante notar que a correção de um defeito em software pode, de fato, introduzir novos defeitos, como mencionado na alternativa C. Além disso, um teste bem-sucedido em termos de engenharia de software é aquele que consegue identificar um erro, conforme destacado na alternativa D. Testes de caixa branca, como os mencionados na alternativa E, são realizados com conhecimento da estrutura interna do código e têm como objetivo garantir que todas as rotas possíveis de execução e estruturas de controle funcionem como esperado.
Por fim, a alternativa A menciona a inspeção de todos os caminhos possíveis de um programa, que seria um método de teste exaustivo, o qual é teoricamente possível, mas na prática não é viável devido aos custos e tempo envolvidos, especialmente em sistemas complexos com grande quantidade de caminhos possíveis. Portanto, a alternativa A é uma declaração verdadeira sobre a prática de testes de software.