Ferramenta de Testes de Programas para Auxílio na Aprendizagem de Programação



Documentos relacionados
Portal Sindical. Manual Operacional Empresas/Escritórios

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

Manual SAGe Versão 1.2 (a partir da versão )

Manual do Visualizador NF e KEY BEST

Manual de usuário. do sistema multicálculo CotakWeb

Manual do Sistema. SMARSA WEB Atendimento de Processos

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Manual de uso do RM Portal Acessando o portal

Documento de Análise e Projeto VideoSystem

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Processo de Controle das Reposições da loja

Ministério da Cultura

Tutorial Módulo Frequência

GUIA RÁPIDO DE UTILIZAÇÃO DO PORTAL DO AFRAFEP SAÚDE

Unidade 5. Aba Anexos. Objetivos de Aprendizagem. Ao final desta Unidade, você deverá ser capaz de:

PROCEDIMENTOS PARA A UTILIZAÇÃO DO SISTEMA DE SOLICITAÇÃO DE ORDEM DE SERVIÇO (SOSI) STI Unesp - Campus Experimental de Ourinhos

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

GRRF GUIA DE RECOLHIMENTO RESCISÓRIA DO FGTS PROCEDIMENTOS NA FOLHA CONSISA SGRH

Histórico de Revisão Data Versão Descrição Autor

2013 GVDASA Sistemas Cheques 1

Sistema de Acompanhamento e Gestao Tecnologica SAGETEC TELAS

Boletim Técnico. O objetivo desse documento é apresentar de forma macro, todas as alterações efetuadas no módulo do Patrimônio

Sistema de HelpDesk da SESAU Guia do Usuário

ROTINAS PADRÕES DO SISTEMAS

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

GUIA BÁSICO DA SALA VIRTUAL

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

2.0.0.X. Storage Client. TecnoSpeed. Tecnologia da Informação. Manual do Storage Client

Manual Geral do OASIS

Versão Liberada. Gerpos Sistemas Ltda. Av. Jones dos Santos Neves, nº 160/174

ADSE DIRETA MANUAL DE UTILIZAÇÃO PARA PRESTADORES DA REDE DA ADSE

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Escritório Virtual Administrativo

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

Manual Operacional SIGA

Ambiente de Pagamentos

MANUAL DE UTILIZAÇÃO

Treinamento. Módulo. Escritório Virtual. Sistema Office. Instruções para configuração e utilização do módulo Escritório Virtual do sistema Office

GRS Gerador de Redes Sistêmicas. (outubro/2004)

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União

O GEM é um software 100% Web, ou seja, você poderá acessar de qualquer local através da Internet.

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

MODULO DE GESTÃO MANUTENÇÃO DE MATRÍCULA. O módulo de Gestão tem por objetivo gerenciar as atividades que ocorrem durante um ano letivo.

Faturamento Eletrônico - CASSEMS

Noções de. Microsoft SQL Server. Microsoft SQL Server

Ajuda On-line - Sistema de Portaria. Versão 4.8.J

Portal de Fornecedores Não-Revenda

1. O que é GLPI? 2. Processo de atendimento

Guia do usuário GLPI. Versão Modificada- Thiago Passamani

Sistema de Controle de Solicitação de Desenvolvimento

SISTEMA DE PRODUTOS E SERVIÇOS CERTIFICADOS. MÓDULO DO CERTIFICADOR MANUAL DE OPERAÇÃO Versão 2.4.6

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Objetivo. Este documento tem como objetivo demonstrar o conceito, o processo de instalação e o funcionamento do SITEF (Tef dedicado).

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, cj. 121 CEP São Paulo - SP (11)

Pag: 1/20. SGI Manual. Controle de Padrões

1. Escritório Virtual Atualização do sistema Instalação e ativação do sistema de Conexão...5

GERENCIADOR DE CONTEÚDO

SIGECORS. Sistema de Gerenciamento de Resíduos Sólidos Industriais

cartórios as funcionalidades disponíveis em todas as três Centrais de Informação (RCTO, CEP e CESDI) e servir como apoio nas ações diárias.

