Software de Telecomunicações. Introdução aos testes

Tamanho: px
Começar a partir da página:

Download "Software de Telecomunicações. Introdução aos testes"

Transcrição

1 Software de Telecomunicações Introdução aos testes Prof RG Crespo Software Telecomunicações Testes:1/43 Introdução (1) 1. Prova formal da correcção de programas Complexo, exigindo conhecimentos de matemática Demorado Viável apenas no mundo académico e para aplicações informáticas nas quais a correcção é requisito fundamental (aviação, ) 2. Testes aceitáveis, desde que executados metodicamente!!!! Prof RG Crespo Software Telecomunicações Testes:2/43

2 Introdução (2) Definições básicas Erro: inserção de uma afirmação contrária aos requisitos do sistema. Na fase de codificação são denominados bugs. Defeito ( fault ): Representação de um erro num esquema de representação de software (diagrama DFD, código fonte, ). O mesmo erro pode provocar vários defeitos. Falha: Estado do sistema após a execução de um defeito. A falha do sistema pode não ser imediatamente visível ao utilizador do sistema. Defeitos distintos podem provocar o mesmo tipo de falhas. Incidente: Sintoma de falha que é visível para o utilizador (cliente ou programador). Teste: Execução do sistema segundo um plano ( test case ). Prof RG Crespo Software Telecomunicações Testes:3/43 Introdução (3) Normalmente, a especificação, o programa e o plano de testes descrevem comportamentos ( behaviour ) distintos. Especificação (requisito) Programa (verificado) Universo comportamentos Omissões do programa Erros do programa Plano de teste (observado) Prof RG Crespo Software Telecomunicações Testes:4/43

3 Introdução (4) O plano de teste típico contém:- Identificador do plano de teste Objectivos do teste: motivos para plano de teste (idealmente ligados aos requisitos) Entradas: Pré-condições (determinam em que estados o programa se deve encontrar antes da execução) Parâmetros (entradas fornecidas ao programa) Saídas: Pós-condições (determinam em que estados o programa se deve encontrar após a execução) Resultados esperados Historial Test case ID: Purpose: Inputs: Pre-conditions: Parameters: Outputs: Post-conditions: Expected results: Execution history Date Result Version Run by Prof RG Crespo Software Telecomunicações Testes:5/43 Introdução (5) 1. Requisitos Exemplo de programa/plano de testes i. Pré-condições (espaço de dados admissível no início do programa) ii. O programa aceita à entrada um caracter ord e vector A[0..N], no qual: ord = 'S' OU ord = 'P' N 0 # o vector tem, pelo menos 1 elemento Os elementos A[0..N] são inteiros Pós-condições (propriedade satisfeita após execução do programa) O programa calcula a soma, ou o produto, dos valores A[0..N] conforme ord seja igual a, respectivamente, 'S' e 'P'. Prof RG Crespo Software Telecomunicações Testes:6/43

4 Introdução (6) 2. Programa (NB! implementação incorrecta) int calc(char ord; int A[ ],N;) { int result = 0; int index; for(index=0; index<n; index++) { if (ord=='s') result=result+a[index]; else result=result*a[index]; } return result; } 3. Plano de testes: deve incluir casos normais (extremos e intermédios) e situações erróneas. Prof RG Crespo Software Telecomunicações Testes:7/43 Introdução (7) Pré-condições Parâmetros Pós-condições Observado N Ord A[0..N] res 3 'S' 0,5, 'S' 'P' 'P' 1,7, 'T' 1,15,10 erro 0 Os testes revelam defeitos no tratamento dos valores de ORD diferentes de 'S'. Prof RG Crespo Software Telecomunicações Testes:8/43

5 Introdução (7) O modelo do ciclo de testes tem, por base, o modelo do processo de software de cascata. Erros Requisitos Erros Defeitos Arquitectura Erros Defeitos Codificação Defeitos Teste Resolução Isolamento Classificação Incidente Prof RG Crespo Software Telecomunicações Testes:9/43 Introdução (8) O plano de testes é identificado segundo uma abordagem: 1. Funcional ( black-box ): o sistema é considerado uma caixa negra, cujas saídas são função da entrada entrada Programa saída 2. Estruturada ( white-box ): escolhem-se casos de teste que exercitem, idealmente, todo o código. Prof RG Crespo Software Telecomunicações Testes:10/43

6 Introdução (9) Para exemplificar cada abordagem, é usado um programa classificador de triângulos. Programa: Classificador de triângulos Entrada: 3 números, separados por vírgulas, correspondentes às dimensões dos três lados Saída: Cadeia de caracteres indicativa da classificação Algoritmo: Se a dimensão de um lado for superior à soma das dimensões dos outros dois lados, escrever "Não é triângulo". Caso seja um triângulo válido, escrever a classificação do triângulo consoantes os lados sejam todos diferentes ("Escaleno"), dois iguais ("Isósceles") ou todos iguais ("Equilátero"). Prof RG Crespo Software Telecomunicações Testes:11/43 Abordagem funcional (1) A partir dos requisitos, o comportamento da aplicação informática é dividido em partições. A bateria de testes é gerada seguindo os passos seguintes: 1. Cada partição do comportamento é posto à prova por um único teste 2. Gerados testes que cubram situações habituais de ocorrência de defeitos, tais como tratamento dos dados de entrada incorrectos e dados mal formatados Há 3 métodos de gerar a bateria de testes segundo a abordagem funcional: Análise de valores fronteiros Classes de equivalência Tabelas de decisão Elevado Esforço de identificação de testes Baixo Valores fronteiros Classes de equivalência Tabelas de decisão Prof RG Crespo Software Telecomunicações Testes:12/43

