Ensino Integrado de Fundamentos de Programação e de Teste de Software
Resumo
A importância do ensino de teste para o desenvolvimento de software é amplamente reconhecida, mas somente uma parte muito pequena dos currículos dos cursos de computação é alocada a esse tipo de ensino. O ensino de teste deve começar o mais cedo possível para que uma cultura adequada de teste de software seja criada. Uma maneira de alcançar isso é ensinar teste de software juntamente com fundamentos de programação em disciplinas introdutórias dos cursos de computação. Neste artigo propõe-se a integração do ensino de teste de software com o ensino de fundamentos de programação. Para isso, pretende-se elaborar material didático integrado de fundamentos de programação e de teste de software e ainda desenvolver um ambiente, baseado na Web para submissão e avaliação automática de trabalhos práticos baseados em atividades de teste de software para auxiliar os processos de ensino e aprendizagem.Referências
J. Adams and J. Frens. Object centered design for Java: Teaching OOD in CS1. In 34th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’03), volume 35, pages 273–277, Reno, Nevada, USA, 2003.
E. Allen, R. Cartwright, and B. Stoler. DrJava: A lightweight pedagogic environment for Java. In 33rd ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE’02), volume 34, pages 137–141, Cincinnati, Kentucky, 2002.
C. Alphonce and P. Ventura. Object orientation in CS1-CS2 by design. In 7th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’02), volume 34, pages 70–74, Aarhus, Denmark, 2002.
E. F. Barbosa. Uma Contribuição ao Processo de Desenvolvimento e Modelagem de Módulos Educacionais. Tese de doutoramento, ICMC/USP, São Carlos, SP, Maio, 2004.
E. F. Barbosa, J. C. Maldonado, R. Leblanc, and M. Guzdial. Introducing testing practices into objects and design course. In 16th Conference on Software Engineering Education and Training (CSEE&T’03), pages 279–286, Madrid, Spain, 2003.
E. G. Barriocanal, M. A. S. Urbán, I. A. Cuevas, and P. D. Pérez. An experience in integrating automated unit testing practices in an introductory programming course. In ACM SIGCSE Bulletim, volume 34, pages 125–128, 2002.
K. Beck. Extreme Programming Explained: Embrace Change. Addison Wesley, 1999.
D. Buck and D. J. Stucki. Design early considered harmful: graduated exposure to complexity and structure based on levels of cognitive development. In 31 st SIGCSE Technical Symposium Computer Science Education, pages 16–20, 2000.
T. Y. Chen. Experience with teaching black-box testing in a computer science/software engineering curriculum. IEEE Transactions on Education, 47(01):42–50, 2004.
T. Y. Chen and P. L. Poon. Teaching black box testing. In IEEE International Conference Software Engineering: Education and Practice, pages 324–329, 1998.
S. Cooper, W. Dann, and R. Pausch. Teaching objects-first in introductory computer science. In 34th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’03), volume 35, pages 191–195, Reno, Navada, USA, 2003.
C. K. Della Corte. Ensino integrado de teste de software e fundamentos de programação. Exame de qualificação, ICMC/USP, São Carlos - SP, 2004. Mestrado (em curso).
R. A. Demillo. Mutation analysis as a tool for software quality assurance. In 4th IEEE International Computer Software and Applications Conference (COMPSAC’80), pages 390–393, Los Alamitos, CA,, 1980.
S. H. Edwards. Using software testing to move students from trial-and-error to reflection-in-action. In 35th SIGCSE Technical Symposium on Computer Science Education, pages 26–30, Norfolk, Virginia, USA, 2004.
M. H. Goldwasser. A gimmick to integrate software testing throughout the curriculum. In 33rd SIGCSE Technical Symposium on Computer Science Education (SIGCSE’02), volume 34, pages 271–275, Cincinnati, Kentucky,, 2002.
M. J. Harrold. Testing: A roadmap. In 22nd International Conference on Software Engineering (ICSE’00), Future of Software Engineering Track, pages 61–72, Limerick, Irlanda, 2000.
T. J. Hickey. Scheme-based web programming as a basis for a CS0 curriculum. In 35th SIGCSE Technical Symposium on Computer Science Education, pages 353–357, Norfolk, Virginia, USA, 2004.
J. R. Horgan and A. P. Mathur. Assessing testing tools in research and education. IEEE Software, 09(03):61–69, 1992.
J. Isong. Developing an automated program checker. The Journal of Computing in Small Colleges (JCSC), 16(03):218–224, 2001.
E. L. Jones. An experimental approach to incorporating software testing into the computer science curriculum. In 31st ASEE/IEEE Frontiers in Education Conference, pages 7–11, Reno, Nevada, 2001.
E. L. Jones. Grading student programs - a software testing approach. In 4th Annual Consortium on Small Colleges Southeastern Conference, volume 16, pages 185–192, Salem, Virginia, 2001.
B. W. Kernighan and R. Pike. The Practice of Programming. Addison Wesley, 1999.
M. Kolling and J. Rosenberg. Guidelines for teaching object orientation with java. In 6th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’01), volume 33, pages 33–36, Canterbury, UK, 2001.
J. C. Maldonado. Critérios Potenciais Usos: Uma Contribuição ao Teste Estrutural de Software. Tese de doutoramento, DCA/FEEC/UNICAMP, Campinas, SP, 1991.
Inc Object Mentor. JUnit, testing resources for extreme programming. Disponível em [link], Último acesso em 20/06/2003.
A. Patterson, M. Kölling, and J. Rosenberg. Introducing unit testing with BlueJ. In 8th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’03), Thessaloniki, Greece, 2003.
R. S. Pressman. Software Engineering - A Practitioner’s Approach. McGraw-Hill, 5th edition, 2001.
T. Shepard, M. Lamb, and D. Kelly. More testing should be taught. Communications of the ACM, 44(06):103–108, 2001.
A. Trivedi, D. C. Kar, and H. Patterson-McNeill. Automatic assignment management and peer evaluation. The Journal of Computing in Small Colleges (JCSC), 18(04):30–37, 2003.
A. M. R. Vincenzi. Orientação a Objetos: Definição e Análise de Recursos de Teste e Validação. Tese de doutoramento, ICMC/USP, São Carlos, SP, Maio, 2004.
E. Allen, R. Cartwright, and B. Stoler. DrJava: A lightweight pedagogic environment for Java. In 33rd ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE’02), volume 34, pages 137–141, Cincinnati, Kentucky, 2002.
C. Alphonce and P. Ventura. Object orientation in CS1-CS2 by design. In 7th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’02), volume 34, pages 70–74, Aarhus, Denmark, 2002.
E. F. Barbosa. Uma Contribuição ao Processo de Desenvolvimento e Modelagem de Módulos Educacionais. Tese de doutoramento, ICMC/USP, São Carlos, SP, Maio, 2004.
E. F. Barbosa, J. C. Maldonado, R. Leblanc, and M. Guzdial. Introducing testing practices into objects and design course. In 16th Conference on Software Engineering Education and Training (CSEE&T’03), pages 279–286, Madrid, Spain, 2003.
E. G. Barriocanal, M. A. S. Urbán, I. A. Cuevas, and P. D. Pérez. An experience in integrating automated unit testing practices in an introductory programming course. In ACM SIGCSE Bulletim, volume 34, pages 125–128, 2002.
K. Beck. Extreme Programming Explained: Embrace Change. Addison Wesley, 1999.
D. Buck and D. J. Stucki. Design early considered harmful: graduated exposure to complexity and structure based on levels of cognitive development. In 31 st SIGCSE Technical Symposium Computer Science Education, pages 16–20, 2000.
T. Y. Chen. Experience with teaching black-box testing in a computer science/software engineering curriculum. IEEE Transactions on Education, 47(01):42–50, 2004.
T. Y. Chen and P. L. Poon. Teaching black box testing. In IEEE International Conference Software Engineering: Education and Practice, pages 324–329, 1998.
S. Cooper, W. Dann, and R. Pausch. Teaching objects-first in introductory computer science. In 34th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’03), volume 35, pages 191–195, Reno, Navada, USA, 2003.
C. K. Della Corte. Ensino integrado de teste de software e fundamentos de programação. Exame de qualificação, ICMC/USP, São Carlos - SP, 2004. Mestrado (em curso).
R. A. Demillo. Mutation analysis as a tool for software quality assurance. In 4th IEEE International Computer Software and Applications Conference (COMPSAC’80), pages 390–393, Los Alamitos, CA,, 1980.
S. H. Edwards. Using software testing to move students from trial-and-error to reflection-in-action. In 35th SIGCSE Technical Symposium on Computer Science Education, pages 26–30, Norfolk, Virginia, USA, 2004.
M. H. Goldwasser. A gimmick to integrate software testing throughout the curriculum. In 33rd SIGCSE Technical Symposium on Computer Science Education (SIGCSE’02), volume 34, pages 271–275, Cincinnati, Kentucky,, 2002.
M. J. Harrold. Testing: A roadmap. In 22nd International Conference on Software Engineering (ICSE’00), Future of Software Engineering Track, pages 61–72, Limerick, Irlanda, 2000.
T. J. Hickey. Scheme-based web programming as a basis for a CS0 curriculum. In 35th SIGCSE Technical Symposium on Computer Science Education, pages 353–357, Norfolk, Virginia, USA, 2004.
J. R. Horgan and A. P. Mathur. Assessing testing tools in research and education. IEEE Software, 09(03):61–69, 1992.
J. Isong. Developing an automated program checker. The Journal of Computing in Small Colleges (JCSC), 16(03):218–224, 2001.
E. L. Jones. An experimental approach to incorporating software testing into the computer science curriculum. In 31st ASEE/IEEE Frontiers in Education Conference, pages 7–11, Reno, Nevada, 2001.
E. L. Jones. Grading student programs - a software testing approach. In 4th Annual Consortium on Small Colleges Southeastern Conference, volume 16, pages 185–192, Salem, Virginia, 2001.
B. W. Kernighan and R. Pike. The Practice of Programming. Addison Wesley, 1999.
M. Kolling and J. Rosenberg. Guidelines for teaching object orientation with java. In 6th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’01), volume 33, pages 33–36, Canterbury, UK, 2001.
J. C. Maldonado. Critérios Potenciais Usos: Uma Contribuição ao Teste Estrutural de Software. Tese de doutoramento, DCA/FEEC/UNICAMP, Campinas, SP, 1991.
Inc Object Mentor. JUnit, testing resources for extreme programming. Disponível em [link], Último acesso em 20/06/2003.
A. Patterson, M. Kölling, and J. Rosenberg. Introducing unit testing with BlueJ. In 8th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’03), Thessaloniki, Greece, 2003.
R. S. Pressman. Software Engineering - A Practitioner’s Approach. McGraw-Hill, 5th edition, 2001.
T. Shepard, M. Lamb, and D. Kelly. More testing should be taught. Communications of the ACM, 44(06):103–108, 2001.
A. Trivedi, D. C. Kar, and H. Patterson-McNeill. Automatic assignment management and peer evaluation. The Journal of Computing in Small Colleges (JCSC), 18(04):30–37, 2003.
A. M. R. Vincenzi. Orientação a Objetos: Definição e Análise de Recursos de Teste e Validação. Tese de doutoramento, ICMC/USP, São Carlos, SP, Maio, 2004.
Publicado
31/07/2004
Como Citar
CORTE, Camila Kozlowski Della; BARBOSA, Ellen Francine; MALDONADO, José Carlos.
Ensino Integrado de Fundamentos de Programação e de Teste de Software. In: WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO (WEI), 12. , 2004, Salvador/BA.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2004
.
p. 139-152.
ISSN 2595-6175.