SISTEMA INFORMATIZADO DE REGULAÇÃO E CONTROLE DO ICS

Manual do Sistema de Cadastro de Cultivares Locais, Tradicionais e Crioulas

Dois novos relatórios estão disponíveis nesta versão do Imobiliária 21. São eles: Devedores e Imóvel por Área. Veja abaixo como emitir cada um.

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

LILDBI-WEB 1.6. Administração e produção de fontes de informação. Sueli Mitiko Yano Suga sugasuel@bireme.ops-oms.org

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Procedimentos para Reinstalação do Sisloc

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

ISO/IEC 12207: Gerência de Configuração

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Sistema Protocolo, Tramitação e Arquivamento de Processos Manual do Usuário

TUTORIAL COLEGIADOS EM REDE

Manual Xerox capture EMBRATEL

Ambiente Moodle 2º Semestre de 2010 Modelo A4

RESUMO DE CATALOGAÇÃO

Agendamento para Importação de Notas Fiscais

SISTEMA DE GRERJ ELETRÔNICA JUDICIAL

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Cadastro de Franquias. Cadastro de Tipo. Configuração da Exportação

VALIDAÇÃO DOS DADOS. JOTEC Tecnologia em Software. Manual Validação dos dados 1

Boletim Técnico. Empresa. Vagas. Central de Estágio. Desenvolvimento/Procedimento. Acesse Atividades Acadêmicas Estágio Empresa

Usuário deve preencher o código do Registro da sua Empresa (composto de 4 dígitos), sua senha, e teclar o botão ENVIAR.

MANUAL PARA EMISSÃO DO CERTIFICADO FITOSSANITÁRIO DE ORIGEM CONSOLIDADO (CFOC) ELETRÔNICO

Orientação a Objetos

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Manual Administrador - Mídia System

Cadastro Avaliação 2013 Manual de Instruções

Documentação do site de imóveis e parcerias RIO ONLINE

SICON Cronograma Físico Financeiro Perfil - Fiscal de Contrato

MODULO DE GESTÃO MANUTENÇÃO DE MATRÍCULA. O módulo de Gestão tem por objetivo gerenciar as atividades que ocorrem durante um ano letivo.

UML - Unified Modeling Language

Engenharia de Software III

VIAÇÃO SÃO BENTO LTDA.

Manual de Atualização MATERIAL DE APOIO - KB IMÓVEIS

Sistema de Acompanhamento ao Desempenho do Aluno

Transcrição:

Ferramenta de Testes de Programas para Auxílio na Aprendizagem de Programação Denise Santiago (FURB) denise@senior.com.br Maurício Capobianco Lopes (FURB) mclopes@furb.br Resumo. Este artigo apresenta uma ferramenta de apoio para testes de programas utilizando o teste de validação, com o intuito de auxiliar os alunos no aprendizado de programação. Através da ferramenta o aluno pode testar de forma on-line os seus programas com casos de testes previamente preparados pelo professor. Palavras-Chave: Ensino-Aprendizagem de Programação, Testes de Software. 1 Introdução O potencial e os recursos de informática existentes atualmente tornaram-se fundamentais para os processos de ensino. Segundo Sanderink (2002), o uso do computador em modelos de ensino-aprendizagem permite que os alunos realizem um processo interativo de aprendizado, uma vez que eles podem usá-lo no seu próprio ritmo e em qualquer momento. No ensino de programação de computadores existem diversas maneiras de auxiliar o aluno na resolução de problemas de programação. Assim, este artigo apresenta uma ferramenta que possibilita ao aluno testar seus programas e verificar se o mesmo atende os requisitos projetados para o mesmo. O teste de software é uma das áreas de pesquisa da Engenharia de Software que constitui um dos elementos principais para aprimorar a produtividade e ajudar a fornecer evidências da confiabilidade dos sistemas. A realização dos testes pode ser planejada e executada através de métodos que os auxiliam a se tornar mais eficazes e eficientes. Os conceitos sobre teste de software podem ser muito úteis para os alunos de uma disciplina de programação, uma vez que o aluno, nesta fase do aprendizado, dispõe de poucos recursos ou conhecimento para testar adequadamente todos os possíveis casos de erro em seu sistema. Assim, além de apontar os casos de teste não solucionados pelo programa, o aluno já irá adquirindo uma conscientização sobre a importância de um bom teste para assegurar a qualidade do software desenvolvido. Segundo Hetzel (1987) o teste é um processo de aquisição de confiança no fato de que um programa ou sistema faz o que se espera dele, ou seja, é o processo de se experimentar ou avaliar um sistema por meios manuais ou automáticos, de