7 Abordagem funcional (2) Vantagens da abordagem funcional Independentes da implementação: a bateria de testes pode ser reutilizada quando a implementação é alterada. Testes modulares podem ser executados em paralelo com a codificação. Inconvenientes da abordagem funcional Redundância de testes. Não garante teste a todas as sequências de código. Prof RG Crespo Software Telecomunicações Testes:13/43 Valores fronteiros (1) Uma percentagem muito significativa de erros ocorre em valores fronteiros ( boundary values ). Exemplos: teste de ciclo < quando devia ser, contador cujo valor está deslocado de uma unidade, Com base nos limites, a cada entrada x i, é identificado o conjunto de valores Mínimo-x min Imediatamente acima do mínimo-x min+ Nominal-x nom Imediatamente abaixo do máximo-x max- Máximo-x max Prof RG Crespo Software Telecomunicações Testes:14/43

8 Valores fronteiros (2) A ferramenta T gera automaticamente os valores, a partir da especificação de um programa e é usada em diversos CASE como Teamwork da Cadre e Software Trough Pictures da Interactive Development Environments. Existem 4 métodos de geração da bateria de testes, usando a análise de valores fronteiros: Básico Robusto Teste aos piores casos Robustez nos piores casos Prof RG Crespo Software Telecomunicações Testes:15/43 Valores fronteiros (3) AF.1 Análise básica Baseada no pressuposto da teoria da fiabilidade de "defeito singular": falhas no sistema raramente são resultado de dois (ou mais) defeitos. Funciona bem apenas quando o programa a testar é função de variáveis independentes, cada uma representando quantidades físicas limitadas. Nas combinações de teste, todas as variáveis excepto uma, tomam o valor nominal e a restantes variáveis assumem todos os valores extremos. Para n variáveis, a análise básica gera 4n+1 casos. Exemplo: Consideremos uma função F(x1,x2), na qual os parâmetros são limitados a x1 b, c x2 d. A bateria de testes para F(x1,x2) são: x {<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>, <x1nom,x2max>,<x1nom,x2max>, <x1min,x2nom>, <x1min+,x2nom>,<x1max-,x2nom>,<x1max,x2nom>} Prof RG Crespo Software Telecomunicações Testes:16/43 2 d c a b x 1

9 Valores fronteiros (4) Para o classificador de triângulos, os três parâmetros são limitados inferiormente a 1. Não há limite superior, mas arbitra-se o valor 200. Os valores de teste são: min=1, min+=2, nom=100, max-=199, max=200. Para este exemplo, a análise de valores fronteiros não testa o caso do triângulo escaleno (ex: a=2, b=200, c=199). Prof RG Crespo Software Telecomunicações Testes:17/43 Valores fronteiros (5) ID a b c Resultado AVF Isósceles AVF Isósceles AVF Equilátero AVF Isósceles AVF Não é triângulo AVF Isósceles AVF Isósceles AVF8 Teste AVF3 AVF Isósceles AVF Não é triângulo AVF Isósceles AVF Isósceles AVF13 Teste AVF3 AVF Isósceles AVF Não é triângulo Prof RG Crespo Software Telecomunicações Testes:18/43

10 Valores fronteiros (6) AF.2 Análise robusta É extensão da análise básica. Para além dos 5 valores da análise básica, são utilizados valores que ultrapassam ligeiramente (max+) ou ficam aquém ligeiramente (min-). O teste à robustez incide no tratamento de excepções (ex: ângulo de asa do avião ultrapassar dado limite, exceder capacidade do elevador, data fixada a 31 Fevereiro, ). O teste de robustez é uma boa escolha para teste de variáveis internas ao sistema, ou variáveis auxiliares. x 2 d c a b x 1 Prof RG Crespo Software Telecomunicações Testes:19/43 Valores fronteiros (7) AF.3 Teste aos piores casos A bateria de testes é gerada pelo produto cartesiano das variáveis assumindo os 5 valores min, min+, nom, max- e max. Para n variáveis, a bateria de testes aos piores casos gera 5 n testes distintos (ex: para classificador de triângulos, a bateria de testes contém 5 3 =125 casos). As combinações de teste geradas no teste aos piores casos focam nas situações em que mais de uma variável toma valores extremos. AF.4 Teste robustez aos piores casos No teste de robustez aos piores casos, o plano de teste é formado pelo produto cartesiano das variáveis assumindo 7 valores. Ao todo, são gerados 7 n testes distintos (ex: para classificador de triângulos, a bateria de testes contém 7 3 =343 casos). Prof RG Crespo Software Telecomunicações Testes:20/43 x 2 d c a b x 1

