Teste de Software
III. D IAGNÓSTICO DO E NSINO DE T ESTE DE S OFTWARE
A partir da análise nos currículos das melhores Universidades nacionais e internacionais, obteve- se um diagnóstico sobre como são capacitados os profissionais de teste de software. Além disso, realizou-se uma análise nos currículos de referência da Sociedade Brasileira de Computação (SBC) e da Association for
Computing Machinery
1Disponível em: http://ruf.folha.uol.com.br
2Disponível em: http://www.timeshighereducation.co.uk/
3Disponível em: http://www.sbc.org.br/
4Disponível em: http://www.acm.org/education/curricula-
(ACM). A seguir apresenta-se o diagnóstico sobre o ensino de teste de software nas universidades do Brasil e do exterior.
A. Cenário Nacional
Os currículos de referência propostos pela SBC para os cursos de graduação na área de Computação sugerem que os conteúdos relacionados com o teste de software sejam abordados em um dos tópicos da disciplina de Engenharia de Software, denominado Verificação, Validação e Teste de Software, sendo atribuída poucas aulas para o ensino desse conteúdo [5, 11, 12]. Essa recomendação induz a uma prática em que os conteúdos são ministrados de forma isolada, com pouca integração entre as disciplinas.
Para comprovar essa afirmação, analisaram-se os currículos dos cursos de Ciência da Computação, Engenharia da Computação, Sistemas de Informação e Engenharia de Software das 25 melhores universidades do Brasil segundo o
ranking disponibilizado pelo RUF em 2014. Na
Tabela I apresentam-se as universidades brasileiras que tiveram seus currículos analisados.
TABELA I.MELHORESUNIVERSIDADESDOBRASIL
Universidades Brasileiras ... Sigla
Universidade de São Paulo ... USP Universidade Federal de Minas Gerais ... UFMG Universidade Federal do Rio de Janeiro ... UFRJ Universidade Federal do Rio Grande do Sul ... UFRGS Universidade Estadual de Campinas ... UNICAMP Universidade Estadual Paulista Júlio de Mesquita
Filho ... UNESP Universidade Federal de Santa Catarina ... UFSC Universidade de Brasília ... UNB Universidade Federal do Paraná ... UFPR Universidade Federal de São Carlos ... UFSCAR Universidade Federal de Pernambuco ... UFPE Universidade Federal de São Paulo ... UNIFESP Universidade Federal do Ceará ... UFC Universidade Federal da Bahia ... UFBA Universidade Federal de Santa Maria ... UFSM Universidade Federal Fluminense ... UFF Universidade do Estado do Rio de Janeiro ... UERJ Pontifícia Universidade Católica do Rio Grande do
Sul... PUCRS Universidade Federal de Viçosa ... UFV Pontifícia Universidade Católica do Rio de Janeiro ... PUC-RIO Universidade Federal do Rio Grande do Norte ... UFRN Universidade Federal de Goiás ... UFG Universidade Estadual de Maringá ... UEM Universidade Estadual de Londrina ... UEL Universidade Federal da Paraíba ... UFPB
Em geral, as universidades brasileiras abordam o teste de software de forma isolada, conforme induzido pelos currículos de referência propostos pela SBC, ou seja, o conteúdo é abordado na disciplina de Engenharia de Software, no tópico de Verificação, Validação e Teste de Software.
Há também algumas universidades brasileiras que possuem uma disciplina específica e obrigatória para o ensino de teste de software, sendo elas: Universidade de Brasília (UNB), Universidade Federal do Ceará (UFC), Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS), Universidade Federal do Rio Grande do Norte (UFRN) e Universidade Federal de Goiás (UFG). Geralmente, essa disciplina é ofertada no curso de Engenharia de Software. Porém, observa-se que esse conteúdo é abordado de forma isolada durante o curso de graduação, conforme induzido pela SBC, sem apresentar aos alunos uma visão integrada do teste de software com outras disciplinas utilizadas para o desenvolvimento de produtos de software, tais como: Algoritmos, Programação Orientada a Objetos, Estrutura de Dados, Análise e Especificação de Requisitos, Reuso de Software, entre outras.
Além disso, algumas universidades possuem uma disciplina optativa para o ensino de teste de software, tais como: Universidade Federal do Rio de Janeiro (UFRJ) e Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (ICMC/USP).
B. Cenário Internacional
A ACM também propõe currículos de referência para cursos de graduação da área de Computação. Para os cursos de graduação em Ciência da Computação, Engenharia de Software, Engenharia de Computação e Sistemas de informação a ACM sugere
que os conteúdos relacionados com teste de software devem ser abordados em tópicos das disciplinas de Engenharia de Software, Verificação e Validação de Software, Engenharia de Sistemas de Computação e Fundamentos de Programação. No entanto, menos de dez horas aula são atribuídas para o ensino de teste de software nessas disciplinas. Logo, os conteúdos de teste de software são abordados nos cursos de graduação de maneira superficial [13, 7, 9]. Desta forma, observou-se que os cursos da área de Computação, em geral, abordam o teste de software em tópicos das disciplinas de Engenharia de Software e/ou Programação, seja no Brasil ou no exterior. Nesse sentido, realizou-se uma pesquisa nos currículos das melhores universidades do mundo da área de Computação, com o intuito de verificar como são abordados os conteúdos relacionados com o teste de software nos cursos de graduação em Ciência da Computação. Na Tabela II apresentam-se as universidades do exterior que tiveram seus currículos analisados.
Tabela II. MELHORES UNIVERSIDADES DO MUNDO DA ÁREA D ECOMPUTAÇÃO
Universidades d o E x t e r i o r País
Massachusetts Instituto o Technology ...Estados Unidos Stanford University...Estados Unidos California Institute of Technology ...Estados Unidos Princeton University ...Estados Unidos University of Cambridge ... Reino Unido Imperial Colleg e Lon d on ... Reino Unido University of Oxford ... Reino Unido Swiss Federal Institute of Technology Zürich ... Suíça University of California - Los Angeles...Estados Unidos University of California - Berkeley ...Estados Unidos Georgia Institute of Technology ... Estados Unidos École Polytechnique Fédérale de Lausanne ...Suíça National University of Singapore ... Singapura Carnegie Mellon University ...Estados Unidos Cornell University...Estados Unidos Northwestern University ... Estados Unidos University of Illinois at Urbana Champaign ... Estados Unidos Delft University of Technology ... Holanda Hong Kong University of Science and Technology ... Japão Harvard University ...Estados Unidos University of California - Santa Barbara ...Estados Unidos
Nos currículos dessas universidades os conteúdos relacionados com o teste de software são abordados em tópicos das disciplinas de Engenharia de Software e/ou Programação, assim como proposto pela ACM. Desta forma, os conteúdos de teste são abordados de forma isolada durante os cursos de graduação em Computação, não apresentando uma relação entre os conteúdos de teste de software e as demais disciplinas do curso.
Portanto, poucas aulas são atribuídas para o ensino da atividade de teste de software, proporcionando aos estudantes apenas uma visão geral dos conteúdos dessa área. Além disso, o ensino de teste de software é abordado apenas no final do curso de graduação. Logo, os profissionais de teste de software, em geral, não recebem uma boa formação nas universidades para ingressarem no mercado de trabalho.
De fato, seria interessante integrar o ensino dos conteúdos de teste de software com outras disciplinas ao longo dos cursos de graduação, com projetos que explorassem de forma integrada as habilidades e competências desenvolvidas no curso, incluindo-se aqui Teste de Software. Para isso, seria interessante revisitar e alterar os currículos de referência propostos pela SBC e ACM, visto que os mesmos são elementos essenciais para a definição, implantação e avaliação de cursos de graduação em Computação. Desta forma, os conteúdos de teste de software deveriam ser abordados de forma integrada com as disciplinas ao longo de todo o curso de graduação, demonstrando aos estudantes a importância de testar os programas (produtos)
antes de serem liberados. Consequentemente, os desenvolvedores criariam o hábito de testar seus programas desde quando aprendessem a programar. Isso possibilitaria a criação de uma “cultura de teste” adequada entre os estudantes e profissionais.