Fundamentos da Engenharia de Software: Requisitos, Processos e Testes

Classificado em Tecnologia

Escrito em em português com um tamanho de 4,45 KB

Engenharia de Requisitos

A Engenharia de Requisitos é um processo que engloba todas as atividades que contribuem para a produção de um documento de requisitos e sua manutenção ao longo do tempo. O processo de engenharia de requisitos é composto por quatro atividades de alto nível:

  • Identificação;
  • Análise e negociação;
  • Especificação e documentação;
  • Validação.

Este processo deve ser precedido de estudos de viabilidade que, a partir das restrições do projeto, determinam se este é ou não viável e se deve prosseguir para a identificação dos requisitos. Uma outra atividade que se pode considerar que faz também parte deste processo, se incluirmos a fase posterior à produção do documento, é a gestão dos requisitos, sendo que as alterações podem ser causadas pelos mais diversos fatores, desde inovações tecnológicas a mudanças na natureza do negócio, entre outras.

Modelos Prescritivos de Processo (Ciclo de Vida)

Os Modelos Prescritivos de Processo (também conhecidos como Ciclo de Vida) retratam como um processo deveria ser executado. Sendo assim, um modelo prescritivo é uma espécie de recomendação que pode ser adaptada ou melhorada (veja os modelos de melhoria de processo CMMI e SPICE) pela empresa de software que for adotá-la. Os modelos prescritivos de desenvolvimento incluem:

Modelo em Cascata

O modelo em cascata é o modelo prescrito mais antigo e, por isso, é considerado um modelo clássico. Ele sugere uma abordagem sequencial para as atividades do processo.

Modelo Incremental

O modelo incremental pode ser considerado uma evolução do modelo em cascata. Este modelo é composto pelas atividades do modelo em cascata, porém, estas atividades são realizadas repetidamente, ou seja, de forma iterativa.

Modelo RAD

No caso da equipe ser grande, um modelo possível é o modelo RAD (Rapid Application Development). Ele é recomendável quando uma aplicação pode ser modularizada.

Técnicas de Teste de Software

Teste Estrutural (Caixa Branca)

O Teste Estrutural, também conhecido como teste da caixa branca, visa testar o código-fonte, cada linha de código possível, os fluxos básicos e os alternativos.

Testes Não Funcionais

Além dos testes estruturais e funcionais, existem outros tipos de testes que avaliam características específicas do sistema:

  • Stress: Verifica como o sistema é executado com determinados volumes de dados.
  • Execução: Avalia se o sistema atinge o nível desejado de eficiência (também conhecido como Teste de Performance).
  • Recuperação/Contingência: Verifica se o sistema é capaz de retornar ao nível anterior antes de uma falha.
  • Operação: Garante que o sistema opera conforme sua documentação.
  • Conformidade (Compliance): Assegura que o sistema foi desenvolvido conforme padrões e procedimentos.
  • Segurança: Verifica se o sistema está protegido conforme normas e políticas da organização.

Teste Funcional (Caixa Preta)

O Teste Funcional, também conhecido como teste da caixa preta, é baseado na análise funcional do software. Ele garante que os requisitos funcionem conforme o especificado, não se preocupando com a forma como foi implementado. São inseridos alguns dados e espera-se na saída o resultado conforme os requisitos projetados. Os testes funcionais também são classificados e incluem:

  • Requisitos: Verifica se o sistema atende às suas especificações.
  • Regressão: Garante que o sistema ou alguma parte dele não foi afetado por alterações recentes.
  • Tratamento de Erros: Verifica se os possíveis erros são tratados antes que causem falhas.
  • Manual: Envolve a interação humana direta com o sistema.
  • Interfaces de Integração: Verifica a troca de informações entre o sistema e outros sistemas.
  • Controle: Avalia o controle de dados, validações, integridade e logs de auditoria do sistema.
  • Paralelismo: Compara os resultados de versões novas e antigas do sistema para garantir consistência.

Entradas relacionadas: