PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA
ELETRÔNICA E COMPUTAÇÃO – PG/EEC-I – ITA
1º SEMESTRE 2013
Introdução ao Teste de Software
CE - 229 Teste de Software - Aula 01-1
Prof. Dr. Luiz Alberto Vieira Dias (ITA)
Prof. Dr. Adilson Marques da Cunha (ITA)
Prof. Dr. Lineu Mialaret (ITA/IFSP)
Colaboração:
Renan Cavichi (Aluno MSc, ITA/IFSP)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.1/35
- ‫בדיקות תוכנה‬軟件測試 тестирование программного
xобеспечения
τη δοκιμή του λογισμικού
• Software testing is an investigation conducted to provide
stakeholders with information about the quality of the product or
service under test
• Software testing can also provide an objective, independent
view of the software to allow the business to appreciate and
understand the risks of software implementation
• Test techniques include, but are not limited to, the process of
executing a program or application with the intent of finding
software bugs (defects)
Source: Wikipedia, English, 2013
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.2/35
Teste de Software (1/2)
10 piores falhas devido a software
2009, Feb – Outage of gmail
1980 – NORAD – US under attack (radar)
1983 – Soviet Union under attack (satellite)
1978 Ozone layer  discovered only in 1985
1985-87 – Therac-25  massive overdoses
of radiation (3 deaths)
6. 1994 – Chinook helicopter crash (29 deaths)
1.
2.
3.
4.
5.
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.3/35
Teste de Software (2/2)
10 piores falhas devido a software
7. 1993 – JAS 39 Grippen fighter (sweeden)
8. 1999 – Mars climate orbiter (units problem)
9. 2000 – Panama city overdose for radiation
therapy (> 5 deaths)
10. Airbus A-320 exibition (>100 PAX; 3 deaths
– see video)
11. 1982 – Bug in Canadian software stolen by
KGB for a Russian company for pipeline
control (not fault, but intentionaly planted
bug by CIA)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.4/35
Falhas catastróficas em software
não testados
• Ariane 5 – Falha de software – ver Relatório (1996)
• Airbus A320 (1988)
• Mars Global Surveyor, MGS (2007)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.5/35
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.6/35
Perda da Sonda Espacial MGS
Software failure may have caused loss of Mars probe 19/Jan/07– New Scientist Printed Edition
“If only NASA's Mars Global Surveyor, MGS, had an IT expert on
board... The spacecraft, missing since last year, may have got lost
because of faulty software.
MGS was last heard from in November. In June, NASA's ground
controllers had uploaded software to the spacecraft's computer
memory - to the wrong location, it now seems.
“Basically, the computer got confused," says Doug McCuistion, NASA's
Washington DC-based director of Mars exploration.
The error could have caused the craft's solar array to move to the wrong
spot in response to a NASA command on 2 November. The MGS
then went into a "safe mode", possibly oriented in a way that left
temperature-sensitive components in sunlight for too long, causing a
battery to fail and so leaving the spacecraft without enough power to
operate.”
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.7/35
Primeiro software bug
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.8/35
Literatura básica
• BEIZER, B.
“Software Testing Techniques”. New York, NY,
USA: Van Nostrand Reinhold, 1990 (Esgotado)
• COPELAND, L. “A Practitioner’s Guide to Software Test Design”.
Norwood, MA, USA: Artech House Publishers, 2007
• DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. “Introdução
ao Teste de Software”. Rio de Janeiro, RJ: Editora Campus,
2007
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.9/35
Tópicos a serem cobertos (1/4)
• O processo de teste
• Estudo de caso
Técnicas de Caixa Preta
• Teste de Classe de Equivalência
• Teste de Valor Fronteira
• Teste de Tabela de Decisão
• Pairwise Testing
(continua)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.10/35
Tópicos a serem cobertos (2/4)
• Teste de Mudança de Estado
• Teste de Análise de Domínio
• Caso de Teste
Técnicas de Caixa Branca
• Teste de Controle de Fluxo
• Teste de Data Flow
(continua)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.11/35
Tópicos a serem cobertos (3/4)
•
•
•
•
Paradigmas de Teste (+ Mutação)
Script de Teste (IEEE 829)
Teste Exploratório
Planejamento de Teste
Tecnologias de Suporte
• Métodos Ágeis
• Taxonomia de Defeitos
• Quando terminar (conceito de “done")
(continua)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.12/35
Tópicos a serem cobertos (4/4)
Laboratório de Teste de Software, usando um
Estudo de Caso
Em 2013, o Estudo de Caso será o Projeto SCAF
(Fraudes em Cartões de Crédito)
O Estudo de Caso será executado em conjunto
com os alunos das disciplinas CE-240 (Projeto
de Sistemas de Banco de Dados) e CE-245
(Tecnologias da Informação) – Aguardem a
próxima aula
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.13/35
Dados e Informação
• Dados – valor sem referência à fenômeno
• Informação – valor com significado, dado
agregado
• Conhecimento – Utilização da informação
• Decisão – Utilização do conhecimento
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.14/35
Exemplos
– 35, 72, amarelo (dados)
– 35 ͦ C, 72 sapatos, carro amarelo (info)
– Quente, número grande de sapatos, carro
esporte (conhec)
– Vou para o ar condicionado, não preciso
comprar mais sapatos, vou comprar o
carro (decisão)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.15/35
Teste de Software - Conceitos
•
•
•
•
•
•
Computador
Hardware
Software
Programas
Dados, Informação, Conhecimento e Decisão
Necessidade de se testar o Software
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.16/35
Computadores (www.webopedia.com)
É uma máquina programável. As duas principais
características de um computador são:
• Ele responde a um conjunto específico de instruções
de uma maneira bem definida
• Ele pode executar uma lista de instruções pregravadas
(um programa)
Os computadores modernos são eletrônicos e digitais
A máquina real – fios, transistores e circuitos – é
chamada de hardware; as instruções (programas +
documentação) e os dados são chamados de
software
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.17/35
Os computadores de propósito geral requerem
os seguintes componentes de hardware:
• Memoria: guarda, pelo menos temporariamente, dados e
programas
• Memória de Massa: permite ao computador guardar
permanentemente “grandes” quantidades de dados
• Input device ou Entrada: é o canal pelo qual dados e instruções
são introdizidos no computador
• Output device ou Saída: permite visualizar os resultados
gerados pelo computador
• Central
Processing
Unit
ou
Unidade
Central
de
Processamento)(CPU): é o coração do computador; é a unidade
que realmente executa as instruções
• Bus: propicia a transmissão de dados de uma parte à outra do
computador
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.18/35
Promeiros Computadores
•
•
•
•
•
•
•
•
Pascal
Babbage (ver anexo)
Zuse
ENIAC
Von Neuman
Apple II
IBM PC
Supercomputadores
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.19/35
CE-229 - Profs. Vieira Dias, Cunha e Lineu
(c)
Aula01.a.20
CE-229 - Profs. Vieira Dias, Cunha e Lineu
(c)
21
CE-229 - Profs. Vieira Dias, Cunha e Lineu
(c)
22
PROGRAMAÇÃO
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
9.2.23
Computadores Embarcados
• Computadores embarcados apareceram para
aplicações espaciais
• O SPUTNIK, primeiro satélite artificial da
Terra, lançado pela Russia (ex-URSS) em
1957, não tinha computador a bordo
• O Explorer I, primeiro satélite americano,
lançado em 1958, também não tinha
computador de bordo. Ele tinha um
“programador” eletromecânico
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.24/35
Vista do primeiro satélite artificial da Terra – SPUTNIK-1
(Russia – ex-URSS):
04 outubro de 1957 – 83,61 kg – 58 cm diâmetro
Cortesia Agência Espacial Russa
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.25/35
Explorer 1 - JPL
Cortesia JPL
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
9.2.26
Projeto Vanguard (Explorer) - USA
•
•
•
•
Início 1955
Naval Research Lab
Projeto elegante/simples
Falha no primeiro
lançamento!
• Sucesso em 11 de 12
lançamentos (6 com sats)
• Modelo em plástico disponível até hoje para
entusiastas montarem
• 52 cm diâmetro; 9,8 kg
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.27/35
Modulo
Lunar
Apollo XI
Cortesia NASA
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Aula01.a.28
Cabine do Módulo Lunar
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Cortesia NASA
9.2.29
Sistemas Embarcados e de Tempo
Real hoje
Mercado de (Micro) Processadores Embarcados:
• Uso em grande número de aplicações
• Grande aplicação na indústria aeroespacial,
automobilística e militar
• Baixo custo
• Processamento dirigido à aplicação
• Desempenho proporcional à necessidade da
aplicação
• Muitas vezes exigem tempo real
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.30/35
Software hoje
• Extremamente complexos
• Necessitam de grande qualidade, confiabilidade
e segurança (safety e security)
• Precisam ser exaustivamente testados, em
muitos casos por meios automatizados.
Entretanto testes são muito caros e muitas
empresas testam o mínimo possível (muitas
vezes menos do que o mínimo!)
• Testes α e β
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.31/35
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.32/35
Cockpit do Space Shuttle – software embarcado – anos 2000’s - NASA
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
9.2.33
É necessário testar? É possível
testar exautivamente um SW?
• Quanto à primeira pergunta, a resposta é
dada por exemplos de software não
testados ou testados inadequadamente.
• Quanto à segunda pergunta, a resposta, em
geral é NÃO, em função de que não é
possível testar, em tempo finito, todas as
possibilidades de entrada de dados e todos
os caminhos (trajetos) possíveis que o
processamento de big data ou programas
colplexos exige.
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.34/35
Necessidade de Teste em Software
• Se um software não desempenhar a função para a
qual ele foi designado podem haver prejuízos
materiais consideráveis e, pior ainda, perda de
vidas humanas!
• Por isso o teste de software é essencial em
praticamente todas as aplicações, principalmente:
– Nuclear
– Espaço
– Aeronáutica
– Finanças (Projeto SCAF)
– Militar
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
1.1a.35/35
Download

Aula 2 - Lineu FS Mialaret