350 likes | 476 Views
Introdução ao T este de Software. PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELETRÔNICA E COMPUTAÇÃO – PG/EEC-I – ITA 1º SEMESTRE 2013. CE - 229 Teste de Software - Aula 01-1. Prof. Dr. Luiz Alberto Vieira Dias (ITA) Prof. Dr. Adilson Marques da Cunha (ITA)
E N D
IntroduçãoaoTeste de Software PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELETRÔNICA E COMPUTAÇÃO – PG/EEC-I – ITA 1º SEMESTRE 2013 CE - 229 Teste de Software - Aula 01-1 Prof. Dr. Luiz Alberto Vieira Dias (ITA) Prof. Dr. Adilson Marques da Cunha (ITA) Prof. Dr. LineuMialaret (ITA/IFSP) Colaboração: RenanCavichi (Aluno MSc, ITA/IFSP) CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
- בדיקות תוכנה 軟件測試 -тестирование программного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)
Teste de Software (1/2)10 pioresfalhasdevido 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) • 1994 – Chinook helicopter crash (29 deaths) CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Teste de Software (2/2)10 pioresfalhasdevido a software • 1993 – JAS 39 Grippen fighter (sweeden) • 1999 – Mars climate orbiter (units problem) • 2000 – Panama city overdose for radiation therapy (> 5 deaths) • Airbus A-320 exibition (>100 PAX; 3 deaths – see video) • 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)
Falhascatastróficasem software nãotestados • Ariane 5 – Falha de software – verRelatório (1996) • Airbus A320 (1988) • Mars Global Surveyor, MGS (2007) CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Perda da Sonda Espacial MGS Softwarefailuremay have causedloss 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 wrongspot 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)
Primeirosoftwarebug CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
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çãoaoTeste de Software”. Rio de Janeiro, RJ: Editora Campus, 2007 CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Tópicos a serem cobertos (1/4) • O processo de teste • Estudo de caso Técnicas de CaixaPreta • 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)
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 CaixaBranca • Teste de Controle de Fluxo • Teste de Data Flow (continua) CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Tópicos a seremcobertos (3/4) • Paradigmas de Teste (+ Mutação) • Script deTeste (IEEE 829) • TesteExploratório • Planejamento de Teste Tecnologias de Suporte • MétodosÁgeis • Taxonomia de Defeitos • Quandoterminar (conceito de “done") (continua) CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Tópicos a serem cobertos (4/4) Laboratório de Teste de Software, usando um Estudo de Caso Em 2013, o Estudo de Casoserá o ProjetoSCAF(FraudesemCartões de Crédito) O Estudo de Casoseráexecutadoemconjunto com osalunos das disciplinas CE-240 (Projeto de Sistemas de Banco de Dados) e CE-245 (Tecnologiasda Informação) – Aguardem a próxima aula CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Dados e Informação • Dados – valor semreferê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)
Exemplos • 35, 72, amarelo (dados) • 35 ͦ C, 72 sapatos, carroamarelo(info) • Quente, númerogrande de sapatos, carroesporte(conhec) • Voupara o arcondicionado, nãoprecisocomprarmaissapatos, voucomprar o carro (decisão) CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
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)
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)
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 dedados de uma parte à outra do computador CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
PromeirosComputadores • Pascal • Babbage (veranexo) • Zuse • ENIAC • Von Neuman • Apple II • IBM PC • Supercomputadores CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
PROGRAMAÇÃO CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
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ãotinha 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)
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)
Explorer 1 - JPL CE-229 - Profs. Vieira Dias, Cunha e Lineu (c) Cortesia JPL
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)
Modulo Lunar Apollo XI CE-229 - Profs. Vieira Dias, Cunha e Lineu (c) Cortesia NASA
Cabine do Módulo Lunar CE-229 - Profs. Vieira Dias, Cunha e Lineu (c) Cortesia NASA
SistemasEmbarcados e de Tempo Real hoje Mercado de (Micro) ProcessadoresEmbarcados: • Usoemgrandenúmero de aplicações • Grande aplicaçãonaindústriaaeroespacial, automobilísticaemilitar • Baixocusto • Processamentodirigidoàaplicação • Desempenhoproporcional à necessidade da aplicação • Muitasvezesexigemtempo real CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Software hoje • Extremamentecomplexos • Necessitam de grandequalidade, confiabilidade e segurança (safety e security) • Precisamserexaustivamentetestados, emmuitoscasospormeiosautomatizados. Entretanto testes sãomuitocaros e muitasempresastestam o mínimopossível (muitasvezesmenosdo que o mínimo!) • Testes α e β CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
CE-229 - Profs. Vieira Dias, Cunha e Lineu (c) Cockpit do Space Shuttle – software embarcado – anos 2000’s - NASA
Énecessáriotestar? Épossíveltestarexautivamente um SW? • Quantoàprimeirapergunta, a respostaé dada porexemplos de software nãotestadosoutestadosinadequadamente. • Quantoàsegundapergunta, a resposta, emgeraléNÃO, emfunção de quenãoépossíveltestar, em tempo finito, todas as possibilidades de entrada de dados e todososcaminhos (trajetos) possíveisque o processamento de big data ouprogramascolplexosexige. CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)
Necessidade de Teste em Software • Se um software nãodesempenhar a funçãopara a qualelefoidesignadopodemhaverprejuízosmateriaisconsideráveis e, piorainda, perda de vidashumanas! • Porisso o teste de software éessencialempraticamentetodas as aplicações, principalmente: • Nuclear • Espaço • Aeronáutica • Finanças (ProjetoSCAF) • Militar CE-229 - Profs. Vieira Dias, Cunha e Lineu (c)