11 Classes de equivalência (1) O método de classes de equivalência tem por objectivo a completude dos testes, evitando a redundância. Uma relação R A 2 é uma relação de equivalência sse R é reflexiva, simétrica e transitiva (ex: relações de igualdade e congruência) Dada uma relação de equivalência, pode-se definir subconjuntos formados pelos elementos relacionados entre si: os subconjuntos constituem partições induzidas pela relação de equivalência. Ex: Seja o conjunto N e a relação de equivalência módulo 3. As partições induzidas são {{0,3,6,...}, {1,4,7,...}, {2,5,8,...}}. A escolha da relação de equivalência é determinante na identificação da bateria de testes! Uma boa selecção de classes de equivalência reduz a redundância nos testes. Prof RG Crespo Software Telecomunicações Testes:21/43 Classes de equivalência (2) As combinações de teste são geradas pelo seguinte algoritmo: 1. Identificar as classes de equivalência em termos de validade. Para cada parâmetro, determinar as gamas de valores válidos e inválidos. 2. Gerar testes para todas as combinações possíveis de um valor da classe de equivalência para cada parâmetro. 3. Gerar testes para todas as combinações possíveis de um valor inválido para um parâmetro e um valor válido para os restantes parâmetros. Vantagens das classes de equivalência Útil para teste de funções complexas. Orientado para a completude. Inconvenientes das classes de equivalência Identificação das classes exige conhecimento da (provável) implementação. Parâmetros devem ser independentes entre si: caso contrário, são geradas situações de "erro". Prof RG Crespo Software Telecomunicações Testes:22/43

12 Classes de equivalência (3) Há 3 métodos de gerar a bateria de testes segundo as classes de equivalência, de acordo com as combinações dos elementos de cada partição: Equivalência fraca Equivalência forte Validação Exemplo: consideremos o programa fomado por 3 variáveis a:a, b:b, c:c e que são identificadas as seguintes partições dos domínios: A = A1 A2 A3 B = B1 B2 B3 B4 C = C1 C2 Prof RG Crespo Software Telecomunicações Testes:23/43 Classes de equivalência (4) CE.1 Equivalência fraca As variáveis têm valores em sucessão de cada uma das partições. Se os domínios tiverem menor número de partições, a sucessão regressa à ordem inicial. O número de testes é igual ao número de classes da maior partição. ID a b c WE1 a1 b1 c1 WE2 a2 b2 c2 WE3 a3 b3 c1 WE4 a1 b4 c2 Prof RG Crespo Software Telecomunicações Testes:24/43

13 Classes de equivalência (5) CE.2 Equivalência forte Bateria de testes construída pelo produto cartesiano das classes de partições. O número de testes é igual ao produto do número de classes de cada partição (no exemplo, 3*4*2=24). ID a b c SE1 a1 b1 c1 SE2 a1 b1 c2 SE3 a1 b2 c1 SE4 a1 b2 c2 SE5 a1 b3 c1 SE6 a1 b3 c2 SE7 a1 b4 c1 SE8 a1 b4 c2 SE9 a2 b1 c1 SE10 a2 b1 c2 SE11 a2 b2 c1 SE12 a2 b2 c2 SE13 a2 b3 c1 SE14 a2 b3 c2 SE15 a2 b4 c1 SE16 a2 b4 c2 SE17 a3 b1 c1 SE18 a3 b1 c2 SE19 a3 b2 c1 SE20 a3 b2 c2 SE21 a3 b3 c1 SE22 a3 b3 c2 SE23 a3 b4 c1 SE24 a3 b4 c2 Prof RG Crespo Software Telecomunicações Testes:25/43 Classes de equivalência (6) CE.3 Validação Bateria de testes definida em termos de dados válidos e inválidos. Para entradas válidas, usar os valores da equivalência fraca Para entradas inválidas, usar para cada teste uma entrada inválida e as restantes entradas válidas. Testes de equivalência baseada na validação são usados em linguagens de programação não fortemente tipificadas, i.e., sem tipos gamas de dados (COBOL, FORTRAN, ) Prof RG Crespo Software Telecomunicações Testes:26/43

14 Classes de equivalência (7) Para o exemplo do classificador de triângulos Classes de equivalência identificadas com base nas relações de igualdade entre os parâmetros para triângulos válidos: D1={<a,b,c>: a=b=c} D2={<a,b,c>: a=b,a c} D3={<a,b,c>: a=c,a b} D4={<a,b,c>: b=c,a b} D5={<a,b,c>: a b,a c,b c} Classes de equivalência identificadas com base nas relações de igualdade entre os parâmetros para triângulos inválidos: D6a={<a,b,c>: a=b+c}, D6b={<a,b,c>: a>b+c} D7a={<a,b,c>: b=a+c}, D7b={<a,b,c>: b>a+c} D8a={<a,b,c>: c=a+b}, D8b={<a,b,c>: c>a+b} Prof RG Crespo Software Telecomunicações Testes:27/43 Classes de equivalência (8) ID a b c Resultado E Equilátero E Isósceles E Isósceles E Isósceles E Escaleno E6a Não é triângulo E6b Não é triângulo E7a Não é triângulo E7b Não é triângulo E8a Não é triângulo E8b Não é triângulo Prof RG Crespo Software Telecomunicações Testes:28/43

15 Tabelas de decisão (1) As tabelas de decisão baseam-se nos relacionamentos lógicos entre as partições de uma aplicação informática. Canto superior esquerdo: condições descritoras dos estados possíveis dos parâmetros Canto inferior esquerdo: acções da aplicação informática observadas externamente Colunas do lado direito (regras): condições descritas na parte superior (/N) desencadeiam as acções marcadas (X). Várias condições podem ser verdadeiras, ou falsas, em simultâneo. Para determinadas condições, mais do que uma acção pode ser desencadeada pela aplicação informática. Prof RG Crespo Software Telecomunicações Testes:29/43 Tabelas de decisão (2) As combinações de teste são geradas para as condições de cada regra que não resultem em acções impossíveis. Vantagens do teste por tabelas de decisão Útil para teste de programas onde várias accções são executadas perante um conjunto variável de condições Força rigor lógico na fase de requisitos/arquitectura Inconveniente do teste por tabelas de decisão Apresenta problemas de escala (n condições implicam 2 n regras). Prof RG Crespo Software Telecomunicações Testes:30/43