modo a verificar se ele atende às necessidades especificadas ou a identificar as diferenças entre os resultados esperados e reais. Dentro dos conceitos da Engenharia de Software, encontram-se vários tipos de teste de software, entre eles o teste de validação, também conhecido como teste de aceitação. O objetivo deste teste é assegurar que as funções do sistema atinjam os objetivos esperados e de forma correta. Um plano de teste esboça as classes de testes a serem realizadas e um procedimento de teste define os casos de teste específicos que serão usados para demonstrar a conformidade com os requisitos (Pressman, 1995). Deste modo, este artigo apresenta uma ferramenta desenvolvida para auxiliar o aluno nos testes dos exercícios propostos em uma disciplina de programação utilizando o teste de aceitação/validação. Para isto é disponibilizado um banco de dados de exercícios, através do qual o aluno pode selecionar e resolver um exercício, submetendo o seu programa à ferramenta para verificar se o mesmo está correto. A ferramenta disponibiliza ao aluno os resultados dos testes realizados em seu programa. No caso de erro o aluno pode corrigir o programa e imediatamente submeter a nova correção. Para a implementação da ferramenta proposta neste trabalho foram utilizados os componentes da biblioteca CLX que foi incluída na versão 6.0 do ambiente de desenvolvimento Delphi e, como o sistema deve operar de forma distribuída em uma rede local, foi utilizada a tecnologia CORBA, o que facilita o desenvolvimento de um módulo específico para o professor e outro módulo para uso dos alunos, operando em um laboratório de informática, por exemplo. Mais detalhes sobre o desenvolvimento deste trabalho podem ser vistos em Santiago (2002). 2 Testes de Software Segundo Inthurn (2001) existem várias atividades que podem ser utilizadas no processo de desenvolvimento do software para garantir a qualidade do produto final, porém, apesar de todos os métodos, técnicas e ferramentas utilizadas, falhas no produto podem ocorrer. Dessa forma, dentro do processo de desenvolvimento, a etapa de teste é de grande importância para a identificação e eliminação de erros. Para Paula Filho (2001) os testes de software devem ser cuidadosamente desenhados e planejados, para garantir a eficácia dos mesmos. Durante e após a realização dos testes, deve-se inspecionar os resultados, comparando os resultados previstos com os obtidos, para garantir um nível adequado de confiança de que o software atinge os seus requisitos, contribuindo para a qualidade do produto. Rocha (2001) destaca que são quatro as etapas envolvidas pela atividade de teste: planejamento, projeto de casos de teste, execução e avaliação dos resultados. Este trabalho enfoca as fases de execução e avaliação dos resultados, ficando para implementações futuras o planejamento e o projeto de casos de teste. A atividade de teste, segundo Paula Filho (2001) pode ser classificada em:

