Prévia do material em texto
Material 46: Engenharia de Software – Teste de Software 1. O que é teste de software? Qual seu principal objetivo? a) É o mesmo que debugging (depuração), ou seja, encontrar e corrigir erros no código-fonte. b) É um processo que se concentra apenas na execução do software, sem planejamento prévio. c) É um processo sistemático de planejamento, projeto (design), execução, avaliação e documentação de testes, com o objetivo principal de encontrar defeitos (bugs/falhas), verificar se o software atende aos requisitos (funcionais e não funcionais) e avaliar sua qualidade antes de ser liberado para uso. d) É uma atividade opcional no desenvolvimento de software, usada apenas em projetos grandes. e) É responsabilidade exclusiva dos usuários finais do software. Resposta: c) É um processo sistemático de planejamento, projeto (design), execução, avaliação e documentação de testes, com o objetivo principal de encontrar defeitos (bugs/falhas), verificar se o software atende aos requisitos (funcionais e não funcionais) e avaliar sua qualidade antes de ser liberado para uso. 2. Quais são os níveis de teste de software mais comuns e o que cada um testa? a) Teste alfa e teste beta: ambos testam o software completo, mas em ambientes diferentes (teste alfa em ambiente de desenvolvimento/teste, teste beta com usuários reais). b) Teste de caixa preta e teste de caixa branca: ambos testam funcionalidades, mas com abordagens diferentes (caixa preta sem conhecer o código, caixa branca conhecendo o código). c) Teste de unidade (testa componentes individuais, ex: funções), teste de integração (testa a interação entre componentes), teste de sistema (testa o sistema completo e integrado) e teste de aceitação (testa se o sistema atende aos requisitos do usuário e está pronto para uso). d) Teste estático e teste dinâmico: ambos testam o software, mas o teste estático não executa o código (ex: revisão de código), enquanto o teste dinâmico executa. e) Teste funcional e teste não funcional apenas. Resposta: c) Teste de unidade (testa componentes individuais, ex: funções), teste de integração (testa a interação entre componentes), teste de sistema (testa o sistema completo e integrado) e teste de aceitação (testa se o sistema atende aos requisitos do usuário e está pronto para uso). 3. O que é o teste de unidade? Quem geralmente o realiza? a) É o teste do sistema completo, verificando se todos os requisitos foram implementados. b) É o teste da interface com o usuário, verificando se é fácil de usar. c) É o teste de componentes individuais do software (ex: funções, métodos, classes, módulos) isoladamente, para verificar se cada unidade funciona conforme especificado. Geralmente, é realizado pelos próprios desenvolvedores. d) É o teste realizado pelos usuários finais em ambiente real de uso. e) É o teste de desempenho do sistema sob carga. Resposta: c) É o teste de componentes individuais do software (ex: funções, métodos, classes, módulos) isoladamente, para verificar se cada unidade funciona conforme especificado. Geralmente, é realizado pelos próprios desenvolvedores. 4. O que é o teste de integração? Qual seu objetivo principal? a) Testar cada função do software separadamente. b) Testar o software do ponto de vista do usuário final. c) Testar a interação entre dois ou mais componentes (módulos, subsistemas) do software, que já foram testados unitariamente, para verificar se eles funcionam corretamente em conjunto e se a comunicação entre eles está adequada. O objetivo é encontrar defeitos nas interfaces e na interação. d) Testar a velocidade de processamento do software. e)Testar a segurança Resposta: c) Testar a interação entre dois ou mais componentes (módulos, subsistemas) do software, que já foram testados unitariamente, para verificar se eles funcionam corretamente em conjunto e se a comunicação entre eles está adequada. O objetivo é encontrar defeitos nas interfaces e na interação. 5. O que é o teste de sistema? a) É sinônimo de teste de unidade. b) É um teste que se concentra apenas na interface gráfica do usuário. c) É um teste end-to-end (ponta a ponta) que avalia o sistema completo e integrado, verificando se ele atende a todos os requisitos, tanto funcionais (o que o sistema deve fazer) quanto não funcionais (desempenho, segurança, usabilidade, etc.). d) É um teste realizado apenas por testadores, nunca por desenvolvedores. e)É um teste opcional Resposta: c) É um teste end-to-end (ponta a ponta) que avalia o sistema completo e integrado, verificando se ele atende a todos os requisitos, tanto funcionais (o que o sistema deve fazer) quanto não funcionais (desempenho, segurança, usabilidade, etc.). 6. O que é o teste de aceitação? Quem o realiza (ou é responsável por ele)? a) É o mesmo que teste de sistema, mas com outro nome. b) É um teste que verifica apenas a correção do código-fonte. c) É um teste formal realizado para determinar se um sistema de software satisfaz os critérios de aceitação definidos e para permitir que o cliente/usuário (ou alguém em seu nome) decida se aceita ou não o sistema. d) É um teste realizado apenas pelos desenvolvedores, em ambiente de desenvolvimento. e) É um teste que verifica apenas a velocidade Resposta: c) É um teste formal realizado para determinar se um sistema de software satisfaz os critérios de aceitação definidos e para permitir que o cliente/usuário (ou alguém em seu nome) decida se aceita ou não o sistema. 7. Qual é a principal diferença entre teste de caixa preta (black-box testing) e teste de caixa branca (white-box testing)? a) Não há diferença; são apenas termos diferentes para a mesma técnica de teste. b) O teste de caixa preta se concentra em testar a interface do usuário, enquanto o teste de caixa branca se concentra em testar a lógica interna do programa. c) O teste de caixa preta testa o software sem conhecimento de sua estrutura interna (código-fonte, arquitetura), focando nas entradas e saídas e nos requisitos funcionais; o teste de caixa branca testa o software com conhecimento de sua estrutura interna, focando nos caminhos do código, na cobertura de código e na lógica interna. d) O teste de caixa preta é sempre realizado por testadores, enquanto o teste de caixa branca é sempre realizado por desenvolvedores. e)O teste de caixa branca é mais eficiente Resposta: c) O teste de caixa preta testa o software sem conhecimento de sua estrutura interna (código-fonte, arquitetura), focando nas entradas e saídas e nos requisitos funcionais; o teste de caixa branca testa o software com conhecimento de sua estrutura interna, focando nos caminhos do código, na cobertura de código e na lógica interna. 8. O que é teste de regressão? a) Um teste que verifica se o software regrediu em termos de qualidade. b) Um teste que verifica se novas funcionalidades adicionadas ao software não introduziram novos defeitos ou regrediram funcionalidades existentes que funcionavam anteriormente. É executado sempre que há modificações no software. c) Um teste que verifica apenas a interface do usuário. d) Um teste que verifica apenas o desempenho do software. e) Um teste que verifica apenas a segurança do software. Resposta: b) Um teste que verifica se novas funcionalidades adicionadas ao software não introduziram novos defeitos ou regrediram funcionalidades existentes que funcionavam anteriormente. É executado sempre que há modificações no software. 9. O que são testes funcionais? a) Testes que verificam se o software funciona de acordo com os requisitos não funcionais. b) Testes que verificam se o software funciona de acordo com os requisitos funcionais, ou seja, se ele faz o que deveria fazer (as funcionalidades especificadas). c) Testes que verificam apenas a velocidade do software. d) Testes que verificam apenas a aparência do software. e)Testes que não verificam a correção.Resposta: b) Testes que verificam se o software funciona de acordo com os requisitos funcionais, ou seja, se ele faz o que deveria fazer (as funcionalidades especificadas). 10. O que são testes não funcionais? Cite exemplos. a) Testes que verificam se o software faz o que deveria fazer. b) Testes que verificam como o software faz o que deve fazer, ou seja, aspectos de qualidade como desempenho, segurança, usabilidade, confiabilidade, portabilidade, manutenibilidade, etc. Exemplos: teste de desempenho, teste de carga, teste de estresse, teste de segurança, teste de usabilidade. c) Testes que verificam apenas a interface do usuário. d) Testes que são opcionais no desenvolvimento de software. e)Testes que verificam apenas a correção do código. Resposta: b) Testes que verificam como o software faz o que deve fazer, ou seja, aspectos de qualidade como desempenho, segurança, usabilidade, confiabilidade, portabilidade, manutenibilidade, etc. Exemplos: teste de desempenho, teste de carga, teste de estresse, teste de segurança, teste de usabilidade.