16 Tabelas de decisão (3) c1: a<b+c c2: b<a+c c3: c<a+b c4: a=b c5: a=c c6: b=c a1: Não é um triângulo a2: Escaleno a3: Isósceles a4: Equilátero a5: Impossível Condições de entrada Acções N X N N X X X N N N N X X X N N N X X X N N N N N X A acção a5 é executada nos casos de violação da propriedade da transitividade (na qual, se x=y e y=z, então x=z). Prof RG Crespo Software Telecomunicações Testes:31/43 Tabelas de decisão (4) ID a b c Resultado TD Não é triângulo TD Não é triângulo TD Não é triângulo TD Equilátero TD Isósceles TD Isósceles TD Isósceles TD Escaleno Prof RG Crespo Software Telecomunicações Testes:32/43

17 Abordagem estrutural (1) A abordagem estrutural baseia-se na estrutura do programa e não na sua definição. São escolhidos casos de teste que exercitem, idealmente, todo o código. Os métodos estruturais parte da identificação do grafo (direccionado) do programa, em que: Nós representam blocos básicos (sequência de instruções, para a qual há apenas um ponto de entrada e um de saída) Arcos representam fluxo do controlo de execução É assumido o aluno ter conhecimento básico de grafos, (matéria de Algoritmos e Estruturas de Dados/MEEC) Prof RG Crespo Software Telecomunicações Testes:33/43 Abordagem estrutural (2) Algoritmo de identificação dos blocos básicos 1. Identificar os cabeçalhos dos blocos básicos i. A primeira instrução do programa é cabeçalho de um bloco básico ii. Todas as instruções que são alvo de saltos (condicionais ou incondicionais) são cabeçalho de um bloco básico. iii. Todas as instruções que seguem um salto (condicional ou incondicional) são cabeçalho de um bloco básico. 2. Os blocos básicos iniciam-se nos cabeçalhos identificados em 1) e acabam antes do cabeçalho de bloco seguinte ou final do programa São consideradas instruções de salto e não chamadas a rotinas porque nas segundas apenas há um caminho de ida e regresso Prof RG Crespo Software Telecomunicações Testes:34/43

18 Abordagem estrutural (3) Instruções IF-THEN-ELSE e DO-WHILE executadas com auxílio de saltos. IF cond THEN block b ELSE block c DO WHILE cond block stat stat cond cond block b True: goto block goto True: block c False: False: Os endereços alvo de instruções de salto são: A primeira instrução dos blocos block b e block c A primeira instrução de stat Os endereços alvo de instruções de salto são: A primeira instrução do bloco block e stat A primeira instrução de DO WHILE cond Prof RG Crespo Software Telecomunicações Testes:35/43 Abordagem estrutural (4) Grafos correspondentes a diversas estruturas sintácticas de linguagens de programação imperativa Sequência Ciclo pré-testado Ciclo repeat If-Then If-Then-Else Case Prof RG Crespo Software Telecomunicações Testes:36/43

19 Abordagem estrutural (5) /* 1 */ void function triangle () { /* 2 */ int a,b,c; /* 3 */ enum {FALSE, TRUE} istriangle; /* 4 */ printf( Introduza o comprimento dos tres lados do triangulo ); /* 5 */ scanf( %d %d %d,&a,&b,&c); /* 6 */ if (a<b+c && b<a+c && c<a+b) /* 7 */ istriangle=true; /* 8 */ else istriangle=false; /* 9 */ if (istriangle) /* 10 */ { /* 11 */ if (a==b && b==c) K /* 12 */ printf( Equilatero\n ); /* 13 */ else if (a!=b && a!=c && b!=c) /* 14 */ printf( Escaleno\n ); /* 15 */ else printf( Isosceles\n ); /* 16 */ } /* 17 */ else printf( Nao e um triangulo\n ); /* 18 */ } Prof RG Crespo Software Telecomunicações Testes:37/43 B L A D F J C E H G I Abordagem estrutural (6) Os inícios de blocos são listados na tabela Caso Início de programa 4 Instruções End. alvo de instrução de salto 9,8,13,15,16,17,18 Instrução seguinte a instrução de salto 7,10,12,14 Os blocos básicos são formados por: {A}4-6, {B}7, {C}8, {D}9, {E}10-11, {F}12, {G}13, {H}14, {I}15, {J}16, {K}17, {L}18 Um grafo de programa, definido por blocos básicos é denominado grafo DD (decisão-decisão): corresponde a uma condensação do grafo de instruções. Prof RG Crespo Software Telecomunicações Testes:38/43

20 Abordagem estrutural (7) Há 4 métodos de geração da bateria de testes segundo a abordagem estrutural: Grafo DD (Decisão-Decisão) Grafo DU (Decisão-Uso) Caminhos básicos Fatia Esforço de identificação de testes Elevado Baixo DD Base DU Fatia Prof RG Crespo Software Telecomunicações Testes:39/43 Caminhos básicos (1) Caminho independente: sequência de instruções que possui um subconjunto (aresta) totalmente que não é percorrida pelos caminhos restantes. McCabe propôs uma métrica de complexidade, que determina o número máximo de caminhos independentes. V(G) = nº predicados +1 Uma vez que todos os outros caminhos do grafo são combinações de caminhos independentes, V(G) é o limite inferior de testes de caminhos. Prof RG Crespo Software Telecomunicações Testes:40/43