a) teste de unidade: verifica se um elemento pode ser logicamente tratado como uma unidade de implementação, como uma sub-rotina, um módulo ou uma classe; b) teste de integração: verifica se as unidades testadas de forma individual executam corretamente quando integradas; c) teste de aceitação: também conhecido como teste de validação, verifica se o software atende os requisitos especificados. Paula Filho (2001) complementa esta classificação definindo dois tipos de métodos: a) método da caixa branca ou teste estrutural: determina defeitos na estrutura interna do software através de casos de testes que exercitem os possíveis caminhos de execução; b) método da caixa preta ou teste funcional: determina se os requisitos são total ou parcialmente satisfeitos pelo software. Esses testes não verificam como ocorre o processo, mas apenas os resultados obtidos. Dessa forma os testes de unidade geralmente são de caixa branca, os testes de aceitação geralmente são de caixa preta e os testes de integração costumam misturar testes de caixa preta e caixa branca. A ferramenta proposta neste trabalho utiliza o teste de aceitação para verificar se os programas desenvolvidos pelo aluno estão corretos. Segundo Pressman (1995) este tipo de teste é bem sucedido quando o software funciona de uma maneira razoavelmente esperada. Para a realização dos testes de aceitação, deve-se definir os casos de testes que serão submetidos ao software e os resultados esperados para as respectivas entradas. Isto é uma característica dos testes de caixa preta, que demonstram a conformidade do sistema com os requisitos, para que a validação do software seja realizada. 3 A Ferramenta Desenvolvida Conforme comentado anteriormente, a ferramenta apresentada neste artigo aplica um método de teste de caixa preta para efetuar a correção dos exercícios submetidos pelos alunos em uma disciplina de programação. Assim, ao concluir um exercício proposto pelo professor, o aluno pode submete-lo à correção. A partir de um conjunto de dados de entrada padrão, o sistema irá comparar os resultados alcançados pelo programa do aluno com os resultados esperados, informando ao aluno se o programa atende ou não as especificações do enunciado. A ferramenta está dividida em dois módulos distintos: a) módulo do professor: neste módulo são cadastrados os alunos que podem ter acesso aos exercícios, bem como podem ser cadastrados os exercícios e verificadas suas correções;

b) módulo do aluno: através deste módulo o aluno tem acesso aos exercícios disponibilizados pelo professor, pode enviar o seu exercício e verificar os erros existentes. A especificação do sistema foi feita utilizando-se alguns diagramas da UML. A ferramenta CASE utilizada para esta especificação foi o Rational Rose, devido aos recursos disponíveis para aplicar as representações da UML, como o Diagrama de Classes, o Diagrama de Casos de Uso e o Diagrama de Seqüência (Furlan, 1998). A Figura 1 apresenta os principais casos de uso do sistema. Figura 1 Diagrama de Casos de Uso Os casos de uso serão detalhados logo a seguir. Já a Figura 2 demonstra o diagrama de classes do sistema. Figura 2 Diagrama de Classes

Foram identificadas as seguintes classes no sistema: a) aluno: responsável por manter as informações dos alunos. Apenas alunos cadastrados podem ter acesso aos exercícios; b) exercício: responsável por manter as informações sobre os exercícios cadastrados pelo professor; c) testes: é uma agregação da classe exercício, uma vez que um exercício pode ter vários casos de testes; d) entrega: responsável por manter as informações sobre os exercícios enviados pelo aluno. O aluno pode enviar o mesmo exercício várias vezes; e) resultados: responsável pelas informações sobre a correção do exercício. Os resultados armazenados são específicos para cada caso de teste submetido ao programa. Os diagramas de seqüências do sistema podem ser vistos com detalhes em Santiago (2002). A seguir será detalhado o uso do sistema, segmentando a apresentação a partir dos casos de uso identificados. 3.1 Cadastrar aluno Neste caso de uso é realizada a entrada dos dados referentes aos alunos da disciplina de programação. Somente através do módulo do professor é que os alunos podem ser cadastrados. O professor deve cadastrar todos os alunos que podem ter acesso ao módulo do Aluno, conforme mostra a Figura 3. Figura 3 Cadastro de alunos do módulo Professor Nesta tela o professor informa o código do aluno, seu nome completo, uma senha e o diretório do aluno no servidor. Através desta tela o professor pode incluir, alterar e excluir alunos. A informação do diretório é muito importante, pois quando o aluno submeter o seu exercício para correção o sistema vai gravar o código fonte, o executável e os resultados obtidos, neste diretório.

