Você está na página 1de 10

ESTUDOS PARA A PROVA DE CRYS

Pilares da segurança da informação:


Os pilares da segurança da informação são princípios fundamentais que orientam as
práticas de proteção de dados e sistemas. Existem geralmente quatro pilares principais:

• CONFIDENCIALIDADE: Esse pilar se concentra em garantir que apenas pessoas


AUTORIZADAS tenham acesso a informações sensíveis. Isso é alcançado por
meio de medidas como criptografia, controle de acesso e autenticação.

A CONFIDENCIALIDADE visa evitar vazamentos não autorizados de informações.

• INTEGRIDADE: Esse pilar visa manter a precisão e a consistência dos dados. Isso
significa garantir que os dados não sejam alterados de forma não autorizada ou
acidental (Ou seja os dados devem se mater INTEGROS).

A INTEGRIDADE é mantida usando Técnicas como assintaturas digitais e


sistemas de controle de versão

• DISPONIBILIDADE: Este pilar se concentra em garantir que os sistemas e dados


estejam disponíveis quando necessário (O Banco do brasil sempre funcionando
por exemplo).

Isso envolve Medidas para prevenir interrupções, como redundância de


hardware, backups e planos de recuperação de desastres

• AUTENTICIDADE: A autenticidade esta relacionada a verificação da identidade


das partes envolvidas em uma comunicação ou transação (Se eu estiver logado
no meu facebook, a autenticidade GARANTE que sou eu ali logado).

Isso é crucial para evitar a falsificação e garantir que as informações venham de


fontes confiáveis.

A autenticação é geralmente alcançada por meio de senhas, autenticação de


dois fatores e biometria.

• IRRETRATABILIDADE/NÃO REPÚDIO: (IP) não negar quem entrou, mostrar


quem foi. Se tiver problema ver quem foi câmera de segurança
QUALIDADE DE SOFTWARE – ATRIBUTOS INTERNOS/EXTERNOS

• Atributos Internos: São características relacionadas a estrutura interna e ao


código do software, como eficiência e segurança, avaliadas durante o
desenvolvimento.

• Atributos Externos: São características percebidas pelos usuários, como


usabilidade e desempenho, refletindo a experiencia do usuário com o software.

ISO 25000 – Conceitos e Subcaracterísticas

• Funcionalidade: Refere-se à capacidade do software de fornecer funções que


atendam aos requisitos especificados. As subcaracteristicas incluem:
o Adequação: O Software deve fornecer as funções necessárias.
o Acurácia: As funções devem produzir resultados corretos/certeiros.
o Segurança de acesso: O software deve funcionar bem com outros
sistemas.
o Conformidade: O software deve atender a padrões e regulamentos.

• Confiabilidade: Relaciona-se à capacidade do software de desempenhar


consistentemente e sem falhas ao longo do tempo. Subcaracterísticas incluem:
o Maturidade: O software não deve falhar devido a erros.
o Tolerância de falhas: O software deve continuar a funcionar após falhas
menores.
o Recuperabilidade: O Software deve ser capaz de se recuperar de falhas.
o Conformidade: O software deve atender a padrões e regulamentos.

• Usabilidade: Envolve a facilidade com que os usuários podem interagir e usar o


software eficazmente. Subcaracteristicas incluem:
o Compreensibilidade: Os usuários devem entender facilmente como usar
o software.
o Aprendizagem: O software deve ser fácil de aprender.
o Operacionalidade: Os usuários devem realizar tarefas de forma
eficiente.
o Satisfação do usuário: Os usuários devem ficar satisfeitos com a
experiencia geral.
o Conformidade: O software deve atender a padrões e regulamentos.

• Eficiência: Relaciona-se ao desempenho do software em termos de uso de


recursos, como CPU e memória. Subcaracteristicas incluem:
o Comportamento em relação ao tempo: O software deve responder
rapidamente
o Uso de recursos: O software não deve consumir excessivamente
recursos.

• Manutenibilidade: Refere-se à facilidade de manter e evoluir o software.


Subcaracteristicas incluem:
o Testabilidade: O software deve ser fácil de analisar para correções
o Modificabilidade: O software deve ser fácil de modificar.
o Estabilidade: As mudanças não devem causar efeitos colaterais
indesejados (deve ser estável).