21 Caminhos básicos (2) Para o programa classificador de triângulos, os predicados são Nó True False A a<b+c && b<a+c && c<a+b a>=b+c b>=a+c c>=a+b D mesmo que A mesmo que A E a==b && b==c a!= b b!= c G a!=b && a!=c && b!=c a==b a==c b==c V(G) = 4 +1= 5 Na realidade há apenas 4 caminhos independentes, porque os testes A e D são iguais) Prof RG Crespo Software Telecomunicações Testes:41/43 Caminhos básicos (2) Para identificar a bateria de testes, McCabe propõe o método 1. Escolher um caminho base, correspondente a uma execução normal, com o maior número possível nós de decisão. 2. O caminho base é alterado para ramos alternativos nos nós em que outdeg 2. Para o programa classificador de triângulos, os caminhos são: A. Caminho base (o mais longo): A-B-D-E-G-H-J-L Condições a satisfazer: A=true (a<b+c && b<a+c && c<a+b) E=false (a!=b b!= c) G=true (a!= b && a!= c && b!= c) Entrada: a=2, b=3, c=4: Saída: escaleno Prof RG Crespo Software Telecomunicações Testes:42/43

22 Caminhos básicos (2) A. Alternativa no nó A: A-C-D-K-L Condições a satisfazer: A=false (a>=b+c b>=a+c c<a+b) Entrada: a=1, b=2, c=5; Saída: não é triângulo B. Alternativa no nó E: A-B-D-E-F-J-L Condições a satisfazer: A=true (a<b+c && b<a+c && c<a+b) E=true (a==b && b==c) Entrada: a=4, b=4, c=4; Saída: equiláterio C. Alternativa no nó G: A-B-D-E-G-I-J-L Condições a satisfazer: A=true (a<b+c && b<a+c && c<a+b) E=false (a!=b b!= c) G=false (a == b a == c b == c) Entrada: a=2, b=4, c=4; Saída: isósceles Prof RG Crespo Software Telecomunicações Testes:43/43

Programação de Sistemas. Introdução aos testes

Programação de Sistemas. Introdução aos testes Programação de Sistemas Introdução aos testes Introdução (1) 1. Prova formal da correcção de programas Complexo, exigindo conhecimentos de matemática. O método de verificação de modelos ( model checking

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Casos de Teste e Cenários de Teste Técnicas de Teste Técnica de Teste Estrutural 2 Casos

Leia mais

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução Métodos de Programação I 2. 20 2.2.8 ESTRUTURAS DE CONTROLO Estruturas de controlo são instruções especiais em Pascal que permitem controlar o fluxo de sequência de instruções, alterando a ordem sequencial

Leia mais

Testes de software - Teste funcional

Testes de software - Teste funcional Testes de software - Teste funcional Vitor Alcântara de Almeida Universidade Federal do Rio Grande do Norte Natal, Brasil 30 de outubro de 2014 Alcântara (UFRN) Testes de software - Testes funcionais 30

Leia mais

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Teste de Software Engenharia de Software 2o. Semestre de 2006 Slide

Leia mais

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri Unidade VI Técnicas de Teste de Software Profa. Dra. Sandra Fabbri Os requisitos de teste são extraídos de uma implementação em particular Teste dos detalhes procedimentais A maioria dos critérios dessa

Leia mais

15/03/2018. Professor Ariel da Silva Dias Paradigma Imperativo

15/03/2018. Professor Ariel da Silva Dias Paradigma Imperativo Professor Ariel da Silva Dias Paradigma Imperativo Imperare Comandar É o mais antigo de todos; Baseado no modo de funcionamento do computador; Caracterizada por três conceitos Variáveis; Atribuições; Sequência;

Leia mais

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre T. 04 Algoritmos e Programação Estruturada Objectivos: Aprender o conceito de algoritmo e suas características fundamentais

Leia mais

Capítulo III : A Linguagem Pascal Estruturas de Controlo

Capítulo III : A Linguagem Pascal Estruturas de Controlo Capítulo III : A Linguagem Pascal Estruturas de Controlo 1 Capítulo III : A Linguagem Pascal Estruturas de Controlo Sequência Estruturas de Base Selecção Repetição Sub-Programas Alternativa Múltipla Enquanto

Leia mais

Desenho de casos de teste

Desenho de casos de teste Desenho de casos de teste A função dos casos de teste é fornecer informação rápida e eficientemente Em teoria da informação, define-se informação em termos de redução de incerteza. Se há pouca incerteza,

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Técnica de Teste Estrutural Critérios de Teste 2 Casos de Teste Diante da impossibilidade

Leia mais

Testes de correção (de defeitos)

Testes de correção (de defeitos) Testes de correção (de defeitos) Revelam a presença de erros, mas NÃO a ausência Um teste bem sucedido é aquele que descobre o maior número de erros existentes. Deve ser utilizado em conjunto com técnicas

Leia mais

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho Gilson de Souza Carvalho gaucho.gilson@hotmail.com 3.1.3 Condições compostas Linguagem e Técnicas em Programação As condições que vimos até agora sempre foram únicas. Entretanto, conforme aumenta a complexidade

Leia mais

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes)

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes) Teste de Software Teste Funcional Teste Estrutural Teste Baseado em Erros (Análise de Mutantes) Profa Rosana T. V. Braga Material adaptado do material dos profs. Ellen Francine Barbosa e José Carlos Maldonado

