# data[].attributes.body
Quando juntamos os dois conceitos de Validação e Verificação de Software é possível avaliar se ele atende à demanda que o fez necessário em primeiro lugar e, posteriormente, se ele foi construído corretamente, sem apresentar falhas, problemas e possíveis bugs.

Para isso são realizados, dentre outras tarefas, a revisão dos requisitos, de modelos, inspeção do código e outras revisões e inspeções técnicas em geral. Uma vez que os processos de V&V estejam validados é possível passar para a parte final do desenvolvimento de um software: os testes.

# data[].attributes.headline
Demostrativo de Teste com o Selenium IDE

# data[].attributes.subject
Demostrativo de Teste com o Selenium IDE

# data[].attributes.body
Analisa o sistema como um todo.

# data[].attributes.body
Testa se todos os módulos do sistema funcionam bem juntos.

# data[].attributes.body
Testa componentes individuais de forma que cada parte do sistema seja analisado independente dos demais.

# data[].attributes.body
Os testes estruturais, também chamados de caixa-branca, avaliam e validam o código-fonte da aplicação, os diferentes algoritmos envolvidos nas decisões lógicas e, por fim, as estruturas de dados. De modo geral, esse tipo de teste simula diferentes valores de entrada, examinando cada um dos possíveis fluxos de execução dentro de funções, classes, módulos, entre outros, e verificando se os valores de saída retornam corretamente.

# data[].attributes.body
Nesse tipo de teste, um código será estruturado a partir da visão do usuário, objetivando testar dados de entradas e de saídas do sistema, cliques, navegabilidade e usabilidade. Além disso, o resultado obtido é comparado a um previamente conhecido, permitindo identificar erros de:

funções incorretas ou ausentes;

interface;

estruturas de dados;

acesso a bancos de dados externos;

desempenho; e

inicialização e término.

# data[].attributes.body
De acordo com a característica ou o atributo de qualidade que se pretende avaliar na aplicação de um site, que podem estar relacionadas a usabilidade, confiabilidade, desempenho, manutenibilidade etc., aplica-se um conjunto de estratégias para encontrar falhas.

# data[].attributes.body
Grupo:
- Raickson Almeida Duarte
-  Maycon. L. Barros da Silva

# data[].attributes.headline
Capacidade do sistema ser transferido de um ambiente para outro (por exemplo, sistemas operacionais, diferentes versões de banco de dados etc.), apresentando fácil adaptação (adaptabilidade), instalação (capacidade de ser instalado), relação com outros ambientes e softwares (coexistência) ou substituição (capacidade para substituir).

# data[].attributes.subject
Capacidade do sistema ser transferido de um ambiente para outro (por exemplo, sistemas operacionais, diferentes versões de banco de dados etc.), apresentando fácil adaptação (adaptabilidade), instalação (capacidade de ser instalado), relação com outros ambientes e softwares (coexistência) ou substituição (capacidade para substituir).

# data[].attributes.headline
A manutenibilidade está relacionada à capacidade do site ser facilmente modificado e testado (modificabilidade e testabilidade), apresentando estabilidade e fácil identificação de erros decorrentes dessas modificações (analisabilidade).

# data[].attributes.subject
A manutenibilidade está relacionada à capacidade do site ser facilmente modificado e testado (modificabilidade e testabilidade), apresentando estabilidade e fácil identificação de erros decorrentes dessas modificações (analisabilidade).

# data[].attributes.headline
Um site é considerado eficiente quando apresenta:velocidade;escalabilidade.Esses conceitos serão aprofundados ao longo deste desafio.

# data[].attributes.subject
Um site é considerado eficiente quando apresenta:velocidade;escalabilidade.Esses conceitos serão aprofundados ao longo deste desafio.

# data[].attributes.headline
Um site usual é aquele que apresenta informações claras e cuja navegação é facilmente compreendida e aprendida pelo usuário (inteligibilidade e apreensibilidade), permitindo a realização de tarefas sem dificuldade (operacionalidade), além de prevenir erros e apresentar interface agradável (atratividade) e acessível.