• Portabilidade: Envolve a capacidade do software de ser executado em


diferentes ambientes e plataformas (portátil). Subcaracterísticas incluem:
o Adaptabilidade: O software deve ser facilmente adaptável a diferentes
ambientes.
o Instalabilidade: O software deve ser fácil de instalar em diferentes
sistemas.
o Capacidade para substituir: Ela aborda a questão de como um software
pode ser substituído ou atualizado em diferentes contextos e ambientes
de implantação, mantendo sua funcionalidade e eficácia.
Qualidade e Segurança de Sistemas – Consistência.
Consistência em qualidade de sistemas significa que o sistema deve fornecer
resultados uniformes e confiáveis em diferentes cenários. Na segurança de sistemas, a
consistência envolve a aplicação uniforme das politicas de segurança para evitar
brechas. Em ambos os casos, a consistência é essencial para garantir o funcionamento
confiável e a proteção contra ameaças.

Metodologias de desenvolvimento de software – Porque o


método cascata não pode ser considerado um método ágil.
O método cascata é sequencial e rígido, enquanto os métodos ágeis são
flexíveis, iterativos e enfatizam colaboração e entrega incremental. O método cascata
não pode ser considerado ágil devido à sua abordagem inflexível e falta de adaptação a
mudanças de requisitos.

Métodos ágeis – Metodologia aplicada no Framework SCRUM.


O Scrum é um framework ágil para o desenvolvimento de produtos. Ele envolve
papeis como Product Owner, Scrum Master e Equipe de desenvolviment, artefatos
como backlog do produto e backlog da sprint, reuniões de planejamento e revisão.
Sprint é um conjunto de tarefas determinadas por sua ordem de prioridade e por suas
relações que serão executadas em um tempo predeterminado
A autenticidade de 2 fatores na verdade são 3?
A autenticação de dois fatores (2FA) é um método de segurança que
normalmente envolve dois dos três principais fatores de autenticação. Os três fatores
de autenticação são:

• Algo que você sabe: Isso geralmente é uma senha, PIN ou outra informação
secreta que apenas o usuário deve conhecer.

• Algo que você tem: Normalmente algo físico, como um smartphone, um token
de segurança, um cartão inteligente ou um dispositivo de autenticação.

• Algo que você é: Isso se refere a características biométricas, como impressões


digitais, reconhecimento facial ou varredura de retina.

A autenticação de dois fatores geralmente combina os dois primeiros fatores: algo que
você sabe (senha) e algo que você tem (Smartphone). Por isso a autenticação de dois
fatores envolve apenas 2 dos três possíveis. A inclusão do terceiro fator, algo que você
é, é menos comum na autenticação de dois fatores, embora seja possível implementar
autenticação de três fatores pra um nível mais alto ainda de segurança.

TESTE DE SOFTWARE
Qual é o objetivo do teste de software?
Encontrar erros, sempre haverá erros para serem encontrados, se não encontrarmos
mais, quer dizer que os testes não estão sendo implantados de maneira correta, caso
não encontre mais erros com um determinado tipo de teste, é ideal mudar a
metodologia

Onde podemos encontrar os defeitos do software, nas


entradas, na aplicação ou nas saídas?
O teste do software tem que ser sempre executado na camada de aplicação do
sistema
Obs.: Recebe dados = entrada externa | emite saidas, consultas = saída externa |
Onde a gente identifica as falhas, nas entradas, aplicação ou
saidas?
Nas saidas, considerando que a falha é o resultado do defeito e o defeito é um
problema no código ou na logica do programa, podendo ser uma falha potencial no
software. agora a falha é a manifestação visível de um erro durante a execução de um
software, que só ocorre quando um defeito é acionado. Por exemplo, um programa
que trava, retorna um resultado incorreto ou não realiza a função esperada.
Obs.: As entradas são apenas o que vai alimentar esse software, se recebo uma
entrada com erro/essa entrada já possui uma falha, o defeito não é na entrada, o
defeito e ainda na aplicação
A aplicação é o software funcionando, ex de entrada com defeito: cadastrar funcionário
na data de 2024, nesse caso a falha esta na aplicação que não deveria permitir.
A Entrada nunca é a causadora do defeito
Consulta é uma forma de saída ( se no histórico esta dizendo que nasceu em 2024, é
uma falha na aplicação ).

Testes de atividades, Validação e Verificação (V&V), porque


existem?
Na Validação a gente questiona se o software está sendo construído com base no que
o cliente quer, cria, evolui e testa esse software com base no que foi requisitado.
Na Verificação a gente valida se está sendo construído da forma correta, com as
metodologias que foram projetadas desde o início. Se está sendo feito com as
ferramentas corretas.
Ambas precisam ser feitas em toda a etapa de construção do software
Falha de V&V – propor que o código fosse feito em Java, e acabar sendo feito em PHP.
TESTE – Estamos falando do software em execução, teste de validação e teste de
verificação são coisas diferentes de apenas TESTE
V&V aplicamos durante a criação do teste
As atividades de verificação que eu executo sobre os processos do software, não estão
relacionados ao teste em execução. -> Eu posso inspecionar meu código sem executar
ele, ex: eu sei que ta tendo uma falha no meu software, e eu não posso executar aquilo
ali, pois se for executado pode acarretar num problema maior
Como fazer testes dinâmicos?
Podemos fazer testes no protótipo do software (criar um protótipo pra testar), ou
quando o software estiver pronto mesmo.
Inspeções são feitas nas verificações de requisitos, banco de dados, modelos de caso
de uso.
VEV, são os testes que são feitos em qualquer processo de criação de um software,
sem ser esse software em execução, se eu executar o software eu estarei fazendo um
TESTE DINAMICO.
surgiu agora um erro quando eu vou gerar um relatório, isso foi identificado de forma
estática ou dinâmica? Dinâmica!

Conceitos de TESTE
Testes de Desenvolvimento – todos os testes ou verificações que fazemos na
construção do SOFTWARE. Tudo sobre testes ate então foi sobre testes de
desenvolvimento.
Testes de Aceitação (ou testes de release) - testes executados quando estamos
mostrando o software ao cliente, pra entender se é realmente o software que o cliente
espera, por isso chamamos de aceitação.
Testes de Usuário – quando esse software esta em contato com o usuário, e ele vai
interagindo com esse software para ver como funciona, e ate mesmo identificando
falhas

O que quê a gente testa num software?