Leia mais

Aula 01. Programação Condicional Programação repetitiva

Aula 01. Programação Condicional Programação repetitiva Logo Aula 01 Programação Condicional Programação repetitiva 2 Programação Condicional Uma programação condicional, como o próprio nome já diz, permite que determinadas instruções sejam executadas ou não,

Leia mais

Projeto de Casos de Teste

Projeto de Casos de Teste Projeto de Casos de Teste Alcemir Santos Slides baseados no Capítulo 4 do livro abaixo: Myers, Glenford J.. The Art of So1ware Tes3ng. Editora Wiley. 2004. 2ed. Este trabalho é licensiado sobre a licensa

Leia mais

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana Estrutura Condicional: aninhada, seleção de casos e outras. Aula 06 Prof. Piva Exercício... Faça um algoritmo que leia dois números inteiros e

Leia mais

Lógica de Programação I

Lógica de Programação I Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1 Comando Switch O comando Switch pode ser visto como uma especialização do comando if. Foi criado para facilitar um uso particular de comandos if encadeados.

Leia mais

No segundo caso, se a condição for verdadeira é executado o bloco-instruções1

No segundo caso, se a condição for verdadeira é executado o bloco-instruções1 1.3 Instruções de Decisão 1.3.1 Sintaxe 1. Decisão binária A decisão binária permite bifurcar a execução de um algoritmo em dois fluxos distintos, para tal é utilizada instrução if que tem duas formas

Leia mais

Programação I Estruturas de Decisão

Programação I Estruturas de Decisão Programação I Estruturas de Decisão Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Expressões Lógicas Em C, não existe um tipo específico para a representação de valores lógicos.

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Aula 20 Testes 3 Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Slides adaptados de: Staa, A.v. Notas de Aula em Programacao Modular; 2008. Teste de Caixa Branca O que

Leia mais

Treinamento Olimpíada Brasileira de Informática

Treinamento Olimpíada Brasileira de Informática Treinamento Olimpíada Brasileira de Informática Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 03 1/2 Estrutura Condicionais Linguagem de Programação C Bruno Otávio, George,

Leia mais

Engenharia de Software

Engenharia de Software Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 Verificação e Validação (V&V) S.L.Pfleeger (Cap.8 & 9) R.Pressman (Cap.13 & 14) I.Sommerville (Cap.22 & 23) Introdução Verificação

Leia mais

Prática 10 - Funções

Prática 10 - Funções Programação de Computadores I UFOP DECOM June 9, 2016 Prática 10 - Funções Abstract Nesta aula prática você vai aprender a definir e usar funções em um programa. Contents 1 Funções 1 1.1 Definição e chamada

Leia mais

A linguagem C (visão histórica)

A linguagem C (visão histórica) A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,

Leia mais

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES? 6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES? Atualmente existem muitas maneiras de se testar um software. Mesmo assim, existem as técnicas que sempre foram muito utilizadas em sistemas

Leia mais

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada. Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens

Leia mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

Compiladores. Análise Léxica

Compiladores. Análise Léxica Compiladores Análise Léxica Cristiano Lehrer, M.Sc. Introdução (1/3) Análise léxica é a primeira fase do compilador. A função do analisador léxico, também denominado scanner, é: Fazer a leitura do programa

Leia mais

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de

Leia mais

Instruções condicionais

Instruções condicionais Folha Prática Instruções condicionais 1 Instruções condicionais - Indentação e comentários para facilitar a leitura e compreensão do código escrito em C. - Relação entre algoritmo e programa. - Correspondência

Leia mais

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL Prof. André Backes FLUXOGRAMAS Condição ou Decisão Representado por losangos Normalmente contém uma pergunta do tipo Sim/Não ou um teste de Verdadeiro/Falso.

Leia mais

Introdução ao Teste de Software

Introdução ao Teste de Software Introdução ao Teste de Software Ricardo A. Ramos [Baseado na apresentação do LABS ICMC-USP -> http://www.labes.icmc.usp.br] Organização Introdução Teste de Software Terminologia e Conceitos Básicos Técnicas

Leia mais

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

2.2.5 EXPRESSÕES - Regras para o cálculo de valores Métodos de Programação I Departamento de Matemática, FCTUC 30 2.2.5 EXPRESSÕES - Regras para o cálculo de valores As expressões fornecidas ao computador, quer tenham variáveis, constantes ou apenas literais,

Leia mais

Teste de Validação. ações visíveis ao usuário e entradas e saídas do sistema reconhecíveis pelo usuário

Teste de Validação. ações visíveis ao usuário e entradas e saídas do sistema reconhecíveis pelo usuário Testes Teste de Validação Objetivos: Garantir que... 1)... todos os requisitos funcionais sejam satisfeitos 2)... todas as características comportamentais sejam obtidas 3)... todos os requisitos de desempenho

Leia mais

ESTRUTURAS DE CONTROLE

ESTRUTURAS DE CONTROLE ESTRUTURAS DE CONTROLE ESTRUTURA SEQUENCIAL E ESTRUTURAS CONDICIONAIS Introdução à Ciência da Computação Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURAS CONDICIONAIS Estrutura Condicional Simples

Leia mais

Engenharia Civil. Introdução à Programação

Engenharia Civil. Introdução à Programação Engenharia Civil Introdução à Programação Como se faz um algoritmo computacional? Exemplo Exemplo Será que o algoritmo vai funcionar? Questões: Área de uma circunferência programa area AREA, RAIO: real

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.4. Estruturas de Controle 3.4.1. Comandos