3.2 Cadastrar Exercício Neste caso de uso é realizada a entrada dos dados referentes aos exercícios. Somente através do módulo do professor é que os exercícios podem ser cadastrados. O professor cadastra os exercícios através do método CadastrarExercício da classe Exercício, informando o código do exercício, o nome do documento texto que contém o enunciado do exercício, uma pequena descrição do exercício, o diretório onde está gravado esse documento, uma data limite para a entrega e se o aluno pode visualizar os testes, conforme a Figura 4. Figura 4 Cadastro de Exercícios do módulo Professor Nesta tela, algumas informações são muito importantes para o funcionamento da ferramenta, como o nome do exercício. Esse nome corresponde ao nome do arquivo que contém o enunciado do exercício. A informação do diretório também é importante, pois corresponde ao diretório no servidor onde o enunciado do exercício está gravado. É através dessas duas informações que a ferramenta vai localizar o exercício para enviar ao módulo do Aluno. A data limite indica para o aluno o prazo que ele tem para a entrega do exercício. A ferramenta permite que o aluno entregue o exercício mesmo após a data especificada pelo professor, porém este pode verificar os alunos que entregaram o exercício com atraso através da consulta de resultados. O campo visualiza testes indica se o aluno pode receber os arquivos de entrada que não geraram as saídas esperadas quando submetidos ao programa enviado. Se este campo estiver preenchido com N o aluno apenas recebe a informação sobre o número de erros e o número de acertos que obteve, não tendo a indicação sobre quais circunstâncias os erros ocorreram. Através do botão Testes mostrado na Figura 4 o professor deve cadastrar os casos de testes para o exercício. Para isto, ele deve informar uma seqüência para o teste, o nome do arquivo texto que contém os dados de entrada, o nome do arquivo texto que contém os dados esperados na saída e o diretório onde esses arquivos

estão armazenados no servidor de arquivos. A tela de cadastro de testes é apresentada na Figura 5 Figura 5 Cadastro de Testes Todas as informações desta tela também são utilizadas para a correção dos exercícios submetidos pelos alunos. Para cada exercício cadastrado é possível relacionar vários arquivos de casos de testes (entradas e saídas). Os arquivos de entrada e saída devem ser preparados pelo professor que deve informar ao aluno o formato das informações inseridas nos mesmos através do enunciado do exercício. 3.3 Carregar Exercício O aluno acessa o seu módulo através do método ValidarAluno. Esse método solicita o código do aluno e sua senha e verifica se o aluno está cadastrado no sistema e se a senha informada confere com a cadastrada, permitindo assim o acesso às funcionalidades do módulo. Acessando o módulo, o aluno pode, através do método CarregarExercicio verificar quais os exercícios estão disponibilizados pelo módulo do professor. Ao acessar essa tela a ferramenta já carrega uma lista com todos os exercícios cadastrados pelo módulo do professor, conforme a Figura 6. Figura 6 Tela de Seleção de Exercícios do módulo Aluno

Nesta tela o aluno pode verificar todas as informações sobre os exercícios cadastrados pelo professor e selecionar qual o exercício deseja fazer o download do enunciado. Para fazer o download basta posicionar o cursor sobre o exercício desejado na lista e clicar no botão Download. O sistema apresenta a tela de download como mostra a Figura 7. Figura 7 Download do exercício O sistema já carrega as informações do endereço do servidor e o caminho e nome do arquivo onde está o enunciado do exercício selecionado. O aluno apenas deve informar o caminho e o nome do arquivo a ser gerado no seu computador. Ao clicar no botão Download o módulo do aluno irá realizar a transferência do arquivo para o diretório informado no campo Arquivo no Cliente. 3.4 Corrigir Exercício Neste caso de uso o aluno envia a resolução do programa desenvolvido por ele, para que a ferramenta possa corrigí-lo e recebe uma resposta com os casos de testes não aceitos pela ferramenta. Inicialmente o aluno envia o exercício implementado e a classe Entrega grava as informações através do método AutenticarEntrega. A tela de envio é muito semelhante à tela de seleção de exercícios (Figura 8). Figura 8 Seleção de Exercícios para correção

