Segurança e Testes de Software: Guia Completo

Classificado em Computação

Escrito em em português com um tamanho de 3,9 KB

Segurança da Informação

A segurança do computador é a área da ciência da computação que se centra em proteger a infraestrutura informática e tudo o que lhe está associado, incluindo a informação. Para isso, existem normas, protocolos, métodos, regras, instrumentos e leis destinados a minimizar os riscos para a infraestrutura ou dados.

O que é Criptografia

Pode ser entendida como um conjunto de técnicas que resolvem problemas de segurança da informação: autenticidade, confidencialidade, integridade e não repúdio.

Diferença entre Criptografia Simétrica e Assimétrica

A diferença principal é que, na criptografia simétrica, a chave para criptografar e descriptografar é a mesma. Já na assimétrica, utiliza-se uma chave para criptografar e outra diferente para descriptografar. A criptografia simétrica engloba cifras de bloco, cifras de fluxo e funções de hash.

Níveis de Segurança

Os usuários finais muitas vezes ignoram aspectos de segurança, percebendo-os como um incômodo, pois a segurança pode ser o oposto da facilidade de utilização. Em um ambiente seguro, o usuário pode enfrentar tarefas desconfortáveis (como lembrar senhas e trocá-las regularmente), o que pode limitar operações e acessos.

Por que testar o software durante o desenvolvimento?

Como os processos de desenvolvimento de software tendem a ser caóticos, é necessário envolver processos de garantia de qualidade. O custo de corrigir um defeito descoberto em estágios avançados é muito alto, tanto em orçamento quanto em cronograma. Por isso, implementamos testes desde o início.

O teste envolve operar o sistema sob condições controladas (normais ou anormais) para avaliar resultados e identificar falhas.

Vantagens dos Testes no Desenvolvimento

  • Redução de defeitos: Evita que novas funcionalidades quebrem o que já estava funcionando.
  • Funcionalidade garantida: Facilita a compreensão do código através de documentação técnica concisa.
  • Redução de custos: Evita a descoberta de falhas apenas no final do projeto.
  • Facilidade de redistribuição: Permite reimplementar funcionalidades com segurança e critérios de aceitação claros.
  • Restrição de escopo: Ajuda programadores a focar no que é essencial conforme a especificação.
  • Desenvolvimento mais rápido: Permite descartar erros rapidamente e focar em novas funcionalidades.

Quem deve realizar os testes?

Os testes devem ser executados por pessoal diferente de quem realizou a análise, o design e, principalmente, a programação. Os papéis principais são:

  • Analistas, Designers e Desenvolvedores: Possuem um ponto de vista criativo, mas podem não detectar todos os defeitos do que eles mesmos criaram.
  • Tester (Testador): Foca nas regras de negócio e requisitos, adotando uma postura analítica para encontrar falhas na funcionalidade desenvolvida por terceiros.

O que é o Teste de Software

Processos que permitem verificar e garantir a qualidade de um produto de software, identificando falhas de execução ou utilização.

Objetivos dos Testes

  1. Executar o programa com a intenção de descobrir erros.
  2. Um bom teste tem alta probabilidade de encontrar um erro ainda não detectado.
  3. Um teste é bem-sucedido se descobre um erro. Além do código, deve-se testar documentação e suporte.

Ferramentas para Teste de Software

As ferramentas de teste auxiliam equipes a investigar erros e garantir que o software seja seguro e confiável. Existem soluções específicas para cada fase do ciclo de desenvolvimento, desde conjuntos integrados até ferramentas focadas em etapas específicas.

Entradas relacionadas: