Testes QA de Sistemas Online
Introdução
A iTech Labs efetua há muitos anos testes de controlo de qualidade para sistemas online para clientes em todo o mundo. Os nossos testes de Quality Assurance têm como objetivo melhorar os testes internos de quality assurance do provedor de software, os testes de aceitação do utilizador do software, os testes de aceitação de utilizador do cliente e/ou testes de pré-certificação.
Estes rentáveis serviços de testes de software são facultados pelos nossos laboratórios de testes de software na Austrália, Europa e Ásia.
Testes de Quality Assurance/Âmbito dos Testes de Aceitação do Utilizador do Software
Estes testes de quality assurance de software são efetuados tendo em consideração as especificações ou os scripts de testes facultados pelo provedor do software ou pelo utilizador final. Os nossos testes de quality assurance de software incluirão normalmente os seguintes itens: facilidade de utilização, fiabilidade, desempenho, interrupções, emulações, simulações, e mais consoante necessário. O objetivo dos nossos Testes de Quality Assurance/Teste de Aceitação do Utilizador do Software não é apenas o de cumprir as especificações, mas também cumprir os requisitos empresariais do cliente.
Âmbito dos Testes de Pré-Certificação
Os testes de pré-certificação são primeiramente efetuados tendo em conta os standards aplicáveis. Contudo, os nossos testes de software também incluirão: especificações, disrupções, emulações, simulações, e mais consoante necessário. O objetivo dos testes de pré-certificação é garantir que o software cumpre a compliance, reduzindo dessa forma o tempo e o custo envolvido para os testes posteriores de compliance de software.
Os nossos testes de software incluirão qualquer combinação dos seguintes, mediante o necessário:
- Testes de unidade
- Testes funcionais
- Testes de regressão
- Testes de emulação
- Testes de simulação
- Testes de integração
- Testes de desempenho
- Avaliações matemáticas/estratégicas
- Avaliação de segurança de aplicações
- Testes de compatibilidade de browser e SO
- Testes móveis (iOS e Android)
- Revisão de Código-fonte
- Revisão de documentação
- Geração de Scripts de Teste
Para mais informações sobre testes de Quality Assurance, por favor visite nosso site QA: www.itechqalabs.com
Os Testes de Unidade asseguram que podemos encontrar qualquer problema existente no início do ciclo de desenvolvimento. O objetivo dos Testes de Unidade passa por isolar cada parte do programa e revelar se as peças individuais estão corretas. A identificação de bugs e problemas de software numa fase inicial garante que eles não progridem e alcançam estratos mais profundos do seu programa. Isto poupa-lhe maiores investimentos em testes e desenvolvimento no futuro, refletidos em tempo e dinheiro. Nos Testes de Unidade, cada módulo de software, juntamente com os dados de controlo associadas, procedimentos de utilização e procedimentos operacionais, é testado para determinar se é adequado para utilização. Também usamos substitutos como métodos stub, objetos mock e cinturas de teste para ajudar a testar um módulo de forma isolada.
Os Teste de Unidade são então seguidos por Testes de Regressão após a correção de quaisquer bugs, e os Testes de Integração são executados depois da conclusão dos Testes de Unidade.
Os Testes Funcionais têm por base as especificações e/ou regulamentos governamentais aplicáveis. Os Testes Funcionais exercem a lógica de software para produzirem os resultados esperados para vários inputs ou, dito de forma sucinta, para garantir que o software faz o que é suposto.
Os Testes Funcionais normalmente envolvem o seguinte:
- Identificação de quaisquer regulamentos governamentais aplicáveis que se espera que o software cumpra
- Identificação de todas as funções que se espera que o software cumpra
- Criação de dados input e determinação de output
- Execução de casos de teste
- Comparação dos resultados esperados e reais
- Verificação se a aplicação funciona como esperado
Os Testes Funcionais não implicam testar uma função ou método – os nossos Teste Funcionais vão ainda mais longe em profundidade, e testam uma parte da funcionalidade de todo o sistema (também conhecido como teste end-to-end).
Os Testes de Integração são efetuados para expor quaisquer defeitos nas interfaces do software, bem como quaisquer defeitos nas interações entre os módulos do sistema. Os Teste de Integração são efetuados os Testes de Unidade estarem completos.
Durante os Testes de Integração, são exercidos todos os módulos e interfaces, e os casos de sucesso e erro são simulados através de parâmetros adequados e inputs de dados. São testadas as áreas de dados partilhados da utilização simulada e a comunicação entre processos, e os subsistemas são exercidos através das suas interfaces de input.
Os testes de desempenho determinam como a sua aplicação irá funcionar em termos de agilidade e estabilidade, quando submetida a uma determinada carga de trabalho. Também podem ser úteis para medir, validar ou verificar outros atributos do sistema, como escalabilidade, fiabilidade e utilização de recursos. Temos vários anos de experiência em Testes de Desempenho para garantir que o seu pedido chega aos seus clientes com o mais alto nível de qualidade possível.
Testes de Carga
Os Testes de Carga são o método mais simples dentro dos testes de desempenho. Um teste de carga é geralmente efetuado a fim de compreender o comportamento do sistema quando submetido a uma carga. Esta carga pode ser o número esperado e simultâneo de utilizadores na aplicação ao mesmo tempo, a execução de um número específico de operações dentro da duração definida. Se a base de dados e o servidor de aplicações forem também monitorados, este teste pode indicar pontos de dificuldade no software de aplicação.
Teste de Stress
Os Testes de Stress são habitualmente usados para compreender os limites máximos de capacidade no seu sistema. Este teste é efetuado para determinar a robustez da sua aplicação quando submetida a uma carga extrema, e ajuda a compreender se a sua aplicação irá ter um desempenho adequado caso a carga atual suba bastante acima do máximo esperado.
Os Testes de Compatibilidade do Browser & SO são levados a cabo em PCs e dispositivos móveis conforme necessário, para garantir que o software funciona tranquila e profissionalmente em todos os dispositivos. A compatibilidade do browser & SO é testado em todos os SO e combinações de browsers. Apenas os testes relacionados com o front end são conduzidos durante esta fase.
Temos bastantes anos de experiência em testes em várias configurações de SO e browsers em PCs e dispositivos móveis, e têm todo o equipamento necessário para testar na maioria dos dispositivos, com o mais elevado nível de precisão. Os nossos Testes de Compatibilidade de Browser e SO também pode ser adaptados para atender às suas necessidades individuais.
Os Testes de Segurança englobam todas as medidas tomadas ao longo do ciclo de vida do código, a fim de circunscrever lacunas na política de segurança do seu software, ou de quaisquer vulnerabilidades subjacentes ao sistema. Estes podem emergir em falhas no sistema, desenvolvimento, implementação, atualização ou manutenção da aplicação, e são incrivelmente simples de negligenciar por parte de pessoas internas ou inexperientes.
Ameaças de segurança comuns são abaixo mostradas:
Categoria | Ameaças/Ataques |
---|---|
Validação de Input | Excesso de buffer; scripting transversal a vários sites, injeção SQL; normalização |
Falsificação de Software | O atacante altera o comportamento no tempo de execução para realizar ações não autorizadas; uma falha explorada através de patching binário, da substituição de código ou daextensão de código |
Autenticação | Espionagem de rede; Ataques de força bruta; ataques de dicionário; repetição de cookies; roubo de credenciais |
Autorização | Aumento de privilégios; divulgação de dados confidenciais; violação de dados; ataques-chamariz |
Gestão de Configuração | Acesso não autorizado a interfaces de administração; acesso não autorizado a armazenamentos de configuração; recuperação de dados de configuração em texto claro não criptografado; ausência de responsabilidade individual; processo excessivamente privilegiado e contas de serviço |
Informações Sensíveis | Acesso a código ou dados sensíveis em armazenamento; espionagem na rede; código/violação de dados |
Gestão de Sessão | Sequestro de sessão; repetição de sessão; man-in-the-middle |
Criptografia | Débil geração ou gestão de chaves; encriptação fraca ou personalizada |
Manipulação de Parâmetros | Manipulação de cadeias de consulta; manipulação de campo de formulário; manipulação de cookies; manipulação de cabeçalhos HTTP |
Gestão de Exceções | Divulgação de informações; recusa de serviço |
Auditoria e Registos | O utilizador recusa a execução de uma operação; o atacante explora uma aplicação sem deixar vestígios; o atacante cobre os seus rastos |
Os testes de segurança verificam se existem quaisquer vulnerabilidades ou falhas de segurança no software. Caso não sejam testadas, estas vulnerabilidades deixam o seu software e clientes expostos à exploração de brechas.
As ferramentas automatizadas associadas à segurança: deteção de vulnerabilidades, ferramentas de testes de penetração e ferramentas de análise de código.
Os Testes de Regressão têm como intento por a nu quaisquer bugs de software nos módulos existentes de uma aplicação, após alterações como melhorias, correções ou alterações de configuração terem sido feitas a um módulo. A finalidade dos Testes de Regressão passa por garantir que as mudanças de software não introduziram novos bugs nos módulos relacionados da sua aplicação.
Os Testes de Regressão são efetuados para testar uma aplicação de forma eficiente, ao selecionarem sistematicamente um conjunto mínimo de testes, em vez de reexecutarem testes completos anteriormente concluídos. Isto poupa-lhe tempo e dinheiro.
Os testes de regressão podem ser feitos manualmente ou recorrendo a ferramentas automatizadas.
Em muitas aplicações críticas com supervisão regulamentar, o código crítico deve ser revisto de forma independente, sendo depois compilado sob a supervisão de um laboratório de testes independente. A Revisão do Código-fonte geralmente envolve o uso de valores input, lógica e parâmetros que determinam os valores output, e a procura de cavalos de Troia e códigos maliciosos. A Revisão do Código-fonte podem ser adaptados para atender às suas necessidades individuais. Nós oferecemos uma análise manual e automatizada do software.
Os nossos consultores têm uma vasta experiência em revisão de código crítico e na efetuação de builds remotos e supervisionados.