Para enviar a resolução do exercício, o aluno deve posicionar o cursor sobre o mesmo e clicar no botão Upload (Figura 9). Figura 9 Envio do Exercício A ferramenta carrega automaticamente as informações do endereço do servidor de arquivos e do diretório do aluno neste servidor. É neste diretório que o programa enviado é gravado. O aluno deve informar o diretório no seu computador onde está o exercício resolvido e o nome do arquivo. Com estas informações preenchidas basta clicar no botão Upload para transferir o arquivo. A classe Entrega recebe as informações sobre os casos de testes que devem ser aplicados ao programa e efetua a autenticação da entrega, gravando um registro em uma tabela de entregas com as seguintes informações: código do aluno, código do exercício, seqüência da entrega, data de entrega e nome do exercício enviado. A ferramenta efetua, então, os testes, através do método CorrigirExercício (Quadro 1), executando o arquivo recebido e submetendo todos os casos de testes cadastrados para o exercício em questão ao programa enviado pelo aluno. Automaticamente são comparados os arquivos de saída gerados pela solução do aluno com os arquivos de saídas corretos que estão armazenados no servidor para verificar o número de erros e o número de acertos que o aluno obteve. Para cada caso de teste submetido são registradas, em uma tabela de Resultados, as informações sobre o código do aluno, códigos do exercício, seqüência da entrega, número do caso de teste, número de acertos e número de erros, permitindo, assim, manter uma estatística da situação do aluno, para cada exercício. try Saida1 := TStringList.Create; Saida2 := TStringList.Create; QueryAlu := TQuery.Create(nil); QueryAlu.DatabaseName := 'TCCDenise'; QueryAlu.SQL.Add('SELECT DIRALU FROM ALUNO WHERE CODALU=:CODALU'); QueryAlu.ParamByName('CodAlu').AsString := _CodAlu;

QueryAlu.Open; Query := TQuery.Create(nil); Query.DatabaseName := 'TCCDenise'; Query.SQL.Add('SELECT * FROM TESTES WHERE CODEXE = :CODEXE'); Query.ParamByName('CodExe').AsInteger := _CodExe; Query.Open; Caminho1:='C:'+QueryAlu.FieldByName('DirAlu').AsString+'\'+_NomExe; while not(query.eof) do begin CaminhoFinal:= 'C:' + Query.FieldByName('DirTes').AsString + '\'; VarAux := Caminho1 + ' ' + CaminhoFinal; winexec(pchar(varaux),sw_hide); //Compara a Saida gerada com a Saida correta VNumAce := 0; VNumErr := 0; Arq1 := CaminhoFinal + 'Sai01.txt'; Arq2 := CaminhoFinal + 'S' + _CodAlu + '.txt'; Saida1.Clear; Saida2.Clear; Saida1.LoadFromFile(Arq1); Saida2.LoadFromFile(Arq2); for i:= 0 to Saida1.Count - 1 do if (Saida1.Strings[i] <> Saida2.Strings[i]) then inc(vnumerr) else inc(vnumace); QueryUpd := nil; try QueryUpd := TQuery.Create(nil); QueryUpd.DatabaseName := 'TCCDenise'; QueryUpd.SQL.Add('INSERT INTO RESULTADOS (CODALU,CODEXE,SEQENT,NUMTES,NUMACE,NUMERR) ' + 'VALUES (:CODALU,:CODEXE,:SEQENT,:NUMTES,:NUMACE,:NUMERR)'); QueryUpd.ParamByName('CodAlu').AsString := _CodAlu; QueryUpd.ParamByName('CodExe').AsInteger := _CodExe; QueryUpd.ParamByName('SeqEnt').AsInteger := _SeqEnt; QueryUpd.ParamByName('NumTes').AsInteger := Query.FieldByName('NumTes').AsInteger; QueryUpd.ParamByName('NumAce').AsInteger := VNumAce; QueryUpd.ParamByName('NumErr').AsInteger := VNumErr; QueryUpd.ExecSQL; finally QueryUpd.Free; end; Query.Next; end; finally Query.Free; QueryAlu.Free; Saida1.Free; Saida2.Free; end; Quadro 1 Método Corrigir Exercício Através do método EnviarResultados os resultados são, então, armazenados e é enviado ao aluno uma resposta indicando o tempo de execução do seu exercício e quantos erros e acertos ele obteve, preenchendo, assim, os três últimos campos da tela apresentada na Figura 9.

