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
- Executar o programa com a intenção de descobrir erros.
- Um bom teste tem alta probabilidade de encontrar um erro ainda não detectado.
- 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.