Este documento apresenta uma introdução ao teste de software, abordando os seguintes tópicos: (1) conceitos básicos de teste de software como defeitos, erros e falhas; (2) objetivos do teste de software como garantir a qualidade e revelar erros; (3) diferentes fases e técnicas de teste como teste de unidade, integração e funcional.
O documento apresenta uma introdução ao teste de software, abordando conceitos como defeitos, erros e falhas. Explica que o objetivo do teste é revelar a presença de erros no programa, discute técnicas como teste de unidade, integração e sistema, e critérios como particionamento em classes de equivalência e análise de valor-limite. Também menciona a importância da automatização dos testes e ferramentas para apoiar a aplicação dos critérios.
O documento apresenta conceitos fundamentais sobre teste de software, incluindo:
1) Terminologia sobre defeitos, erros e falhas;
2) Fases e etapas do teste de software, como teste de unidade, integração e sistema;
3) Técnicas e critérios de teste, como particionamento em classes de equivalência e análise de valor limite.
O documento introduz conceitos básicos sobre teste de software, incluindo: 1) Teste de software é o processo de execução de um produto para determinar se atendeu suas especificações; 2) Existem diferentes níveis de teste como unidade, integração e sistema; 3) Critérios de teste como particionamento de classes de equivalência e análise de valor limite são usados para gerar casos de teste.
O documento discute processos de verificação e validação (V&V) para software, incluindo inspeções de código, testes de software e abordagens como Cleanroom. Ele explica a diferença entre verificação e validação, métodos como inspeções de software e análises estáticas automatizadas, e fatores importantes para o planejamento de V&V.
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
1) O documento discute os conceitos e técnicas de teste de software, incluindo os objetivos dos testes, diferentes tipos de testes e estratégias de teste.
2) São descritos os conceitos de defeito, erro e falha, além das diferenças entre teste e depuração.
3) São apresentadas as etapas de um processo de teste, incluindo teste de unidade, integração, validação e sistema.
O documento discute os processos e técnicas de teste de software, abordando tópicos como ciclo de vida de testes, métodos de teste, métricas e tecnologias. Ele destaca a importância da adoção de processos de qualidade para melhorar o desenvolvimento de software, reduzir custos e riscos.
Mini aula sobre testes de software descrevendo os conceitos básicos sobre as técnicas utilizadas para testes, verificação e validação no desenvolvimento de software.
O documento apresenta uma introdução ao teste de software, abordando conceitos como defeitos, erros e falhas. Explica que o objetivo do teste é revelar a presença de erros no programa, discute técnicas como teste de unidade, integração e sistema, e critérios como particionamento em classes de equivalência e análise de valor-limite. Também menciona a importância da automatização dos testes e ferramentas para apoiar a aplicação dos critérios.
O documento apresenta conceitos fundamentais sobre teste de software, incluindo:
1) Terminologia sobre defeitos, erros e falhas;
2) Fases e etapas do teste de software, como teste de unidade, integração e sistema;
3) Técnicas e critérios de teste, como particionamento em classes de equivalência e análise de valor limite.
O documento introduz conceitos básicos sobre teste de software, incluindo: 1) Teste de software é o processo de execução de um produto para determinar se atendeu suas especificações; 2) Existem diferentes níveis de teste como unidade, integração e sistema; 3) Critérios de teste como particionamento de classes de equivalência e análise de valor limite são usados para gerar casos de teste.
O documento discute processos de verificação e validação (V&V) para software, incluindo inspeções de código, testes de software e abordagens como Cleanroom. Ele explica a diferença entre verificação e validação, métodos como inspeções de software e análises estáticas automatizadas, e fatores importantes para o planejamento de V&V.
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
1) O documento discute os conceitos e técnicas de teste de software, incluindo os objetivos dos testes, diferentes tipos de testes e estratégias de teste.
2) São descritos os conceitos de defeito, erro e falha, além das diferenças entre teste e depuração.
3) São apresentadas as etapas de um processo de teste, incluindo teste de unidade, integração, validação e sistema.
O documento discute os processos e técnicas de teste de software, abordando tópicos como ciclo de vida de testes, métodos de teste, métricas e tecnologias. Ele destaca a importância da adoção de processos de qualidade para melhorar o desenvolvimento de software, reduzir custos e riscos.
Mini aula sobre testes de software descrevendo os conceitos básicos sobre as técnicas utilizadas para testes, verificação e validação no desenvolvimento de software.
O documento discute os conceitos e técnicas de teste de software, com o objetivo de encontrar falhas e melhorar a qualidade do produto. Aborda temas como definição de teste de software, tipos de testes (caixa preta, caixa branca, caixa cinza), categorias de testes (unidade, integração, sistema), equipes de teste e por que testamos software.
O documento discute o que é teste de software, por que é necessário testar e os principais princípios e processos de teste de software. Explica que teste de software envolve executar um programa para descobrir erros, que testar é necessário para evitar prejuízos financeiros e de reputação causados por falhas, e que os humanos sempre cometem erros, justificando a necessidade de testes.
Noções em teste de software e introdução a automaçãoSandy Maciel
O documento apresenta conceitos básicos de teste de software, incluindo princípios, papéis, ciclo de vida de desenvolvimento e tipos de testes. Também fornece uma introdução ao Selenium WebDriver, abordando automação de testes e preparação do ambiente.
Este documento apresenta conceitos básicos sobre teste de software, incluindo testes de unidade, funcional e integração. Também discute estratégias de teste no desenvolvimento dirigido por testes (TDD) e apresenta referências sobre TDD com Ruby e teste de unidade com Ruby.
Este documento fornece um resumo sobre qualidade e teste de software. Ele discute a importância do teste, as técnicas de teste como caixa preta e caixa branca, e automação de testes. Também aborda carreiras em teste de software e exemplos históricos de falhas de software.
Este documento fornece um resumo sobre qualidade e teste de software. Ele discute a importância do teste, as técnicas de teste como caixa preta e caixa branca, automação de testes, BDD, e carreiras em teste de software.
O documento resume os principais pontos sobre teste de software segundo o guia SWEBOK. Aborda os fundamentos, níveis, objetivos, técnicas, medidas e processo de teste de software. Apresenta definições de termos como falha, defeito e erro e discute questões como testabilidade, limitações de teste e objetivos como teste de aceitação e regressão.
Verificação e validação (V&V) são processos para melhorar a qualidade de software e produtividade. V&V permite identificar problemas cedo e corrigi-los antes da entrega, aumentando a produtividade. Técnicas estáticas como revisões e inspeções verificam a qualidade antes dos testes dinâmicos. Testes de software como caixa branca e preta são importantes para validar que o software atende aos requisitos.
O documento discute os conceitos e práticas fundamentais de teste de software, incluindo os tipos de teste, quem realiza os testes, a importância do planejamento de teste e os níveis de teste como unidade, integração e sistema. É explicado que o objetivo do teste é identificar erros para que o software possa ser melhorado e atenda aos requisitos do usuário.
O documento apresenta um plano de treinamento sobre testes funcionais que inclui três dias de aulas. No primeiro dia serão abordados fundamentos de testes e derivação de casos de teste a partir de casos de uso. Nos dias seguintes serão apresentados recursos de uma ferramenta de teste funcional e realizados laboratórios sobre projeto de testes, criação de scripts manuais e automatizados e geração de relatórios.
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
O documento discute engenharia de testes de software, incluindo: (1) a definição de teste de software como um processo para revelar falhas e melhorar a qualidade do produto final; (2) as principais atividades dos profissionais de teste; e (3) os principais tipos de testes manuais versus automatizados e ferramentas de automação.
O documento discute os conceitos e práticas fundamentais de teste de software, incluindo por que é importante testar software, como deve ser feito, e os diferentes tipos de testes como teste de unidade, integração, sistema e aceitação. Ele também define termos-chave como defeito, erro e falha e discute critérios para gerar, adequar e medir a cobertura de casos de teste.
T@rget trust t-curso de ferramentas para automação de teste de softwareTargettrust
O documento discute cursos de teste de software, incluindo conceitos e técnicas de teste necessárias para o desenvolvimento de software de qualidade. Ele também descreve três cursos específicos que abordam introdução ao processo de teste de software, planejamento e execução de testes e ferramentas para automação de testes.
T@rget trust t-curso de ferramentas para automação de teste de softwareTargettrust
O documento discute cursos de teste de software, incluindo conceitos e técnicas de teste necessárias para o desenvolvimento de software de qualidade. Ele também descreve três cursos específicos que abordam introdução ao processo de teste de software, planejamento e execução de testes e ferramentas para automação de testes.
O documento discute testes de software, incluindo: 1) O que são testes de software e seus objetivos de verificar erros e garantir qualidade; 2) A importância de testes para reduzir custos de correção de erros; 3) Os principais tipos de testes como caixa branca, caixa preta e testes de unidade e integração.
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
Minicurso ministrado na XII SemanaTI na UNIVEM - Marília/SP, nos dias 23 e 24 de setembro de 2019. O título do minicurso é Técnicas de Teste e Automatização do Teste de Unidade e o minicurso tratava na teoria sobre algumas técnicas de Teste de Software, bem como a Técnica de Teste Estrutural, Teste Funcional e Teste Baseado em Defeitos, assim como aprendemos sobre a fase do Teste de Unidade, e ali, aplicamos na prática a Técnica de Teste Estrutural e tratamos sobre a teoria e a prática da automação de testes.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
O documento apresenta os conceitos e técnicas fundamentais de teste de software, descrevendo os objetivos do teste, os principais papéis e responsabilidades na equipe de teste, assim como os estágios e ciclo de vida dos testes.
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfRonaldAlves15
O documento introduz os principais conceitos e técnicas de testes no front-end, incluindo: (1) a importância dos testes para reduzir custos de correção de bugs, (2) a pirâmide de testes com ênfase em testes unitários, (3) o "Troféu de testes" e a inclusão de testes estáticos, e (3) as principais técnicas como teste de regressão, de caixa preta/branca/cinza, de fumaça e de carga.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
O documento discute os conceitos e técnicas de teste de software, com o objetivo de encontrar falhas e melhorar a qualidade do produto. Aborda temas como definição de teste de software, tipos de testes (caixa preta, caixa branca, caixa cinza), categorias de testes (unidade, integração, sistema), equipes de teste e por que testamos software.
O documento discute o que é teste de software, por que é necessário testar e os principais princípios e processos de teste de software. Explica que teste de software envolve executar um programa para descobrir erros, que testar é necessário para evitar prejuízos financeiros e de reputação causados por falhas, e que os humanos sempre cometem erros, justificando a necessidade de testes.
Noções em teste de software e introdução a automaçãoSandy Maciel
O documento apresenta conceitos básicos de teste de software, incluindo princípios, papéis, ciclo de vida de desenvolvimento e tipos de testes. Também fornece uma introdução ao Selenium WebDriver, abordando automação de testes e preparação do ambiente.
Este documento apresenta conceitos básicos sobre teste de software, incluindo testes de unidade, funcional e integração. Também discute estratégias de teste no desenvolvimento dirigido por testes (TDD) e apresenta referências sobre TDD com Ruby e teste de unidade com Ruby.
Este documento fornece um resumo sobre qualidade e teste de software. Ele discute a importância do teste, as técnicas de teste como caixa preta e caixa branca, e automação de testes. Também aborda carreiras em teste de software e exemplos históricos de falhas de software.
Este documento fornece um resumo sobre qualidade e teste de software. Ele discute a importância do teste, as técnicas de teste como caixa preta e caixa branca, automação de testes, BDD, e carreiras em teste de software.
O documento resume os principais pontos sobre teste de software segundo o guia SWEBOK. Aborda os fundamentos, níveis, objetivos, técnicas, medidas e processo de teste de software. Apresenta definições de termos como falha, defeito e erro e discute questões como testabilidade, limitações de teste e objetivos como teste de aceitação e regressão.
Verificação e validação (V&V) são processos para melhorar a qualidade de software e produtividade. V&V permite identificar problemas cedo e corrigi-los antes da entrega, aumentando a produtividade. Técnicas estáticas como revisões e inspeções verificam a qualidade antes dos testes dinâmicos. Testes de software como caixa branca e preta são importantes para validar que o software atende aos requisitos.
O documento discute os conceitos e práticas fundamentais de teste de software, incluindo os tipos de teste, quem realiza os testes, a importância do planejamento de teste e os níveis de teste como unidade, integração e sistema. É explicado que o objetivo do teste é identificar erros para que o software possa ser melhorado e atenda aos requisitos do usuário.
O documento apresenta um plano de treinamento sobre testes funcionais que inclui três dias de aulas. No primeiro dia serão abordados fundamentos de testes e derivação de casos de teste a partir de casos de uso. Nos dias seguintes serão apresentados recursos de uma ferramenta de teste funcional e realizados laboratórios sobre projeto de testes, criação de scripts manuais e automatizados e geração de relatórios.
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
O documento discute engenharia de testes de software, incluindo: (1) a definição de teste de software como um processo para revelar falhas e melhorar a qualidade do produto final; (2) as principais atividades dos profissionais de teste; e (3) os principais tipos de testes manuais versus automatizados e ferramentas de automação.
O documento discute os conceitos e práticas fundamentais de teste de software, incluindo por que é importante testar software, como deve ser feito, e os diferentes tipos de testes como teste de unidade, integração, sistema e aceitação. Ele também define termos-chave como defeito, erro e falha e discute critérios para gerar, adequar e medir a cobertura de casos de teste.
T@rget trust t-curso de ferramentas para automação de teste de softwareTargettrust
O documento discute cursos de teste de software, incluindo conceitos e técnicas de teste necessárias para o desenvolvimento de software de qualidade. Ele também descreve três cursos específicos que abordam introdução ao processo de teste de software, planejamento e execução de testes e ferramentas para automação de testes.
T@rget trust t-curso de ferramentas para automação de teste de softwareTargettrust
O documento discute cursos de teste de software, incluindo conceitos e técnicas de teste necessárias para o desenvolvimento de software de qualidade. Ele também descreve três cursos específicos que abordam introdução ao processo de teste de software, planejamento e execução de testes e ferramentas para automação de testes.
O documento discute testes de software, incluindo: 1) O que são testes de software e seus objetivos de verificar erros e garantir qualidade; 2) A importância de testes para reduzir custos de correção de erros; 3) Os principais tipos de testes como caixa branca, caixa preta e testes de unidade e integração.
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
Minicurso ministrado na XII SemanaTI na UNIVEM - Marília/SP, nos dias 23 e 24 de setembro de 2019. O título do minicurso é Técnicas de Teste e Automatização do Teste de Unidade e o minicurso tratava na teoria sobre algumas técnicas de Teste de Software, bem como a Técnica de Teste Estrutural, Teste Funcional e Teste Baseado em Defeitos, assim como aprendemos sobre a fase do Teste de Unidade, e ali, aplicamos na prática a Técnica de Teste Estrutural e tratamos sobre a teoria e a prática da automação de testes.
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
O documento discute a evolução da preocupação com a qualidade de software ao longo dos anos, desde as décadas de 1950 a 2000. Nos anos iniciais, os erros eram conhecidos apenas após o término do programa. Nos anos 1970 surgiram análise estruturada e teste antes do término. Nos anos 1980 houve primeiras preocupações com padrões de qualidade. Nos anos 1990 surgiram primeiros processos de teste motivados pelo bug do milênio. Nos anos 2000, testes foram estruturados dentro do processo de desenvolvimento e surgiram ferramentas de
O documento apresenta os conceitos e técnicas fundamentais de teste de software, descrevendo os objetivos do teste, os principais papéis e responsabilidades na equipe de teste, assim como os estágios e ciclo de vida dos testes.
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfRonaldAlves15
O documento introduz os principais conceitos e técnicas de testes no front-end, incluindo: (1) a importância dos testes para reduzir custos de correção de bugs, (2) a pirâmide de testes com ênfase em testes unitários, (3) o "Troféu de testes" e a inclusão de testes estáticos, e (3) as principais técnicas como teste de regressão, de caixa preta/branca/cinza, de fumaça e de carga.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
1. Ricardo A. Ramos
Introdução a
Verificação, Validação e Teste
de Software
[Baseado na apresentação do LABS –ICMC-USP -> http://www.labes.icmc.usp.br]
Engenharia de Software I – 2012.2
2. Introdução ao Teste de Software 2
Organização
Introdução
Teste de Software
Terminologia e Conceitos Básicos
Técnicas e Critérios de Teste
Automatização da Atividade de Teste
Estudos Empíricos
Perspectivas
3. Introdução ao Teste de Software 3
Introdução
Qualidade de Software
Corretitude
Confiabilidade
Testabilidade
Conformidade com requisitos funcionais
e de desempenho, padrões de desenvolvimento
documentados e características
implícitas esperadas de todo software
profissionalmente desenvolvido.
4. Introdução ao Teste de Software 4
Introdução
Garantia de Qualidade de Software
Conjunto de atividades técnicas aplicadas
durante todo o processo de desenvolvimento
Objetivo
Garantir que tanto o processo de desenvolvimento
quanto o produto de software atinjam os níveis de
qualidade especificados
VVT – Verificação, Validação e Teste
5. Introdução ao Teste de Software 5
Introdução
Validação: Assegurar que o produto final corresponda
aos requisitos do usuário
Verificação: Assegurar consistência, completitude e
corretitude do produto em cada fase e entre fases
consecutivas do ciclo de vida do software
Teste: Examina o comportamento do produto por meio
de sua execução
Estamos construindo o produto certo?
Estamos construindo corretamente o produto?
6. Introdução ao Teste de Software 6
Terminologia
Defeito Erro Falha
Defeito: deficiência mecânica ou algorítmica
que, se ativada, pode levar a uma falha
Erro: item de informação ou estado de
execução inconsistente
Falha: evento notável em que o sistema
viola suas especificações
7. Introdução ao Teste de Software 7
Defeitos no Processo de
Desenvolvimento
A maior parte é de origem humana
São gerados na comunicação e na
transformação de informações
Continuam presentes nos diversos produtos de
software produzidos e liberados (10 defeitos a
cada 1000 linhas de código)
A maioria encontra-se em partes do código
raramente executadas
8. Introdução ao Teste de Software 8
Defeitos no Processo de
Desenvolvimento
Principal causa: tradução incorreta de
informações
Quanto antes a presença do defeito for
revelada, menor o custo de correção do
defeito e maior a probabilidade de corrigi-lo
corretamente
Solução: introduzir atividades de VVT ao
longo de todo o ciclo de desenvolvimento
9. Introdução ao Teste de Software 9
Teste e Depuração
Teste
Depuração
Processo de executacao de um programa com
o objetivo de revelar a presença de erros.
Conseqüência não previsível do teste.
Após revelada a presença do erro, este
deve ser encontrado e corrigido.
Contribuem para aumentar a confiança de que o
software desempenha as funções especificadas.
10. Introdução ao Teste de Software 10
Teste de Software
Fundamental em todos os ramos de
engenharia
Software: produto da Engenharia de Software
Atividade essencial para ascensão ao nível 3
do Modelo CMM/SEI
Atividade relevante para avaliação da
característica funcionalidade
(ISO 9126,14598-5)
11. Introdução ao Teste de Software 11
Teste de Software
Inexistência de erro:
Software é de alta qualidade?
Conjunto de casos de teste T é de baixa qualidade?
?
D P
X
T
Objetivo: revelar a presença de erros
12. Introdução ao Teste de Software 12
Teste de Software
Defeitos e erros não revelados
Falhas se manifestam durante a utilização
pelos usuários
Erros devem ser corrigidos durante a
manutenção
Alto custo
13. Introdução ao Teste de Software 13
Teste de Software
Falhas graves
Qualidade e confiabilidade suspeitas
Modificação do projeto
Novos testes
Erros de fácil correção
Funções aparentemente funcionam bem
Qualidade e confiabilidade aceitáveis
Testes inadequados para revelar a presença de
erros graves
Novos testes
14. Introdução ao Teste de Software 14
Teste de Software
Limitações
Não existe um algoritmo de teste de propósito
geral para provar a corretitude de um programa
Em geral, é indecidível se dois caminhos de um
mesmo programa ou de diferentes programas
computam a mesma função
É indecidível se existe um dado de entrada que
leve à execução de um dado caminho de um
programa; isto é, é indecidível se um dado
caminho é executável ou não
15. Introdução ao Teste de Software 15
Teste de Software
Atividades de
Teste
Configuração
de Software
Configuração
de Teste
Avaliação
Resultados
de Teste
Resultados
Esperados
Dados
da Taxa
de Erros
Modelo de
Confiabilidade
Erros
Depuração
Correções
Confiabilidade
Prevista
16. Introdução ao Teste de Software 16
Teste de Software
Fases de Teste
Teste de Unidade
Identificar erros de lógica e de implementação
em cada módulo do software, separadamente
Teste de Integração
Identificar erros associados às interfaces entre os
módulos do software
Teste de Sistema
Verificar se as funções estão de acordo com a
especificação e se todos os elementos do sistema
combinam-se adequadamente
17. Introdução ao Teste de Software 17
Teste de Software
Etapas do Teste
Planejamento
Projeto de casos de teste
Execução do programa com os casos de teste
Análise de resultados
18. Introdução ao Teste de Software 18
Teste de Software
Caso de teste
Especificação de uma entrada para o programa e
a correspondente saída esperada
Entrada: conjunto de dados necessários para uma
execução do programa
Saída esperada: resultado de uma execução do
programa
Oráculo
Um bom caso de teste tem alta probabilidade de
revelar um erro ainda não descoberto
19. Introdução ao Teste de Software 19
Teste de Software
Projeto de casos de teste
O projeto de casos de teste pode ser tão difícil
quanto o projeto do próprio produto a ser testado
Poucos programadores/analistas gostam de teste
e, menos ainda, do projeto de casos de teste
O projeto de casos de teste é um dos melhores
mecanismos para a prevenção de defeitos
O projeto de casos de teste é tão eficaz em
identificar erros quanto a execução dos casos de
teste projetados
20. Introdução ao Teste de Software 20
Técnicas e Critérios de Teste
Técnica Funcional
Requisitos funcionais do software
Critério Particionamento em Classes de Equivalência
Técnica Estrutural
Estrutura interna do programa
Critérios Baseados em Fluxo de Dados
Técnica Baseada em Erros
Erros mais freqüentes cometidos durante o
processo de desenvolvimento de software
Critério Análise de Mutantes
21. Introdução ao Teste de Software 21
Automatização da Atividade de Teste
Ferramentas de Teste
Contribuem para reduzir as falhas produzidas pela
intervenção humana
Aumento da qualidade e produtividade da atividade de
teste
Aumento da confiabilidade do software
Facilitam a condução de estudos comparativos
entre critérios
Para a aplicação efetiva de um critério de teste faz-se
necessário o uso de ferramentas automatizadas que
apóiem a aplicação desse critério.
22. Introdução ao Teste de Software 22
Automatização da Atividade de Teste
Critérios Estruturais: Fluxo de Dados
Asset, Proteste – programas em Pascal
xSuds – programas em C, C++ e Cobol
Poke-Tool – programas em C, Cobol e Fortran
Critérios Baseados em Mutação
Mothra – programas em Fortran
Proteum – programas em C (unidade)
Proteum/IM – programas em C (integração)
Proteum/RS – especificações
23. Introdução ao Teste de Software 23
Automatização da Atividade de Teste
xSuds (Software Understanding
Diagnosis System)
xAtac: teste
xSlice: depuração
xVue: manutenção
xProf: melhoria de performance
xDiff: comparação de código
Estado da Arte X Estado da Prática
24. Introdução ao Teste de Software 24
Técnica Funcional (Caixa Preta)
Baseia-se na especificação do software
para derivar os requisitos de teste
Aborda o software de um ponto de vista
macroscópico
Envolve dois passos principais:
Identificar as funções que o software deve realizar
(especificação dos requisitos)
Criar casos de teste capazes de checar se essas
funções estão sendo executadas corretamente
25. Introdução ao Teste de Software 25
Técnica Funcional
Problema
Dificuldade em quantificar a atividade de teste:
não se pode garantir que partes essenciais ou
críticas do software foram executadas
Dificuldade de automatização
Critérios da Técnica Funcional
Particionamento em Classes de Equivalência
Análise do Valor Limite
Grafo de Causa-Efeito
26. Introdução ao Teste de Software 26
Técnica Estrutural (Caixa Branca)
Baseada no conhecimento da estrutura
interna (implementação) do programa
Teste dos detalhes procedimentais
A maioria dos critérios dessa técnica utiliza
uma representação de programa
conhecida como grafo de programa ou
grafo de fluxo de controle
27. Introdução ao Teste de Software 27
Técnica Estrutural
Grafo de Programa
Nós: blocos “indivisíveis”
Não existe desvio para o meio do bloco
Uma vez que o primeiro comando do bloco é
executado, os demais comandos são
executados seqüencialmente
Arestas ou Arcos: representam o fluxo de
controle entre os nós
29. Introdução ao Teste de Software 29
Técnica Estrutural
Grafo de Programa
Detalhes considerados
nó
arco
caminho
simples (2,3,4,5,6,7)
completo
(1,2,3,4,5,6,7,4,8,9,11)
fluxo de controle
Grafo de Programa do identifier
Gerado pela View-Graph
30. Introdução ao Teste de Software 30
Técnica Baseada em Erros
Os requisitos de teste são derivados a partir
dos erros mais freqüentes cometidos
durante o processo de desenvolvimento do
software
Critérios da Técnica Baseada em Erros
Semeadura de Erros
Teste de Mutação
Análise de Mutantes (unidade)
Mutação de Interface (integração)
31. Introdução ao Teste de Software 31
Hipótese do Programador Competente
Efeito de Acoplamento
Programadores experientes escrevem programas
corretos ou muito próximos do correto.
Casos de teste capazes de revelar erros simples são
tão sensíveis que, implicitamente, também são
capazes de revelar erros mais complexos.
Teste de Mutação
32. Introdução ao Teste de Software 32
Análise de Mutantes
Passos da Análise de Mutantes
1- Geração de Mutantes
Para modelar os desvios sintáticos mais comuns,
operadores de mutação são aplicados a um programa,
transformando-o em programas similares: mutantes.
Mutantes
P1
Pn
P3
P2
P4
Operadores
de Mutação
P
Programa
em Teste
33. Introdução ao Teste de Software 33
Análise de Mutantes
Seleção dos operadores de mutação
Abrangente
Capaz de modelar a maior parte dos erros
Pequena cardinalidade
Problemas de custo
Quanto maior o número de operadores
utilizados, maior o número de mutantes gerados
34. Introdução ao Teste de Software 34
Análise de Mutantes
Exemplo de Mutantes
Mutante Gerado pelo Operador ORRN
if (valid_id (length = 1) (length = 6) )
printf (Validon);
else
printf (Invalidon);
Mutante Gerado pelo Operador OLAN
if (valid_id * (length = 1) (length 6) )
printf (Validon);
else
printf (Invalidon);
35. Exercício
1- Para a função abaixo
a. elabore o grafo do programa
b. determine os caminhos completos
c. crie casos de teste que executem estes caminhos
A função recebe três valores e verifica se eles podem formar um triângulo. Três lados formam um triângulo
quando um lado é menor que a soma dos outros dois.
function verificaTriangulo (a, b, c : real): String;
begin
if ((a b + c) AND (b a + c) AND (c a + b)) then
if (a = b) AND (b = c) then
verificaTriangulo:='Triangulo equilatero' {Três lados iguais}
else if ((a = b) OR (a = c) OR (b = c)) then
verificaTriangulo:='Triangulo isosceles' {Dois lados iguais}
else
verificaTriangulo:='Triangulo escaleno'
else verificaTriangulo:='Nao é um triangulo'; {Não satisfez a propriedade}
end;
35
36. Exercício
2 - Para a função abaixo
a. elabore o grafo do programa
b. determine os caminhos completos
c. crie casos de teste que executem estes caminhos
/* Este programa escrito em C lê uma linha de texto e converte conjuntos de caracteres brancos em um unico
caractere. Sugira casos de teste para o programa */
void eliminaBrancos(char linha[40])
{
int i,j,tamanho;
i=0; tamanho=strlen(linha);
while(itamanho)
{
if(isspace(linha[i])) /* verifica se é “branco” */
{
if(isspace(linha[i+1])) /* verifica se o próximo é “branco” */
for (j=i;jtamanho;j++ )
linha[j]=linha[j+1]; /* copia o proximo caractere para a posicao vazia*/
else
i++;
}
else
i++;
}
} // fim do eliminaBrancos() 36