Leia mais

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura

Leia mais

Programação Estruturada

Programação Estruturada Algoritmos e Técnicas - Estruturas de Controle de Fluxo - Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizada para apresentar

Leia mais

Aula 6 Instruções de Seleção Cleverton Hentz

Aula 6 Instruções de Seleção Cleverton Hentz Aula 6 Instruções de Seleção Cleverton Hentz Sumário de Aula Instrução Condicional Instrução Escolha Teste de Mesa 2 Introdução O fluxo de execução é a sequência(ordem) em que as instruções são executadas

Leia mais

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos 46 4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos Para definir a representação de um modelo para problemas de planejamento

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Introdução a Testes de Software. Ricardo Argenton Ramos

Introdução a Testes de Software. Ricardo Argenton Ramos Introdução a Testes de Software Ricardo Argenton Ramos ricargentonramos@gmail.com Agenda da Aula Introdução sobre Testes; Testes Funcionais de software; Testes Estruturais de Software; Teste de Software

Leia mais

Linguagem de programação: Pascal

Linguagem de programação: Pascal Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

C Comandos de Controle

C Comandos de Controle C Comandos de Controle Adriano Cruz adriano@nce.ufrj.br 19 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Revisão da Seção Introdução Comandos de Teste Comandos de

Leia mais

Garantia de Qualidade

Garantia de Qualidade Garantia de Qualidade Teste de Software Profa Rosana Braga Material produzido por docents do Labes e revisado por Simone Souza Disciplina: Engenharia de Software ICMC/USP O Processo de Engenharia de Software

Leia mais

Compilador de LP3 para C3E e P3

Compilador de LP3 para C3E e P3 Compilador de LP3 para C3E e P3 Luís Gil 1 13 de Junho de 2005 1 estudante de Ciências Informáticas no Instituto Superior Técnico 1 Introdução Este relatório descreve a sintaxe e a semântica da Linguagem

Leia mais

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Teste de Software Parte 2 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Técnica Estrutural (Caixa Branca) Ø Baseada no conhecimento da estrutura interna (implementação) do

Leia mais

Engenharia de Software

Engenharia de Software Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação

Leia mais

Recursividade, Tentativa e Erro

Recursividade, Tentativa e Erro Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas

Leia mais

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema ALGORITMIA Resolução De Problemas Em Informática Docente: Ana Paula Afonso 2000-2001 Resolução de Problemas 1. Analisar o problema Conhecer o bem o problema Descrever o problema: subdividir, detalhar 2.

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Estruturas condicionais Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Comandos condicionais

Leia mais

Comandos de Controle do Programa

Comandos de Controle do Programa Comandos de Controle do Programa Comandos de Seleção - if, else, switch Comandos de Iteração - for, while, do-while Comandos de Desvio - return, goto, break, continue O Comando if O if O else O if-else-if

Leia mais

Ficha de Avaliação Sumativa. Notas Gerais:

Ficha de Avaliação Sumativa. Notas Gerais: Ficha de Avaliação Sumativa EFA Tecnológico - Técnico de Informática e Sistemas UFCD:0783 Programação em C C++ - Ciclos e Decisões Duração: 150 minutos Nome Formando: Data: / / Formador: João Leitão :

Leia mais

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos. Programação Um programa é uma sequência de instruções de uma linguagem de programação (VB no nosso caso). Cada instrução representa uma qualquer acção que nós pretendemos ver executada. Programar consiste

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy

Leia mais

SSC 0721 Teste e Validação de Software

SSC 0721 Teste e Validação de Software SSC 0721 Teste e Validação de Software Conceitos básicos Prof. Marcio E. Delamaro delamaro@icmc.usp.br SSC 0721 Teste e Validação de Software ICMC/USP p. 1 O que é teste Atividade de executar um programa

Leia mais

Linguagem C/C++ Estrutura Condicional. Prof: Rosemary Melo

Linguagem C/C++ Estrutura Condicional. Prof: Rosemary Melo Linguagem C/C++ Estrutura Condicional Prof: Rosemary Melo Estrutura Condicional if... (simples) Sintaxe (como o comando deve ser escrito): if (condição) comando; ou, no caso de mais de um comando: if (condição)

Leia mais

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais

Leia mais

C Comandos de Controle

C Comandos de Controle C Comandos de Controle Adriano Cruz adriano@nce.ufrj.br Instituto de Matemática Departamento de Ciência da Computação UFRJ 15 de agosto de 2013 Adriano Cruz adriano@nce.ufrj.br (IM-DCC-UFRJ)C Comandos

Leia mais

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

LINGUAGEM C: COMANDOS DE REPETIÇÃO

LINGUAGEM C: COMANDOS DE REPETIÇÃO LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições

Leia mais

Aula Anterior. Decomposição algorítmica (continuação)

Aula Anterior. Decomposição algorítmica (continuação) Aula Anterior Decomposição algorítmica (continuação) Degenerescência da decomposição básica da solução em três etapas Método de decomposição modificado à entrada Associação de diferentes valores de entrada

Leia mais

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Teste de Software Parte 2 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Técnica Estrutural (Caixa Branca) Ø Baseada no conhecimento da estrutura interna (implementação) do

Leia mais

& somadosnumeros = valor