# data[].attributes.subject
Um site usual é aquele que apresenta informações claras e cuja navegação é facilmente compreendida e aprendida pelo usuário (inteligibilidade e apreensibilidade), permitindo a realização de tarefas sem dificuldade (operacionalidade), além de prevenir erros e apresentar interface agradável (atratividade) e acessível.

# data[].attributes.headline
Está relacionada à entrada e saída de dados para o usuário, garantindo que a aplicação funcione como esperado em situações normais e anormais. Além disso, deve-se evitar falhas (maturidade), manter um nível de desempenho mínimo e recuperar dados afetados, caso ocorra algum problema (tolerância a falhas e recuperabilidade).

# data[].attributes.subject
Está relacionada à entrada e saída de dados para o usuário, garantindo que a aplicação funcione como esperado em situações normais e anormais. Além disso, deve-se evitar falhas (maturidade), manter um nível de desempenho mínimo e recuperar dados afetados, caso ocorra algum problema (tolerância a falhas e recuperabilidade).

# data[].attributes.headline
Um site funcional é o que satisfaz a necessidade do usuário, atendendo a tarefas e objetivos específicos (adequação), apresentando resultados corretos (acurácia); interagindo com outros sistemas (interoperabilidade) e protegendo dados e informações (segurança).

# data[].attributes.subject
Um site funcional é o que satisfaz a necessidade do usuário, atendendo a tarefas e objetivos específicos (adequação), apresentando resultados corretos (acurácia); interagindo com outros sistemas (interoperabilidade) e protegendo dados e informações (segurança).

# data[].attributes.body
Verificação;
Validação.

# data[].attributes.body
Unidade
Integraqção
E2e

# data[].attributes.body
Existem várias técnicas utilizadas para se testar uma aplicação de Front-End. A seguir, apresentaremos os testes funcionais (caixa-preta) e estruturais (caixa-branca).

# data[].attributes.body
Interface do usuário
Integração
Testes de Unidade

# data[].attributes.body
-Os testes deixaram de ter apenas um olhar sobre a detecção de bugs no final do ciclo e passou a ser entendido como prevenção de falhas.

# data[].attributes.body
Interface do usuário
Integração

Teste de Unidade

# data[].attributes.body
ADVANCING technology for humanity. IEEE, abr. 2021. Disponível em: https://www.ieee.org/. Acesso em: 19 maio 2021.

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 9126-1: Engenharia de software: Qualidade de produto: Parte 1: Modelo de qualidade. Rio de Janeiro, 2003.

MICROSOFT. Docs Teste de unidade C# com MSTest e .NET. Disponível em: https://docs.microsoft.com/pt-br/dotnet/core/testing/unit-testing-with-mstest. Acesso em: 23 junho 2021.

BEST test plan templates with examples. EasyQA. Disponível em: https://geteasyqa.com/qa/best-test-plan-template/. Acesso em: 19 maio 2021.

MICROSOFT. Docs. Introdução ao teste de unidade. Disponível em: https://docs.microsoft.com/pt-br/visualstudio/test/getting-started-with-unit-testing?view=vs-2019&tabs=mstest. Acesso em: 02 julho 2021.

# data[].attributes.body
End-to-end (e2e), de uma ponta a outra, reproduz o fluxo de interações do usuário com o sistema, a partir de um contexto real.
Por exemplo: testar se a agenda mostra corretamente o calendário, as datas e os horários disponíveis, se as mensagens de sucesso ou de alerta de sobreposição de eventos aparecem corretamente, se é possível deletar ou mover eventos corretamente, entre outros.

# data[].attributes.body
As unidades da aplicação desenvolvidas separadamente funcionam bem em conjunto?
Essa é a função da Integração: testar se a data e o horário da agenda estão no mesmo formato e funcionando em conjunto (se comunicando).
O que aconteceria se a data estivesse formatada em 24 horas e o horário estivesse formatado em dois períodos de 12 horas? Uma reunião às 15h seria agendada corretamente?

# data[].attributes.body
Testam um pedaço ou uma unidade de código de uma aplicação isoladamente, sem atingir várias camadas de um sistema, identificando erros com rapidez, precisão e baixo custo.
Por exemplo: testar se o campo para entrada de data ou de horário está no formato estabelecido para inserir uma reunião na agenda.