3.5 Verificar Correções Após o sistema registrar a correção dos exercícios submetidos pelo aluno, o Professor pode consultar essas correções para verificar a situação do aluno. O professor seleciona o aluno sobre o qual deseja verificar as correções. Com a informação do aluno a classe Entrega recebe as informações sobre os resultados através do método ReceberResultados e apresenta os resultados dos testes para o professor utilizando o método MostrarResultados. Na tela apresentada na Figura 10 o professor pode verificar as entregas de exercícios de cada um dos alunos cadastrados. Para isso ele deve informar o código do aluno e pressionar o botão Mostrar. O sistema mostra a lista de todas as entregas feitas pelo aluno selecionado. Figura 10 Tela de Consulta de Resultados As informações disponíveis nessa tela são o número do cadastro do exercício, o nome do documento onde está o enunciado do exercício, a data limite para a entrega do exercício, o número da entrega feita pelo aluno, a data que o aluno fez a entrega do exercício, o número do arquivo de teste submetido ao exercício, o número de acertos que o aluno obteve com a entrega, o número de erros que o aluno obteve com a entrega e o tempo em que o programa do aluno foi executado. 4 Considerações Finais O objetivo principal do trabalho, que era desenvolver uma ferramenta de apoio para testes de programas utilizando o teste de validação, foi alcançado com sucesso. A ferramenta foi desenvolvida e os casos de testes de validação podem ser aplicados nas correções dos programas submetidos pelos alunos. Em um método tradicional de ensino de programação, normalmente o professor fornece os exercícios em sala de aula para os alunos resolverem, estipulando um prazo de entrega. Após desenvolver e entregar o exercício o aluno não tem um feedback instantâneo do resultado. Muitas vezes, o próprio aluno não

tem experiência nem conhecimento para preparar casos de teste para validar o programa desenvolvido. Com a disponibilização desta ferramenta em uma disciplina de programação, o professor tem melhores condições de acompanhar o desenvolvimento dos alunos em relação aos exercícios, além de propiciar que o aluno possa receber o resultado do seu trabalho logo após o envio do mesmo, além de testar o programa com casos de testes que efetivamente permitam a validação do mesmo. Obviamente que a preparação do exercício e dos casos de teste continuam como responsabilidade do professor onde o mesmo deve observar os aspectos relevantes para os procedimentos de testes. Assim, algumas extensões para este trabalho serão aprimorar o módulo do professor, desenvolvendo uma ferramenta para auxiliar o professor na geração dos casos de testes, além de desenvolver regras para calcular uma nota para o aluno baseando-se nos seus acertos, erros e número de vezes que o aluno submeteu os exercícios. Referências bibliográficas FURLAN, José Davi. Modelagem de objetos através da UML. São Paulo: Makron Books, 1998. HETZEL, William. Guia completo ao teste de software. Rio de Janeiro: Campus, 1987. INTHURN, Cândida. Qualidade & teste de software. Florianópolis: Visual Books, 2001. PAULA FILHO, Wilson de Pádua. Engenharia de software. Fundamentos, métodos e padrões. Rio de Janeiro: LTC, 2001. PRESSMAN, Roger S. Engenharia de software. São Paulo: Makron Books, 1995. ROCHA, Ana Regina Cavalcanti da; MALDONADO, José Carlos; WEBER, Kival Chaves. Qualidade de Software Teoria e Prática. São Paulo: Prentice Hall, 2001. SANDERINK, Gerard C.H. Tendências no aprendizado com o auxílio do computador: das aulas para as virtuais salas de aula. Disponível em < http://www.tpo.com.br/xijabro/sanderink-traducao.doc >. Acesso em 15 Mai. 2002. SANTIAGO, Denise Ferramenta para testes de programas utilizando componentes da biblioteca CLX. 2002. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) - Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.