& somadosnumeros = valor Correção exercícios Exercício 1 Exercício 2 a) scanf( %d", &valor); b) printf("o produto de %d e %d e %d\n", x, y, z) ; c) somadosnumeros = primeironumero + segundonumero d) /* Programa para determinar

Leia mais

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved. Programação Folha Prática 5 Lab. 5 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 5 5ª semana ESTRUTURAS

Leia mais

Aulas Anteriores. Detalhes da linguagem de programação

Aulas Anteriores. Detalhes da linguagem de programação Aulas Anteriores Detalhes da linguagem de programação Elementos básicos (identificadores, constantes, símbolos gráficos) Estrutura básica de um programa (cabeçalho, parte declarativa, parte de execução)

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.

Leia mais

Introdução à Programação I

Introdução à Programação I Introdução à Programação I Programação Estruturada Álgebra Booleana e Expressões Compostas Material da Prof. Ana Eliza Definição: Chama-se proposição todo o conjunto de palavras ou símbolos que exprimem

Leia mais

Expressões e sentença de atribuição

Expressões e sentença de atribuição Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

IEC081 Introdução à Ciência dos Computadores Estruturas Condicionais em Linguagem C

IEC081 Introdução à Ciência dos Computadores Estruturas Condicionais em Linguagem C IEC081 Introdução à Ciência dos Computadores Estruturas Condicionais em Linguagem C Turma: 01A / 01B / 01C Professor: abíola Nakamura E-mail: fabiola@icomp.ufam.edu.br Página: iccufam.weebly.com Resolução

Leia mais

Introdução à Programação. Uma Abordagem Funcional

Introdução à Programação. Uma Abordagem Funcional Introdução à Programação Uma Abordagem Funcional Tipos em Haskell Linguagem fortemente tipada Em Haskell, conhecendo-se o tipo das operações e funções que compõem uma expressão podemos determinar o tipo

Leia mais

Fundamentos de Programação em Python

Fundamentos de Programação em Python Fundamentos de Programação em Python Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 23 de junho de 2017 Ementa do

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Instruções condicionais e Operadores Sumário Instruções Condicionais If Switch Precedência dos operadores 1 Instruções condicionais A condição if executa uma instrução caso a expressão

Leia mais

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO. Prof. Esp. Fabiano Taguchi

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO. Prof. Esp. Fabiano Taguchi ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com ALGORITMOS Em nosso cotidiano muitas situações requerem uma tomada de decisão,

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Para aprender uma linguagem de programação podemos começar por conhecer os vocábulos ou símbolos que formam o seu léxico e depois aprender como esses vocábulos integram as instruções (frases) que compõe

Leia mais

Matemática Discreta Parte 11

Matemática Discreta Parte 11 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta Parte 11 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

Leia mais

Apêndice 1. Recomendações para testes de módulos

Apêndice 1. Recomendações para testes de módulos Recomendações para testes de módulos - 1 Apêndice 1. Recomendações para testes de módulos O presente conjunto de recomendações tem por objetivo definir um conjunto mínimo de critérios de seleção de casos

Leia mais

LINGUAGEM C CONTROLE DE FLUXO

LINGUAGEM C CONTROLE DE FLUXO LINGUAGEM C CONTROLE DE FLUXO Introdução à Programação Prof. Cayo Fontana SUMÁRIO Instruções Condicionais Simples Composta Seleção Instruções de Repetição Instruções de Desvio INSTRUÇÕES CONDICIONAIS Praticamente

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 60 minutos Nome: Número: Este teste tem um conjunto de 8

Leia mais

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre Correção do º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 3 de Junho de 26, 2º Semestre. (2.) Perguntas de resposta rápida de Fortran (.4 valores cada).. Todos os componentes

Leia mais

Linguagens de Programação. Marco A L Barbosa

Linguagens de Programação. Marco A L Barbosa Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Capítulo 1: Alfabetos, cadeias, linguagens

Capítulo 1: Alfabetos, cadeias, linguagens Capítulo 1: Alfabetos, cadeias, linguagens Símbolos e alfabetos. Um alfabeto é, para os nossos fins, um conjunto finito não vazio cujos elementos são chamados de símbolos. Dessa maneira, os conceitos de

Leia mais

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento Teste de Software 3 Teste de Software Objetivo: Executar software para revelar erros/falhas ainda não descobertos Pode gastar 40% do esforço de desenvolvimento 2 Teste de Software Defeito (fault, defects)

Leia mais

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos Funções SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves ICMC/USP São Carlos Slides baseados no material gentilmente cedido pela Profa Simone Senger Souza 2 MODULARIZAÇÃO Um

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Mais um tipo numérico print() formatado: clássico pythônico Tuplas

Leia mais

Programação II. Aula 3

Programação II. Aula 3 Programação II Aula 3 Algoritmo Algoritmo: REVISÃO qualquer procedimento bem definido que toma algum valor como entrada e produz algum valor como saída. Técnica de refinamentos sucessivos: dividir um processo

Leia mais

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Funções Resumo Aula Anterior Tabelas Strings (Tabelas de Caracteres) 2 1 Resumo Funções Definição Protótipo e implementação return e void Passagem por valor Exemplos 3 Funções

Leia mais

Fundamentos Programação

Fundamentos Programação Fundamentos Programação A programação de computadores não é difícil. Realmente só requer algo como: Aprender alguns conceitos gerais Ser cuidadoso, organizado e lógico Praticar até aprender a dominar a

Leia mais

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem: Computação e Programação (2009/2010-1º Semestre) 1º Teste MEMec - LEAN (11/11/2009) DURAÇÃO: 1h30m RESOLUÇÃO Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha,

Leia mais