As funcionalidades (Teste funcional ou teste de acurácia(Precisão do software, se
1+1=2). Testamos a parte funcional do software, o comportamento e etc. Também
testamos a parte não funcional, como velocidade, tempo de resposta, etc.

Qual a diferença entre Requisito Funcional e Não funcional?


Requisito funcional – São as funcionalidades especificas e as ações que o sistema deve
executar. Elas descrevem o que o sistema deve fazer em termos de operações, serviços
ou atividades, ex: cadastro de usuários, realização de cálculos matemáticos, envio de e-
mails.
Requisito não funcional – Refere-se as características que descrevem a qualidade do
sistema, mas não estão diretamente relacionadas as funcionalidades especificas, ex:
tempo de resposta, segurança de dados, usabilidade, acessibilidade, disponibilidade,
portabilidade – São exemplos de requisitos não funcionais que fazem parte da ISO
25000.
Formas de Execução
Teste MANUAL – Exemplo de teste onde o próprio testador executa o teste, através de
um ser humano
Teste HIBRIDO – Parte feito por uma pessoa, parte feita por um software (testar no
software se 1+1 = 2, você digitou os comandos, mas qm realizou foi a maquina)
Teste AUTOMÁTICO – Um teste onde outro software testa o seu software.
Teste de Regressão – Teste para garantir que as alterações feitas no software não
tenham introduzido novos bugs ou degradado o desempenho do software, Ex: testar se
as funcionalidades existentes ainda estão funcionando, testar se o desempenho do
software ainda é aceitável.

Nível de teste de software


Teste de UNIDADE/UNITARIO - Onde eu criei uma linha de código pra executar
determinada função e eu texto apenas aquilo que eu criei, onde testo cada função que
foi criada.
Teste de COMPONENTE/INTEGRAÇÃO – Quando eu preciso unir partes do que já foi
construído. Ex: criando uma calculadora, a parte da soma ta funcionando legal, ai eu
criei lá a função de subtração, preciso testar agora de 1+1-1 = 1, isso é o teste de
componente ou integração. Ex: Testar se um módulo usa corretamente um recurso de
outro módulo.
Teste de SOFTWARE/OPERACIONAL – Se está tudo funcionando de modo homogêneo,
meio que o teste final. Ex: verificar se o software é fácil ou intuitivo, verificar se o
software pode lidar com um volume de dados e solicitações esperado.

Técnicas de Teste
Teste de CAIXA PRETA – São testes que conseguem executar sem acessar o código fonte
– não acessa o código –
Teste de CAIXA BRANCA – Testa o código em si – Acessa o código fonte –
Teste de REGRESSÃO – Toda vez que for feita uma modificação no meu software, eu
preciso ir lá e verificar se meu software regrediu (uma função que funcionava bem,
agora apresenta BUGS)
Teste de INTERFACE - Teste pra saber se o software está atendendo os requisitos
visualmente.
Teste de ACEITAÇÃO – É quando tem o release, teste se o cliente aceita ou não.
Teste de STRESS – Teste aonde induz ao software fazer várias funcionalidades ao
mesmo tempo pra ver como ele se comporta.
Teste de CONFIGURAÇÃO – Ver como o software e o hardware se comportam em
diferentes maquinas.
Teste de INSTALAÇÃO – Pra saber se esse software pode ser instalado sem problemas.
Teste de SEGURANÇA – Testes para validar se o software tem alguma falha de
segurança, alguma falha de disponibilidade, porta desajustada, etc.

Relembrando alguns conceitos de Pontos de Função


O que é a camada de aplicação?
É tudo que está contido dentro do software basicamente.

O que é o arquivo logico interno e o arquivo logico externo?


Arquivo logico interno: Ou ALI, é um grupo de dados em que estão armazenadas as
informações que são necessárias para o funcionamento da aplicação, como dados de
clientes, produtos, pedidos ou transações. Geralmente, uma ALI é um conjunto de
dados logicamente relacionados que são mantidos e gerenciados internamente pelo
sistema.
Arquivo logico externo: Ou ALE, é um arquivo logico referenciado pela aplicação, mas
que é mantido externamente a aplicação, e está sendo contatada. Ele é mantido e
controlado por outro aplicativo ou processo. Ex: Banco de dados de clientes, Sistema
de faturamento.

TD’s e TR’s
Tipos de Dados: São a quantidade de dados que a gente busca/precisa quando a gente
vai fazer uma entrada no sistema, ou quando a gente está solicitando uma saída ou
uma consulta, o TD sendo o dado em si.
Tipos de Registro: São estruturas de dados que são usadas para armazenar dados
relacionados é o que a gente trata como arquivos referenciados, que é onde esses
dados estão armazenados, quais são as classes e as tabelas que armazenam esses
dados.

Como contamos as TR’s?


Contando a quantas tabelas a tela referência.

O que é Entrada, Saida & Consulta Externa?


EE – Entrada Externa, seria a inserção de dados no sistema (Cadastro). Transações
destinadas a manter arquivos internos.
CE – Consulta Externa, seria uma consulta de resultado de uma pesquisa de um
funcionário num banco de dados, acessar dados já existentes.
SE – Saida Externa, é um tipo de transação que envia dados ou informações para fora
de uma aplicação, os dados podem ser enviados para um usuário, outro sistema ou
outro dispositivo, ex: Envio de um email, envio de mensagem de texto, uma notificação
de email, etc.

COMO CALCULAR PONTO DE FUNÇÃO


Considerando que: descobrimos a quantidade de PF numa tela analisando TD e TR,
temos um total de 78PF, o Cliente exigiu o software feito em java, e o java tem o valor
de 5h/PF, MULTIPLICAMOS então os pontos de função pelas horas-> 78*5 = 390
HORAS.
O valor da hora Java é avaliado em R$21 Reais, então multiplicamos 21 por 390
21*390=8190
Podemos assim inferir que a aplicação tem um custo de aproximadamente R$ 8190,00.

Você também pode gostar