SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE
             PADRÕES COM TEXT MINING1
                                      Marcos Lottermann <marcoslott@gmail.com>
                                   Stanley Loh <stanley.loh@ulbra.edu.br> – Orientador

              Universidade Luterana do Brasil (Ulbra) – Curso de Ciência da Computação – Campus Canoas
                       Av. Farroupilha, 8.001 – Bairro São José – CEP 92425-900 – Canoas - RS

                                                        21 de junho de 2012

        RESUMO
                O objetivo deste trabalho é propor uma ferramenta web que permita realizar a gestão de todas as demandas
        existentes em cada etapa do teste de software, oferecendo ao gestor uma visão geral do andamento dos projetos e da
        produtividade das equipes através de gráficos. Ao longo de cada projeto gerenciado pela ferramenta teremos uma
        base de dados com os defeitos reportados pelas equipes de teste, então será aplicada uma técnica de text mining para
        que seja possível identificar padrões nestes defeitos, possibilitando que este conhecimento descoberto possa ser
        utilizado como aprendizado para futuros projetos.
        Palavras-chave: Mineração de textos; Teste de software; Gestão do conhecimento.

        ABSTRACT
        Title: “MANAGEMENT DEMANDS OF TESTING AND ANALYSIS OF PATTERNS WITH TEXT MINING”
                The objective of this study is proposing a web tool that allows performing the management of all demands in
        each software testing stage, offering to the manager an overview of the projects status and the productivity of the
        teams through graphs. Throughout each managed project using the tool we will have a database of defects reported
        by the test teams, and then we will apply a text mining technique to be able to identify patterns in these defects
        enabling its discovered knowledge to be used as learning into future projects.
        Key-words: Text mining; Software testing; Knowledge management.

1     INTRODUÇÃO
         Analisando o cenário global onde o mercado se apresenta cada vez mais acirrado e competitivo, as
organizações devem traçar estratégias para que possam se destacar e obter vantagens sobre os seus
concorrentes. E um diferencial que tem ganhado destaque entre as empresas que atuam na área de
desenvolvimento de software é o investimento no processo de teste de software. Segundo Pressman (2005),
para muitas empresas a etapa de testes chega a representar 50% dos custos e do tempo estimado para o
projeto.
       De acordo com Bartié (2002), quanto mais procedimentos fizerem parte do processo de teste de
software, melhor será o nível de avaliação do produto, e por consequência resultará em um produto final com
maior qualidade.
         A Empresa X, na qual este trabalho propõe a implantação do GDT, tem um processo maduro de
testes, com as seguintes etapas: escrita dos casos de teste, execução dos casos de teste, checklist e evidências
de teste. O conceito de cada uma destas etapas será apresentado na seção 2.1 deste trabalho. Apesar do
processo bem definido, a empresa utiliza-se de planilhas eletrônicas para o controle das etapas, o que
impossibilita a utilização simultânea desta planilha, gera quantidades desnecessárias de arquivos e não
garante a integridade desses arquivos, dificultando o papel do gestor, que não tem uma visão geral do
andamento das atividades e prazos. Segundo Nogueira (2010), este é o cenário ideal para a implantação da
ferramenta, visto que o processo de testes da empresa é bem definido, maduro, e a implantação da ferramenta
não trará grandes riscos e mudanças a esse processo.
        Durante o andamento da etapa de execução do caso de teste, o testador deve reportar bugs e desvios
encontrados no software testado, e estes reportes devem ser feitos na própria ferramenta GDT. Ao reportar o
bug, serão informados a descrição e o resultado esperado para este bug, essas informações serão armazenas

1   Artigo final da disciplina de Trabalho de Conclusão II, submetido ao Curso de Ciência da Computação da Universidade Luterana do Brasil,
    Campus Canoas.



                                                                    1
em formato textual. Visto que é inviável a análise manual de cada um destes textos, é de se considerar a
utilização de ferramentas que possam auxiliar na busca de conhecimento na base que será gerada. Isso pode
ser feito utilizando a técnica de text mining (mineração de textos).
         Segundo Sveiby et al. (2000), este é um dos principais focos de preocupação das grandes
organizações. Mais do que a tecnologia, o conhecimento é a chave para companhias que pretendem agregar
valor aos seus produtos e serviços. Este é um importante diferencial da ferramenta GDT. Aplicando text
mining, os bugs reportados durante o projeto serão analisados, identificando padrões e tendências que devem
ser utilizados como aprendizado nos futuros projetos, com a finalidade de reduzir custos com retrabalho e
garantir uma entrega com qualidade.
         O artigo esta estruturado em cinco seções, da seguinte forma: a seção 2 apresenta a fundamentação
teórica, que serviu como embasamento para este trabalho, destacando a técnica de text mining. Nesta seção
também são apresentados trabalhos relacionados à gestão do conhecimento na engenharia de software; a
seção 3 apresenta detalhes da especificação e da implementação da ferramenta, além de traçar um
comparativo com outras ferramentas existentes; a seção 4 demonstra como foi realizada a validação,
experimentos e testes da ferramenta; e por fim a seção 5 apresenta as conclusões obtidas com este estudo e
sugestões para trabalhos futuros.

2     REFERENCIAL TEÓRICO
        Nesta seção, serão apresentados alguns conceitos para a melhor compreensão da ferramenta
desenvolvida e da metodologia utilizada. Foram abordados e contextualizados os seguintes tópicos: as
demandas presentes na etapa de testes, que serão absorvidas e controladas através da ferramenta; ferramentas
de gestão para área de testes existentes; momento ideal para implantação de uma ferramenta no processo de
gestão do teste; técnicas e trabalhos relacionados às áreas de gestão do conhecimento; e text mining.

2.1     Teste de software
         Segundo Longo (1996), os consumidores sempre tiveram preocupação com a qualidade, tendo o
cuidado de inspecionar os bens e serviços que adquiriam, porém esta preocupação se voltava para o produto
já finalizado, o que não garantia a qualidade destes. A partir da década de 50, uma nova filosofia começou a
ser aplicada, com base em conceitos, métodos e técnicas, e a qualidade passou a ser um problema da
empresa.
        Hoje em dia, é evidente a necessidade das organizações investirem em qualidade, criando um
diferencial frente ao mercado, evitando desgastes com o cliente e reduzindo impactos com retrabalhos e
manutenção do produto. Em virtude desta crescente necessidade na oferta de qualidade, muitas empresas de
desenvolvimento têm adotado o processo de testes de software, muitas vezes até por exigência do cliente.
        Myers (1979) define teste de software como o “processo de executar um programa ou sistema com a
intenção de encontrar defeitos (teste negativo)”. Nas subseções seguintes será apresentado o conceito de cada
uma das etapas de teste praticadas na Empresa X, a gestão da execução destas etapas será feita através da
ferramenta proposta.
2.1.1    Escrita dos casos de teste
        Esta etapa é executada por um analista de testes e tem como objetivo especificar passo a passo o que
os testadores devem fazer para a execução dos testes, com a finalidade de garantir que os testes realizados
cubram a maior parte ou os principais requisitos do caso de uso. Ela obedece a estrutura de pré-condições,
procedimentos, entrada, resultado esperado e pós-condições.
        Nesta etapa, a complexidade de cada um dos casos de uso do sistema é definida pelo analista de
sistemas e pelo analista de testes, servindo como referência para o testador e para o gestor na estimativa de
tempo e esforço necessário para a execução dos testes.
2.1.2    Execução dos casos de teste
        Após finalizada a etapa de desenvolvimento de um determinado caso de uso, esse caso é liberado
para testes. Os testadores seguem os passos especificados nos casos de teste planejados na etapa anterior,
reportando os bugs e desvios.



                                                     2
2.1.3    Checklist
         O checklist é uma prática antiga utilizada em diversos segmentos. Por exemplo: em 1935, segundo
Porto (2010), a Boeing determinou a seus pilotos a obrigatoriedade da utilização de checklist. Esta etapa
inicia-se ao término da etapa de execução dos casos de teste. Os testadores devem utilizar um checklist pré-
definido para cada tela do sistema, onde está especificada uma lista de verificações que devem ser feitas. Isso
evita o esquecimento de algum teste e possíveis bugs não identificados na execução dos casos de teste.
Geralmente, o checklist é executado por um testador diferente daquele que executou o caso de teste.
2.1.4    Evidências de teste
        Esta etapa inicia-se após o término das etapas de execução dos casos de teste e de execução do
checklist, e é realizada por um testador. Consiste em executar cada cenário especificado no caso de teste,
gerando um documento que comprove o correto funcionamento dos requisitos testados. O produto final
entregue ao cliente, geralmente vai acompanhado por um vídeo, mostrando o desenvolvimento do teste, ou
por um print screen das telas da aplicação.

2.2     Ferramentas de gestão para área de testes
        Nesta seção serão apresentadas duas ferramentas que se propõem a auxiliar a gestão do teste. A
primeira é o TestLink, que é uma das principais ferramentas do segmento e tem código aberto. A segunda é o
Rational Quality Manager (RQM), ferramenta desenvolvida pela IBM da qual a Empresa X tem licença de
uso. Ambas as ferramentas têm o mesmo propósito, apesar de possuírem algumas particularidades que serão
detalhadas a seguir.
2.2.1    TestLink
        O TestLink é uma ferramenta open source (código aberto) desenvolvida na linguagem PHP. O
projeto é mantido pela comunidade aberta de testadores de todo o mundo, e se propõe a auxiliar o
gerenciamento e execução dos casos de teste. Permite aos usuários especificar os casos de teste, executar,
acompanhar os resultados da execução e, por fim, gerar relatórios.
        O fato de ser uma ferramenta com código aberto permite que usuários que tenham interesse e
conhecimento customizem a ferramenta e implementem novos recursos conforme a sua necessidade, a
maioria dos métodos presentes no código-fonte não são comentados, o que pode dificultar um pouco esta
tarefa.




             Figura 1 – Interface da tela de especificação dos casos da ferramenta TestLink

2.2.2    Rational Quality Manager (RQM)
        O RQM é um software proprietário desenvolvido pela IBM, que tem como principal finalidade a
especificação dos requisitos, o gerenciamento e a execução dos casos de teste. A ferramenta também permite


                                                      3
a integração com outro sistema, desenvolvido pela própria IBM, para reportar os bugs encontrados durante o
teste, o Rational Team Concert (RTC).
         A Empresa X – na qual se pretende implantar o GDT – possui licença de uso desta ferramenta, que já
foi utilizada em um projeto-piloto, porém não foi adotada em projetos posteriores. Nesses casos foi mantida
a gestão por planilhas eletrônicas, a especificação pelo software Rose e o reporte dos bugs pela ferramenta
RTC. Esta decisão foi tomada devido a dificuldades encontradas na adaptação ao sistema. A ferramenta foi
avaliada como complexa e pouco intuitiva: o tempo consumido estava sendo superior ao utilizado no formato
antigo de gestão, afetando diretamente o budget do projeto.




      Figura 2 – Interface da tela de especificação dos casos da ferramenta Rational Quality Manager

2.3     Por que e quando implantar uma ferramenta de gestão no teste
        Segundo Nogueira (2010), antes de buscar a utilização de ferramentas é recomendável que o
processo de testes da empresa esteja bem definido e maduro. E a implantação da ferramenta só deve ocorrer
se não trouxer grandes riscos e mudanças no processo de teste.
        Para Aquino (2010), o emprego errado de uma ferramenta, ao invés de trazer benefícios, pode se
tornar um grande risco para os projetos. Ele também afirma que a melhor ferramenta é aquela que atende ao
processo de testes utilizado na organização, e que nem sempre a ferramenta ideal para uma empresa irá se
adequar às necessidades de outra empresa. Para minimizar os riscos é importante fazer um estudo de
viabilidade das ferramentas antes da aquisição e implantação.
        Portanto, não é aconselhável a implantação de uma ferramenta que altere radicalmente um processo
maduro de testes, que já é utilizado pela organização, com a ilusão de que automaticamente se terá um ganho
de produtividade. A ferramenta ideal é aquela que irá facilitar e auxiliar a execução das atividades do teste.
Este é um dos motivos pelos quais muitas empresas ainda utilizam planilhas eletrônicas, que são facilmente
customizadas, conforme a necessidade, e de fácil adaptação e utilização.

2.4     Gestão do conhecimento na engenharia de software
        Praticamente todas as atividades executadas nas organizações geram dados e informações que podem
se tornar conhecimentos valiosos na tomada de decisões. E a gestão do conhecimento tem justamente este
propósito, de aproveitar o capital intelectual das organizações, que é o principal recurso de empresas que
trabalham com desenvolvimento de software.
        Para Turban, McLean e Wetherbe (2004), a gestão do conhecimento é o processo que tem como
objetivo auxiliar as organizações a descobrir, organizar e distribuir a informação e o conhecimento que
fazem parte da memória da empresa, e que normalmente existem dentro delas de forma não estruturada.


                                                      4
A área de desenvolvimento de software sofre constantes mudanças e conta com interações de muitas
pessoas que atuam em diferentes atividades e fases do projeto. Rus e Lindvall (2002) afirmam que muitos
conhecimentos são gerados em empresas de desenvolvimento, porém existem problemas para localizá-los e
utilizá-los. O uso apurado destes conhecimentos é a motivação para conduzir a gestão do conhecimento nas
empresas de desenvolvimento.
      A implementação da gestão do conhecimento na engenharia de software apresenta muitos desafios.
Segundo Rus e Lindvall (2002), há três importantes questões a serem postas em prática.
       Tecnológica – A tecnologia do software deve suportar a gestão do conhecimento, permitindo a
         integração de todas as ferramentas para que o objetivo traçado com o compartilhamento possa ser
         atingido.
       Organizacional – Deve-se ter um bom planejamento para a implantação da gestão do
         conhecimento. Um erro comum nas organizações é que elas focam somente a tecnologia e
         esquecem a metodologia que deve ser aplicada.
       Resistência – Muitos colaboradores resistem em buscar conhecimento, seja por falta de tempo,
         seja por não se sentirem confortáveis em expor seu conhecimento, experiências negativas e lições
         aprendidas, temendo que essas informações sejam utilizadas contra eles.
        Zaidan (2008) chega à mesma conclusão que Rus e Lindvall (2002). Ele afirma que o fato de grande
parte das empresas não ter obtido êxito ao aplicar técnicas de gestão do conhecimento se deve a não terem
traçado um planejamento estratégico bem definido antes da implantação. As empresas devem aguardar um
determinado período de tempo até que os resultados da gestão do conhecimento comecem a aparecer.
        Zaindan (2008) afirma que, em empresas de desenvolvimento, são gerados inúmeros artefatos no
formato eletrônico durante as etapas de desenvolvimento, possibilitando a utilização de ferramentas que
auxiliem na retenção e na disseminação de conhecimento, permitindo consequentemente seu reúso em
projetos futuros.
       Segundo Rus e Lindvall (2002), no desenvolvimento de um software diferentes ações são propostas,
visando a redução de custos do projeto, a redução do tempo de desenvolvimento e o aumento da qualidade.
Empregando a gestão do conhecimento na engenharia de software, podem-se obter inúmeros benefícios, tais
como o apoio às memórias do projeto e o apoio ao aprendizado, e principalmente aplicar em novos projetos o
conhecimento que foi adquirido em projetos anteriores, evitando erros e retrabalho.
        A motivação para o desenvolvimento e implantação do GDT na Empresa X está diretamente ligada
com o que Rus e Lindvall (2002) afirmam. O conhecimento adquirido através dos bugs reportados na
ferramenta será utilizado em reuniões de retrospectiva para servir como aprendizado em futuros projetos. O
objetivo é a redução de custos do projeto e o aumento da qualidade.
       Na seção 2.4.1 será apresentado dois trabalhos que estão ligados à gestão do conhecimento na
engenharia de software, um deles inclusive é direcionado a área de testes.
2.4.1    Trabalhos relacionados
         Oliveira et al. (2010) desenvolveu um trabalho em que foi proposta uma ferramenta que tem como
principal objetivo auxiliar no planejamento e na execução de estratégias de gestão do conhecimento. Trata-se
da WebAPSEE Knowledge Manager (WKM). Através dessa ferramenta, é possível fazer a modelagem e a
execução dos processos, acompanhar o prazo das atividades e alocar recursos. A ferramenta promove ainda a
reutilização de boas práticas gerenciais em diferentes projetos e permite controlar as atividades de equipes
que estão geograficamente dispersas.
        O autor definiu quinze requisitos. Eles se baseiam em: (i) Bibliografia sobre o que é necessário para
a implantação de Gerência do Conhecimento, na qual se destacam Rus e Lindvall (2002), utilizados como
referência neste trabalho; (ii) Atividades descritas na NBR ISO/IEC 12207 e no Guia de Implementação do
nível E do modelo MPS; (iii) Aspectos socioculturais tratados no P-CMM; e (iv) Estudo qualitativo realizado
com cinco empresas de Belém do Pará. Esses quinze requisitos são apresentados no quadro 1.

              Quadro 1 – Descrição dos quinze requisitos que a ferramenta WKM atende
                Promover ações de conscientização sobre a importância da realização da gerência de
        REQ 1
                conhecimento na organização, tanto com a alta direção quanto com os funcionários.
        REQ 2   Selecionar uma estratégia adequada às características da organização.


                                                     5
Estabelecer políticas para criação, compartilhamento e utilização de ativos de
      REQ 3
                 conhecimento por toda a organização.
                 Definir papéis e alocar pessoas responsáveis para trabalhar na execução do processo.
      REQ 4
                 de gerência do conhecimento.
                 Permitir o planejamento das ações relacionadas à gerência do conhecimento, de
      REQ 5
                 forma que as atividades detalhadas no plano sejam realizadas pela organização.
      REQ 6      Definir os tipos de conhecimento estratégicos para a organização.
                 Permitir a aquisição de diversos tipos de conhecimento de membros da organização,
                 tanto relacionados a projetos específicos quanto em nível organizacional,
      REQ 7
                 estabelecendo padrões e classificações de tipos de conhecimento a fim de facilitar a
                 recuperação e a disseminação dos ativos.
                 Permitir a avaliação de conhecimento antes de armazená-lo e disponibilizá-lo para a
      REQ 8      organização, com o objetivo de filtrar conhecimento de valor, garantindo que o
                 mesmo esteja correto e claro o suficiente para ser reutilizado.
                 Garantir que o conhecimento está disponível para reutilização por outros membros
      REQ 9
                 da organização.
      REQ 10     Permitir a busca de conhecimento pelos membros da organização.
                 Formar uma rede de especialistas na organização, permitindo a busca de pessoas
      REQ 11     (especialistas) na organização, de forma que se tenham estabelecidas as habilidades
                 de cada membro da organização e uma quantificação de experiência do indivíduo.
                 Desenvolver soluções para a disseminação do conhecimento aos funcionários da
      REQ 12
                 organização.
                 Permitir que os usuários avaliem a utilidade do conhecimento, bem como a própria
      REQ 13     estratégia adotada na organização, para que seja possível obter resultados em relação
                 aos benefícios obtidos com a implantação da mesma.
                 Permitir a manutenção de conhecimento, de forma que o conhecimento defasado
      REQ 14
                 possa ser atualizado ou desabilitado da organização.
                 Promover formas de compensar os funcionários pela criação de conhecimento de
      REQ 15
                 valor para a organização.
        Martins (2006) desenvolveu uma pesquisa pela qual foi construída uma ferramenta, chamada de
SucReuse, que cria um repositório com os casos de uso em formato XMI. O objetivo dessa ferramenta é
auxiliar os engenheiros de software a reutilizar e elaborar modelos de casos de uso. O autor definiu o
processo de reutilização em dois momentos.
         Primeiro, o engenheiro de software, através da técnica de analogia, identifica os casos de uso que
tenham o mesmo contexto. Por exemplo, empréstimos financeiros e aplicações financeiras podem ser
classificados como contexto financeiro. Depois de classificar o contexto, o engenheiro deve identificar, nos
cenários do caso de uso, as partes fixas e as partes variáveis. As partes variáveis devem informar um ou mais
conceitos para o termo destacado como variável. Com este processo é criada a base de conhecimento para
cada modelo de caso de uso que é inserido no repositório da ferramenta. A figura 3 exemplifica esta relação
criada, na qual os termos curso, coordenador e turma foram marcados como variáveis e devem ser definidos
termos semelhantes. Por exemplo, curso: palestra, seminário; coordenador: palestrante, seminarista; turma:
plateia, ouvinte.




                         Figura 3 – Ligação semântica do cenário de caso de uso

        O segundo momento ocorre quando o usuário vai realizar uma busca para encontrar um modelo de
caso de uso que atenda a sua necessidade, e assim reutilizá-lo, fazendo pequenas modificações e obtendo um



                                                     6
ganho de produtividade.

2.5     Text mining
         Segundo Chen (2001), 80% do conteúdo online está armazenado em formato textual. Este mesmo
percentual, segundo Tan (1999), corresponde às informações disponíveis em uma organização no formato
textual e não estruturado. Devido a este crescente volume de informações armazenadas no formato textual, se
torna inviável a análise manual de cada um destes textos, portanto é de se considerar, a utilização de
ferramentas que possam auxiliar na busca de conhecimento, isso pode ser feito utilizando a técnica de text
mining (mineração de textos).
        Segundo Aranha e Passos (2006), a mineração de textos consiste em extrair padrões e tendências de
grandes quantidades de documentos em formato textual e não estruturado, normalmente para um objetivo
especifico.
                          A mineração de textos possui duas fases principais e sequentes: a extração de informações e
                          a própria mineração de dados. A primeira destina-se a extrair conceitos, estatísticas e
                          palavras relevantes de um conjunto textual para estruturá-los minimamente, preparando-os
                          para a aplicação das técnicas de mineração de dados. Neste segundo momento aplicam-se
                          as diretrizes e algoritmos de mineração de dados destinados a gerarem regras, classificações
                          ou agrupamentos. (HOESCHL et al., 2002)
        Uber, José (2004) conduziu um estudo no qual foi aplicada a técnica de text mining para automatizar
e auxiliar na análise de chamados telefônicos. Verificou-se o campo que contém a descrição do chamado e,
com base nisto, o sistema categorizou esse chamado. O autor foi motivado a desenvolver essa ferramenta em
razão do elevado número de chamados classificados de forma errônea pelos atendentes. Outro autor, Uber,
Jacqueline (2004), desenvolveu um estudo, com objetivo semelhante, em que a técnica foi aplicada em
ocorrências policiais, classificando automaticamente a natureza da operação do boletim de ocorrência. Ele
chegou à conclusão de que 5,44% dos registros analisados estavam classificados de forma incorreta.
2.5.1    Stopwords
         São palavras consideradas irrelevantes no contexto que está sendo analisado, tais como preposições e
artigos. Para Gonçalves (2003), a eliminação destas palavras no processo de indexação salva uma enorme
quantidade de espaços em índices e não prejudica a eficácia da recuperação. Estas palavras negativas devem
ser retiradas na etapa de preparação dos dados.
2.5.2    Técnica associativa
       Segundo Loh (2001), a técnica associativa consiste em descobrir relações entre conceitos,
expressando os resultados em forma de regras X  Y, o que significa que “se X está presente em um texto,
então Y estará presente nesse texto com um determinado grau de certeza (confiança)”.
        Este grau de confiança pode ser calculado com o mesmo princípio da probabilidade condicional:
utilizando a fórmula presente no quadro 2, se obtém a probabilidade de um evento A ocorrer, dado que um
evento B ocorreu.

                      Quadro 2 – Fórmula para calcular a probabilidade condicional
                                                P(A|B) =

        Para Tan, Steinbach e Kumar (2006), a análise de associação é uma metodologia que oferece grande
suporte na busca de relações com interesse escondidas em grandes conjunto de dados. Segundo o exemplo
que foi apresentando pelos autores, em um case da rede Wall-Mart foi descoberta a relação entre fraldas 
cerveja. Os autores sugerem que utilizando estas regras de associação é possível então identificar novas
oportunidades de venda de produtos, e assim obter vantagem competitiva sobre seus concorrentes.
2.5.3    Text mining na engenharia de software
        Durante a etapa de desenvolvimento do software, programadores codificam e corrigem defeitos,
entre outras tarefas. A utilização de ferramentas introduzidas e integradas ao processo de desenvolvimento
permite que sejam armazenados de forma automática dados do processo de desenvolvimento. É possível
minerar estes dados com o objetivo de descobrir padrões e regras que possam melhorar a qualidade do


                                                         7
sistema, ou até mesmo melhorar a produtividade das equipes. Colaço Jr. (2010) cita algumas das atividades
que podem ser auxiliadas com a aplicação da mineração de dados.
         Programação – Em nível de construção do software, a descoberta de padrões pode ajudar a: (i)
           identificar características de uso de uma API (Application Program Interface) ou framework
           automaticamente; (ii) manter os padrões de uso atualizados, baseando-se sempre na mais nova
           versão da API ou framework; (iii) identificar padrões que abranjam casos de herança em
           frameworks.
         Manutenção – A mineração de dados aplicada no histórico de alterações armazenadas por
           sistemas de controle de versões pode auxiliar os desenvolvedores com sugestões do tipo “os
           desenvolvedores que modificaram o método X também modificaram o método Y”.
         Detecção de defeitos – Todos os sistemas devem seguir algumas regras da linguagem de
           programação utilizada para que possam se manter corretos. Grande parte dos erros acontece pela
           falta de combinação entre alguns métodos. Por exemplo, chamar o método para desalocar
           memória por uma estrutura de dados que não foi instanciada. Utilizando a mineração de textos, é
           possível identificar estes padrões e verificar o código, buscando os trechos que não seguem o
           padrão e que podem apresentar defeitos.
2.5.4        Ferramentas de text mining aplicadas a engenharia de software
        Abaixo serão apresentadas duas ferramentas encontradas que utilizam técnicas de text mining e são
aplicadas no contexto de engenharia de software.
         ChangeMiner2 – É um plug-in gratuito para Visual Studio capaz de minerar o histórico de
           versões. No momento da alteração do código, baseado no histórico, o plug-in reporta ao
           desenvolvedor os prováveis próximos pontos de manutenção. Essa apresentação é feita de forma
           gráfica e textual e tem como objetivo aumentar a eficiência nas manutenções realizadas no
           sistema.
         NeuroMiner3– Esta ferramenta combina mineração de textos com técnicas de inteligência
           artificial e estatística. O ambiente utiliza princípios da programação neurolinguística para extrair
           o canal cognitivo mais usado pelos programadores, por exemplo, de listas de discussões de um
           projeto. Isso auxilia na tomada de decisões, pois é possível traçar um perfil psicológico de cada
           desenvolvedor ou cliente da empresa, com base em qualquer texto analisado que represente uma
           interação.

3        APRESENTAÇÃO DA FERRAMENTA PARA GESTÃO DE DEMANDAS DE TESTE – GDT
        A ferramenta desenvolvida foi batizada de GDT. Implementada na linguagem de desenvolvimento
web PHP, com características de orientação a objetos, o sistema foi construído de forma a ser intuitivo e
amigável com os usuários, respeitando os princípios de ergonomia, cuidando do tamanho das telas, das cores
utilizadas e das mensagens objetivas e padronizadas nas interações com o usuário.
        A implantação do GDT proporciona a automatização do processo de gestão das demandas de teste e
descoberta de conhecimento nos bugs reportados. Isso é feito através de uma aplicação web em que as
demandas existentes em cada etapa do teste são distribuídas e controladas por esta ferramenta, possibilitando
ao gestor uma visão geral do andamento dos projetos e da produtividade das equipes com os gráficos gerados
através ferramenta.
        Com esta ferramenta na gestão do teste, é possível identificar padrões nos bugs reportados,
utilizando técnicas de text mining. Isso possibilita a utilização desses dados para propor melhorias nos
futuros projetos.
        Para que a aplicação seja aprovada e possa contribuir de fato com o processo de testes da Empresa X,
foi adotado o processo de desenvolvimento padrão da empresa. Nesse processo, todos os casos de uso foram
especificados, as telas foram prototipadas, o banco foi modelado, foi criado um dicionário de dados e foi
elaborado um plano de testes. Também foram criados os casos de teste e checklists para cada caso de uso.
             Todos os documentos gerados estão disponíveis na ferramenta, através do menu documentação.


2
    Link para download da ferramenta: https://sites.google.com/site/frchico/changeminer
3
    Link para a página oficial da ferramenta: http://qualycred.com/software/neurolinguisticminer/



                                                                            8
3.1     Descrição dos requisitos
        Nesta seção será descrito o funcionamento, os detalhes técnicos e os requisitos funcionais das
principais telas do sistema. Cada subseção representa um módulo do sistema GDT. A especificação
detalhada de cada caso de uso do sistema está disponível através do menu documentação da ferramenta.
3.1.1    Módulo Cadastro
        O módulo cadastro é a base do sistema. Para realizar a gestão das etapas de teste de um projeto, é
necessário seguir o fluxo apresentado na figura 4, em que uma equipe, cadastrada, cadastra o cliente, o
projeto e os casos de uso desse projeto.




                              Figura 4 – Fluxo para liberar as etapas de teste

          Equipe – Através desta tela será criado o usuário que as equipes irão utilizar para logar no
           sistema. O campo e-mail deve ser preenchido no formato correto, e a senha deve ter de 6 a 10
           caracteres. As equipes cadastradas serão utilizadas para distribuir as demandas existentes nas
           etapas de teste, no cadastramento do projeto (em que é designado um testador responsável), no
           controle dos bugs, nos gráficos de produtividade gerados através do dashboard e no diário de
           testes, no qual é gravado o usuário que incluiu o registro.
          Cliente – Nesta tela serão cadastrados os clientes que terão projetos gerenciados através da
           ferramenta.
          Projeto – Nesta tela será feito o cadastro do projeto a ser gerenciado através da ferramenta. Será
           informado o cliente, o nome do projeto e uma breve descrição, a data inicial do projeto, o prazo
           para escrita dos casos de teste, o prazo final do projeto e o team leader do projeto. As datas
           informadas nesta tela serão utilizadas no gráfico de prazos gerado através do menu dashboard.
          Casos de uso – O sistema permite criar até trinta casos de uso por vez através desta tela. Para cada
           caso de uso cadastrado será gerado automaticamente uma demanda em cada uma das etapas de
           teste (escrita do caso de teste, execução do caso de teste, checklist e evidência de teste). Esta
           geração automática é feita pois estes cinco cadastros (etapas de teste + caso de uso) são gravados
           na mesma tabela (tabela UC) do banco de dados, conforme pode ser observado na figura 10. Os
           campos da tabela UC que apresentam o sufixo _CT se referem à escrita do caso de teste, _ET à
           execução do caso de teste, _CL ao checklist, _EV à evidência de teste e os demais ao próprio caso
           de uso.
3.1.2    Módulo Etapas de teste
        Este módulo é dividido em quatro etapas nas quais o testador informa a data de início da atividade, a
data de conclusão, o tempo consumido, faz algumas observações e informa o status em que se encontra a
atividade, além do nome da equipe responsável por sua execução. Esta estrutura é mantida nas quatro etapas,
com exceção da etapa de escrita do caso de teste, onde é informada a complexidade da análise e a
complexidade do teste, conforme pode ser observado na figura 5.




                                                       9
Figura 5 – Tela de controle da etapa de escrita do caso de teste

3.1.3   Módulo Ferramentas
        O módulo ferramentas é composto pelas funcionalidades que irão fazer o diferencial do GDT em
relação às demais ferramentas utilizadas no mercado, adequando-se à necessidade da Empresa X.
         Controle de bugs – Através desta tela, serão reportados todos os bugs encontrados durante as
            etapas de teste. O testador irá informar o cliente, o projeto, o caso de uso ao qual se refere o bug
            encontrado, o grau de severidade deste bug, uma breve descrição, a descrição completa e o
            resultado esperado para o funcionamento correto da funcionalidade. Então, o bug é atribuído a
            uma equipe para correção. É possível inserir comentários e anexar documentos que evidenciem a
            existência do bug. A cada troca de status ou anexo adicionado, é inserido um comentário-padrão,
            registrando esta ação.




                                     Figura 6 – Tela de reporte de bugs




                                                      10
Na figura 10, é possível identificar todos os relacionamentos da tabela BUG para guardar os
          comentários inseridos, anexos (nome e extensão), nome da equipe que reportou, nome da equipe
          que resolveu, status, severidade.
          Esta tela é fundamental para o funcionamento da funcionalidade de text mining, pois é através
          dela que serão gerados os dados que serão analisados. Na figura 6 estão destacados os dois
          campos que serão utilizados em busca de conhecimento.
         Diário de testes – Esta tela tem como objetivo registrar diariamente fatos que ocorreram e podem
          impactar nos prazos de entrega acordados com o cliente, como, por exemplo, indisponibilidade do
          ambiente ou a existência de elevado número de bugs bloqueando a continuidade dos testes. Estes
          dados serão utilizados para negociar prazos com o gerente de projetos e com o cliente, caso seja
          necessário. Ao final do projeto, na reunião de retrospectiva, estes dados também são apresentados
          para que nos próximos projetos estes problemas não ocorram e estes itens possam ser utilizados
          como riscos auxiliando nas estimativas de prazos, se for o caso.
         Dashboard – Através do dashboard, é fornecido ao gestor uma visão geral do andamento das
          demandas de teste do projeto, contribuindo para maior assertividade na tomada de decisões. O
          usuário informa qual o projeto e que tipos de gráficos deseja visualizar. Então, utilizando as
          bibliotecas Highcharts e jQuery, são apresentados os gráficos. Na figura 7 temos o exemplo do
          gráfico de linhas usado para acompanhar a produtividade das equipes e o gráfico de colunas,
          utilizado para acompanhar a execução das demandas do projeto selecionado. No total, são
          oferecidas cinco opções de gráficos: (i) Produtividade, que permite enumerar as atividades que
          cada equipe alocada no projeto executou; (ii) Acompanhamento das atividades (status), que
          oferece uma visão de cada etapa de teste, mostrando em que status se encontram as atividades;
          (iii) Acompanhamento das atividades (%), que exibe um gráfico de colunas apresentando o
          percentual de conclusão de cada uma das etapas; (iv) Prazos, que exibe um gráfico de linhas com
          flags da data inicial do projeto, prazo de escrita dos casos de teste, data atual e prazo final,
          facilitando o controle dos prazos; (v) Bugs por dia, que exibe um gráfico de linha pelo qual é
          possível verificar a quantidade de bugs abertos por dia, possibilitando ao analista de testes
          identificar desvios. Por exemplo: muitos bugs abertos no final da etapa de testes.




                         Figura 7 – Exemplo de gráficos gerados pelo dashboard

         Text mining – A funcionalidade de text mining é um dos principais diferenciais da ferramenta
          GDT. Devido a sua importância, foi criada a seção 3.1.4, para que ela possa ser descrita em
          detalhes desde o processamento dos bugs reportados até o conhecimento que é obtido através da
          sua utilização.
3.1.4   Módulo Ferramentas: Text mining
        Através da figura 8, é possível acompanhar todo o fluxo realizado pelo caso de uso: processar text
mining. Este fluxo pode ser ativado através do botão processar, presente na tela text mining, onde o usuário



                                                    11
pode selecionar o projeto cujos bugs devem ser processados. Esta mesma rotina é executada todos os dias às
24h através de uma tarefa cron4 agendada no servidor, processando os bugs pendentes de todos os projetos.




                                             Figura 8 – Fluxo de processamento dos bugs

        Nos passos 2 e 4 presentes na figura 8, é feita a preparação dos dados. As palavras contidas na tabela
STOPWORD do banco foram alimentadas com análises estatísticas de vários autores5 e calibradas conforme
a necessidade.
       Após o processamento dos bugs, é possível consultar os conhecimentos que foram descobertos neste
processo. O sistema dispõe de quatro opções de análise.
        Análise 1 – Descrição do bug: são apresentadas as 70 palavras com o maior suporte, que
           aparecem na descrição dos bugs reportados para o projeto selecionado, ordenadas de forma
           decrescente. Representada pela primeira tabela exibida na figura 9.
        Análise 2 – Resultado esperado do bug: são apresentadas as 70 palavras com o maior suporte, que
           aparecem no resultado esperado dos bugs reportados para o projeto selecionado, ordenadas de
           forma decrescente. Representada pela segunda tabela exibida na figura 9.
        Análise 3 – Descrição x resultado esperado: é apresentada uma palavra da descrição (X) e uma
           palavra do resultado esperado (Y), com o respectivo suporte e a probabilidade condicional. São
           exibidos os 70 primeiros pares, ordenados pelo seu suporte de forma decrescente. Representada
           pela terceira tabela exibida na figura 9.
        Análise 4 – Probabilidade condicional: foi utilizada uma técnica de associação para prever a
           solução de um bug com determinada descrição. É representada pela lista que é exibida na figura
           9. Para realizar o cálculo da confiança, foi utilizada a fórmula da probabilidade condicional, que
           foi estudada no quadro 2 e adequada à necessidade conforme o quadro 3.

                               Quadro 3 – Fórmula para calcular a probabilidade condicional
                                           P(XY) =
                                          Onde:
                                          X= Palavra da descrição do bug.
                                          Y= Palavra do resultado esperado do bug.

4
    Tarefas Cron é uma opção do servidor que permite agendar tarefas para serem executadas periodicamente.
5
    A base inicial com as stopwords foi extraída através do link http://miningtext.blogspot.com.br/2008/11/listas-de-stopwords-stoplist-portugues.html



                                                                           12
Figura 9 – Análises geradas pela tela de text mining

3.2   Modelagem do banco de dados
         A modelagem do banco de dados foi realizada através da ferramenta desenvolvida pela Sun, o
MySQL Workbench. Esta ferramenta é gratuita e permite uma conexão direta com o banco de dados MySQL,
facilitando a criação das tabelas e a geração dos scripts.
       Na figura 10, que representa a modelagem do banco de dados, é possível ter uma noção do
funcionamento do sistema e dos relacionamentos entre as tabelas.




                                                 13
Figura 10 – Modelagem do banco de dados

3.3   Comparativo
        Através do quadro 4, foi traçado um comparativo entre as ferramentas estudadas na seção 2.2 deste
trabalho e a ferramenta proposta. Alguns itens foram sinalizados com asterisco devido ao fato de a
ferramenta não ter esta funcionalidade, embora permita a integração com outra ferramenta que a tenha.
        Apesar de as duas ferramentas permitirem a gestão das etapas de teste, elas não são de fácil
compreensão. Não foram projetadas com este propósito, embora cumpram o objetivo. O grande diferencial
da ferramenta GDT é que ela foi projetada especialmente para a gestão das etapas do teste e fornece um
módulo que permite a descoberta de conhecimento nos bugs reportados, funcionalidade que nenhuma das
outras duas ferramentas estudadas oferece.
        Dois itens que devem ser aprimorados na ferramenta GDT são referentes a permissões dos usuários e
à criação dos casos de teste na própria ferramenta. Em relação a este segundo item, pode ser estudada uma
forma de gerar automaticamente os casos de teste.


                                                   14
Quadro 4 – Comparativo das funcionalidades da ferramenta GDT
            Funcionalidades                        TestLink        RQM       GDT
            Criação dos casos de teste
            Gestão da execução dos casos de teste
            Gestão da execução do checklist
            Gestão da execução das evidências
            Diário de testes
            Controle de bugs

            Gráficos gerenciais
            Descoberta de conhecimento nos bugs
            Restrições por usuários

3.4    Cronograma de implantação do sistema
        Através do cronograma exibido na figura 11, estão especificadas as atividades que foram executadas
e o próximo importante passo, que será a implantação do sistema em produção, através de um projeto-piloto.




                        Figura 11 – Cronograma de atividades do projeto GDT

4     VALIDAÇÃO, EXPERIMENTOS E TESTES
        A validação do sistema GDT ocorreu com a utilização das próprias etapas de teste estudadas neste
trabalho: escrita dos casos de teste, execução de casos de teste e checklist. Também foi realizado um
experimento com ênfase no teste da funcionalidade do menu text mining. Esses procedimentos serão
detalhados nas subseções deste tópico.

4.1    Execução dos casos de teste
        Para cada um dos 38 casos de uso do sistema foi criado um caso de teste específico, em que foram
testados os requisitos e comportamentos de cada funcionalidade. Esta etapa foi executada por três testadores
da Empresa X, e o resultado encontra-se disponível no menu documentação da própria ferramenta.

4.2    Checklist
        Para cada um dos 38 casos de uso do sistema foi criado um checklist correspondente, no qual foram
revisados itens padrões de cada tipo de tela (Pesquisa, Inclusão, Edição, Exclusão etc). Esta etapa foi
executada por quatro testadores da Empresa X. A demanda foi dividida de forma que o testador executasse o
checklist de uma tela que foi testada por outra equipe. O resultado está disponível no menu documentação da
própria ferramenta.




                                                    15
4.3   Experimentos
         Foram realizados experimentos específicos na funcionalidade de text mining, nos quais foram
reportados bugs reais encontrados durante a etapa de testes de um projeto desenvolvido pela Empresa X. O
cliente que solicitou este projeto será chamado de Cliente ABC. Os projetos do Cliente ABC correspondem a
cerca de 35% do faturamento da sede de Porto Alegre da Empresa X e tem seu próprio padrão de telas,
mensagens e comportamentos.
        Baseado nas quatro análises geradas e destacadas na figura 9, o analista de testes alocado neste
projeto chegou à conclusão de que grande parte dos bugs reportados eram referentes a mensagens de
validação, validações de campos com período de datas (data inicial e data final), padrões do cliente e
comportamento do sistema (foco nos campos).




              Figura 12 – Classificações feitas pelo analista de teste, baseado na Análise 4

       Na figura 12 é apresentada a visão que o analista de teste interpretou para chegar a suas conclusões.
Os bugs foram classificados em cinco grupos.
        Mensagens – Bugs relacionados a mensagens de validação do sistema. Neste grupo foram
           identificados dois subgrupos: (i) mensagens de campos data (intervalo inicial e final), por
           exemplo, bugs com a descrição “data” têm 15,09% de chances de a solução estar ligada à
           correção na “mensagem” de validação; (ii) mensagens de validação de acordo com nome da label,
           por exemplo, bugs com descrição “mensagem” têm 3,09% de chances de estarem relacionados ao
           nome da label.
        Comportamentos – Bugs relacionados ao comportamento do sistema. Por exemplo, quando a
           descrição do bug tiver a palavra “incorreto”, há 15,38% de probabilidade de que a solução seja
           promover ajustes no “foco” dos campos. Outro exemplo: quando a descrição contiver a palavra
           “comportamento” há 6% de chances de que a solução deste bug seja o ajuste no valor “default”
           dos campos.



                                                    16
 Padrões – Bugs relacionados ao padrão do cliente. Por exemplo, mensagem de validação em
          desacordo com o padrão estabelecido. Ou nome de labels do mesmo campo escritas de forma
          diferente em diferentes telas.
         Permissões – Bugs relacionados à permissão dos usuários. Por exemplo, usuário de consulta com
          permissão para edição.
         Obrigatoriedade – Bugs relacionados a validações de obrigatoriedade de campos. A figura 12
          indica que os bugs reportados com a palavra “obrigatoriedade” têm 10,34% de chances de a
          solução estar em ajustes na mensagem para ficar de acordo com o nome da label.
         Pelo conhecimento obtido, foram tomadas as seguintes providências para que os próximos projetos
deste cliente não apresentem os mesmos bugs.
          Foi designado um recurso de teste para, durante a fase de construção, de acordo com os padrões
            estabelecidos, validarem: as telas; as mensagens; os menus; e o comportamento do sistema.
          As equipes de análise, desenvolvimento e teste que serão alocadas nos projetos do Cliente ABC
            passarão por um treinamento de cinco horas em que serão apresentados todos os padrões
            específicos deste cliente e serão realizadas algumas atividades práticas. Esta ação será executada,
            a cada projeto, por uma equipe diferente, possibilitando que todos tenham a oportunidade de
            estudar e repassar o conhecimento.
        Com estas duas ações, é esperada uma redução no número de bugs relacionados a padrões e layout,
tanto de desenvolvimento quanto de análise, evitando retrabalho de todas as áreas. Assim, as equipes de teste
poderão direcionar o esforço dos testes para os requisitos e regras de negócios.

5   CONSIDERAÇÕES FINAIS
         Diante das necessidades da Empresa X de automatizar a gestão das demandas da área de teste, foi
desenvolvido o sistema GDT. Para minimizar os riscos deste projeto, foi seguida a metodologia que é
empregada atualmente na empresa (levantamento de requisitos, definição dos casos de uso, especificação das
regras, protótipos, plano de testes etc.).
        Durante a fase do levantamento de requisitos surgiu a ideia da criação do módulo ferramentas, que é
o grande diferencial em relação às demais ferramentas do mercado. Neste módulo está contido o menu
controle de bugs, no qual verificou-se que, a cada projeto, é gerada uma base de dados rica em informações
referentes aos defeitos do projeto em questão. E esta base deveria ser explorada para extração de
conhecimento, e para que este conhecimento seja aplicado como aprendizado em projetos futuros. Então,
surgiu o menu text mining, que tem esta proposta.
        A solução proposta atendeu aos resultados esperados pela Empresa X, visto que a gestão das
atividades realizada pela aplicação contornou todos os problemas apresentados nas planilhas eletrônicas,
como a falta de segurança e integridade dos arquivos, a indisponibilidade de acesso simultâneo, a quantidade
desnecessária de arquivos e a falta de uma visão geral dos projetos para o gestor.
         Além de facilitar a gestão das quatro etapas do teste, a ferramenta proporcionou aos analistas de
testes a descoberta do conhecimento nos bugs reportados através da ferramenta, o que antes só era possível
questionando os testadores alocados no projeto. Este conhecimento, obtido no experimento apresentado na
seção 4 deste trabalho, já foi utilizado pela Empresa X em tomadas de decisão que trouxeram melhora na
qualidade do produto.
        Em relação a trabalhos futuros, este projeto será continuado pela Empresa X, com o
desenvolvimento do módulo de alertas, pelo qual o sistema emitirá avisos ao gestor, conforme o andamento
do projeto e a execução das atividades.
        Ainda em relação aos trabalhos futuros, será desenvolvido um módulo em que o caso de testes será
escrito através da própria ferramenta. A ideia é utilizar alguma técnica existente para a geração de um
template padrão do caso de teste. Por exemplo, o analista irá fazer o upload do protótipo da tela, e o sistema
irá gerar um caso de teste, validando a obrigatoriedade, os campos de data etc. Assim, o analista de testes
poderá focar seus esforços apenas em escrever cenários que validem as regras de negócio.
        Em relação a melhorias da ferramenta, deve-se possibilitar a aplicação de restrição de acessos,
utilizando a sessão que é criada durante o logon, permitindo que apenas usuários alocados no projeto tenham



                                                      17
acesso aos dados, e de acordo com o nível de permissões atribuídas ao seu perfil.
        A ferramenta e toda a sua documentação encontram-se disponíveis através do link
http://www.marcos.pro/gdt/php/.

AGRADECIMENTOS
      À DEUS, por ter me dado esta oportunidade, por iluminar o meu caminho e me trazer forças nos
momentos difíceis durante esta caminhada de seis anos em que passei nesta instituição.
        Aos meus familiares e a amigos verdadeiros, que me incentivaram e me motivaram durante este
período.
       Aos colegas e amigos de curso, pelos momentos de descontração e pelos momentos de aprendizado
colaborativo que foram muito produtivos.
        Ao meu orientador, Prof. Dr. Stanley Loh pelo seu comprometimento, disposição e por todas as
contribuições que me deu durante o desenvolvimento deste trabalho.
        Aos colegas de trabalho da área de teste, por todo o suporte que foi dado para o sucesso deste
trabalho, pelos testes realizados na aplicação, as sugestões de melhorias, as reuniões de acompanhamento e
apoio sempre que necessário.
       Aos colegas de trabalho da área de análise e desenvolvimento, pelas dicas, conceitos, sugestão de
ferramentas, e pelo apoio e prontidão com que me ajudaram sempre que foram encontrados obstáculos.

REFERÊNCIAS
AQUINO, Ueslei; NOGUEIRA, Elias. 24ª edição da Mesa Redonda DFTestes. Disponível na Internet.
Mensagem recebida da lista DFTestes administrada pelo servidor DFTestes@yahoogrupos.com.br. 10 mai.
2010.
ARANHA, Christian; PASSOS, Emmanuel. A Tecnologia de Mineração de Textos. RESI - Revista
Eletrônica de Sistemas de Informação, Rio de Janeiro, n.2, 2006. Disponível em:
<http://revistas.facecla.com.br/index.php/reinfo/article/download/171/66>. Acesso em: 16 mar. 2012.
BARTIÉ, Alexandre. Garantia da Qualidade de Software: adquirindo maturidade organizacional. Rio de
Janeiro: Campus, 2002.
CHEN, Hsinchun. Knowledge management systems: a text mining perspective. Tucson, Arizona:
University of Arizona, 2001.
COLAÇO JR, Methanias. Mineração de Repositórios de Software: A Computação ajudando à Computação.
SQL Magazine, 31 jul. 2010.
GONÇALVES, Márcio. Extração de dados para Data Warehouse. Rio de Janeiro: Axcel Books, 2003.
HOESCHL, Hugo Cesar. et al. AlphaThemis - do texto ao conhecimento. In: 1st workshop on Automatic
Deduction and Artificial Intelligence (IDEIA), in the 8th Iberoamerican Conference on Artificial
Intelligence, 2002, Sevilha. Anais. Florianópolis: UFSC, 2002.
LOH, Stanley. Abordagem Baseada em Conceitos para Descoberta de Conhecimento em Textos. Porto
Alegre: UFRGS, 2001. Tese (Doutorado em Ciência da Computação), Instituto de Informática, Universidade
Federal do Rio Grande do Sul, 2001.
LONGO, Rose M. J. Gestão da qualidade: evolução histórica, conceitos básicos e aplicação na educação.
In: Seminário Gestão da qualidade na educação: em busca da excelência, 1995, São Paulo. Anais. Brasília:
Instituto de Pesquisa Econômica Aplicada, 1996. 14 p.
MARTINS, Miriam R. Ferramenta de suporte a reuso de casos de uso. Blumenau: FURB, 2006. Trabalho
de Conclusão de Curso (Graduação em Ciência da Computação), Centro de Ciências Exatas e Naturais,
Universidade Regional de Blumenau, 2006.



                                                     18
MYERS, Glenford J. The Art of Software Testing. New York: Wiley, 1979.
OLIVEIRA, Jadielly. et al. WKM: Uma Ferramenta para Auxiliar a Gerência de Conhecimento Integrada a
um ADS Centrado em Processos. In: VI Workshop Anual do MPS, 2010, Campinas. Sessão de Ferramentas
do VI Workshop Anual do MPS, 2010.
PORTO, Edson. O poder das listas. Época Negócios. [S.l], 04 fev. 2010. Disponível em:
<http://epocanegocios.globo.com/Revista/Common/0,,EMI120258-16366,00-
O+PODER+DAS+LISTAS.html>. Acesso em: 28 mar. 2012.
PRESSMAN, Roger S. Engenharia de Software, São Paulo: Makron Books, 2005.
RUS, Iona; LINDVALL, Mikael. Knowledge Management in Software Engineering. IEEE Software, [S.l],
vol. 19, n. 3, p. 26-38. mai. 2002.
SVEIBY, Karl. et al. Gestão do Conhecimento: Um novo caminho. HSM Management, [S.l], n. 22, ano 4,
set.-out. 2000.
TAN, Ah-Hwee. Text mining: the state of the art and the challenges. In: Pacific-Asia Workshop on
Knowledge Discovery from Advanced Databases – PAKDD’99, Beijing, 1999.
TAN, Pang-Ning; STEINBACH, Michael; KUMAR, Vipin. Introduction to Data Mining. Boston:
Addison-Wesley, 2006.
TURBAN, Efraim; McLEAN, Efraim; WETHERBE, James. Tecnologia da Informação para Gestão.
Porto Alegre: Bookman, 2004.
UBER, Jacqueline. Validação das ocorrências policiais com base na descrição textual do boletim de
ocorrência utilizando text mining. Florianópolis: UFSC, 2004. Dissertação (Mestrado em Ciência da
Computação), Departamento de Informática e Estatística, Universidade Federal de Santa Catarina, 2004.
UBER, José L. Descoberta de conhecimento com uso de text mining aplicada ao SAC. Blumenau:
FURB, 2004. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação), Centro de Ciências
Exatas e Naturais, Universidade Regional de Blumenau, 2004.
ZAIDAN, Fernando H. Processo de desenvolvimento de sistemas de informação como forma de
retenção do conhecimento organizacional para aplicação estratégica: Estudo de múltiplos casos. Belo
Horizonte: FUMEC, 2008. Dissertação (Mestrado em Administração), Faculdade de Ciências Empresariais,
Universidade Fundação Mineira de Educação e Cultura, 2008.




                                                 19

Mais conteúdo relacionado

Mais procurados

Testes de software
Testes de softwareTestes de software
Testes de softwareteste
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Luiz Ladeira
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxRoberto Nunes
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de softwareLeonardo Melo Santos
 
Gerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxGerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxRoberto Nunes
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoAricelio Souza
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPriscila Coelho S. Blauth
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 

Mais procurados (20)

Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE D...
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptx
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de software
 
Gerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxGerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptx
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 

Destaque

Realizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitosRealizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitosVIVIANE RANGEL
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de TesteBeatriz Marques
 
Teste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testesTeste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testesLuiz Agner
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlinkslides_teltools
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumIsrael Santiago
 
The Digital Marketing Down Under - Australia
The Digital Marketing Down Under - AustraliaThe Digital Marketing Down Under - Australia
The Digital Marketing Down Under - AustraliaRyan Bonnici
 
Historia de la fotografia melanny lasso 1002
Historia de la fotografia melanny lasso 1002Historia de la fotografia melanny lasso 1002
Historia de la fotografia melanny lasso 1002Melannylasso
 
Los desafíos de trabajo docente, la investigación y el desarrollo sostenible
Los desafíos de trabajo docente, la investigación y el desarrollo sostenibleLos desafíos de trabajo docente, la investigación y el desarrollo sostenible
Los desafíos de trabajo docente, la investigación y el desarrollo sostenible redesformaciondocente
 
Hipoglucemia curso enarm siglo xxi 36246001
Hipoglucemia curso enarm siglo xxi 36246001Hipoglucemia curso enarm siglo xxi 36246001
Hipoglucemia curso enarm siglo xxi 36246001emilio2005angel1973
 
Trastornos específicos del lenguaje
Trastornos específicos del lenguajeTrastornos específicos del lenguaje
Trastornos específicos del lenguajeTami.Marimar
 
Brasil acessivelcaderno05 cópia
Brasil acessivelcaderno05   cópiaBrasil acessivelcaderno05   cópia
Brasil acessivelcaderno05 cópiaandresa26
 
Tutorial bàsic Dropbox nov2013
Tutorial bàsic Dropbox nov2013Tutorial bàsic Dropbox nov2013
Tutorial bàsic Dropbox nov2013Sergi Godia Lopez
 
Revista semanal del 20 al 25 de agosto
Revista semanal del 20 al 25 de agosto Revista semanal del 20 al 25 de agosto
Revista semanal del 20 al 25 de agosto elbeatricino
 
Reconocimeinto general y de actores
Reconocimeinto general y de actoresReconocimeinto general y de actores
Reconocimeinto general y de actoressanbenitomayorga
 
Accessing r from python using r py2
Accessing r from python using r py2Accessing r from python using r py2
Accessing r from python using r py2Wisdio
 

Destaque (20)

Realizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitosRealizando a gestão de testes e o controle de defeitos
Realizando a gestão de testes e o controle de defeitos
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de Teste
 
Teste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testesTeste de usabilidade - Ferramentas online para testes
Teste de usabilidade - Ferramentas online para testes
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlink
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
The Digital Marketing Down Under - Australia
The Digital Marketing Down Under - AustraliaThe Digital Marketing Down Under - Australia
The Digital Marketing Down Under - Australia
 
Historia de la fotografia melanny lasso 1002
Historia de la fotografia melanny lasso 1002Historia de la fotografia melanny lasso 1002
Historia de la fotografia melanny lasso 1002
 
Los desafíos de trabajo docente, la investigación y el desarrollo sostenible
Los desafíos de trabajo docente, la investigación y el desarrollo sostenibleLos desafíos de trabajo docente, la investigación y el desarrollo sostenible
Los desafíos de trabajo docente, la investigación y el desarrollo sostenible
 
Hipoglucemia curso enarm siglo xxi 36246001
Hipoglucemia curso enarm siglo xxi 36246001Hipoglucemia curso enarm siglo xxi 36246001
Hipoglucemia curso enarm siglo xxi 36246001
 
Trastornos específicos del lenguaje
Trastornos específicos del lenguajeTrastornos específicos del lenguaje
Trastornos específicos del lenguaje
 
Dr
DrDr
Dr
 
Brasil acessivelcaderno05 cópia
Brasil acessivelcaderno05   cópiaBrasil acessivelcaderno05   cópia
Brasil acessivelcaderno05 cópia
 
Tutorial bàsic Dropbox nov2013
Tutorial bàsic Dropbox nov2013Tutorial bàsic Dropbox nov2013
Tutorial bàsic Dropbox nov2013
 
Revista semanal del 20 al 25 de agosto
Revista semanal del 20 al 25 de agosto Revista semanal del 20 al 25 de agosto
Revista semanal del 20 al 25 de agosto
 
Reconocimeinto general y de actores
Reconocimeinto general y de actoresReconocimeinto general y de actores
Reconocimeinto general y de actores
 
Contabilidad (contabilidad)
Contabilidad (contabilidad)Contabilidad (contabilidad)
Contabilidad (contabilidad)
 
Accessing r from python using r py2
Accessing r from python using r py2Accessing r from python using r py2
Accessing r from python using r py2
 

Semelhante a MANAGEMENT DEMANDS OF TESTING AND ANALYSIS OF PATTERNS WITH TEXT MINING

Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_WarmlingChaordic
 
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREKéllyson Gonçalves da Silva
 
11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicosFabricio Guimaraes Soares
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Monografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCGMonografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCGDalton Valadares
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
 
Processos de software
Processos de softwareProcessos de software
Processos de softwareDann Volpato
 
Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...
Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...
Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...Leandro Ugioni
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Desenvolvimento de ferramenta para automação de tarefas
Desenvolvimento de ferramenta para automação de tarefasDesenvolvimento de ferramenta para automação de tarefas
Desenvolvimento de ferramenta para automação de tarefasEverton V. Tavares
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Fernando Vargas
 

Semelhante a MANAGEMENT DEMANDS OF TESTING AND ANALYSIS OF PATTERNS WITH TEXT MINING (20)

Aula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptxAula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptx
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
 
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Monografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCGMonografia - Ciência da Computação - UFCG
Monografia - Ciência da Computação - UFCG
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...
Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...
Melhoria da qualidade e padrões de código fonte utilizando ferramentas de aná...
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Desenvolvimento de ferramenta para automação de tarefas
Desenvolvimento de ferramenta para automação de tarefasDesenvolvimento de ferramenta para automação de tarefas
Desenvolvimento de ferramenta para automação de tarefas
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2
 

MANAGEMENT DEMANDS OF TESTING AND ANALYSIS OF PATTERNS WITH TEXT MINING

  • 1. GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING1 Marcos Lottermann <marcoslott@gmail.com> Stanley Loh <stanley.loh@ulbra.edu.br> – Orientador Universidade Luterana do Brasil (Ulbra) – Curso de Ciência da Computação – Campus Canoas Av. Farroupilha, 8.001 – Bairro São José – CEP 92425-900 – Canoas - RS 21 de junho de 2012 RESUMO O objetivo deste trabalho é propor uma ferramenta web que permita realizar a gestão de todas as demandas existentes em cada etapa do teste de software, oferecendo ao gestor uma visão geral do andamento dos projetos e da produtividade das equipes através de gráficos. Ao longo de cada projeto gerenciado pela ferramenta teremos uma base de dados com os defeitos reportados pelas equipes de teste, então será aplicada uma técnica de text mining para que seja possível identificar padrões nestes defeitos, possibilitando que este conhecimento descoberto possa ser utilizado como aprendizado para futuros projetos. Palavras-chave: Mineração de textos; Teste de software; Gestão do conhecimento. ABSTRACT Title: “MANAGEMENT DEMANDS OF TESTING AND ANALYSIS OF PATTERNS WITH TEXT MINING” The objective of this study is proposing a web tool that allows performing the management of all demands in each software testing stage, offering to the manager an overview of the projects status and the productivity of the teams through graphs. Throughout each managed project using the tool we will have a database of defects reported by the test teams, and then we will apply a text mining technique to be able to identify patterns in these defects enabling its discovered knowledge to be used as learning into future projects. Key-words: Text mining; Software testing; Knowledge management. 1 INTRODUÇÃO Analisando o cenário global onde o mercado se apresenta cada vez mais acirrado e competitivo, as organizações devem traçar estratégias para que possam se destacar e obter vantagens sobre os seus concorrentes. E um diferencial que tem ganhado destaque entre as empresas que atuam na área de desenvolvimento de software é o investimento no processo de teste de software. Segundo Pressman (2005), para muitas empresas a etapa de testes chega a representar 50% dos custos e do tempo estimado para o projeto. De acordo com Bartié (2002), quanto mais procedimentos fizerem parte do processo de teste de software, melhor será o nível de avaliação do produto, e por consequência resultará em um produto final com maior qualidade. A Empresa X, na qual este trabalho propõe a implantação do GDT, tem um processo maduro de testes, com as seguintes etapas: escrita dos casos de teste, execução dos casos de teste, checklist e evidências de teste. O conceito de cada uma destas etapas será apresentado na seção 2.1 deste trabalho. Apesar do processo bem definido, a empresa utiliza-se de planilhas eletrônicas para o controle das etapas, o que impossibilita a utilização simultânea desta planilha, gera quantidades desnecessárias de arquivos e não garante a integridade desses arquivos, dificultando o papel do gestor, que não tem uma visão geral do andamento das atividades e prazos. Segundo Nogueira (2010), este é o cenário ideal para a implantação da ferramenta, visto que o processo de testes da empresa é bem definido, maduro, e a implantação da ferramenta não trará grandes riscos e mudanças a esse processo. Durante o andamento da etapa de execução do caso de teste, o testador deve reportar bugs e desvios encontrados no software testado, e estes reportes devem ser feitos na própria ferramenta GDT. Ao reportar o bug, serão informados a descrição e o resultado esperado para este bug, essas informações serão armazenas 1 Artigo final da disciplina de Trabalho de Conclusão II, submetido ao Curso de Ciência da Computação da Universidade Luterana do Brasil, Campus Canoas. 1
  • 2. em formato textual. Visto que é inviável a análise manual de cada um destes textos, é de se considerar a utilização de ferramentas que possam auxiliar na busca de conhecimento na base que será gerada. Isso pode ser feito utilizando a técnica de text mining (mineração de textos). Segundo Sveiby et al. (2000), este é um dos principais focos de preocupação das grandes organizações. Mais do que a tecnologia, o conhecimento é a chave para companhias que pretendem agregar valor aos seus produtos e serviços. Este é um importante diferencial da ferramenta GDT. Aplicando text mining, os bugs reportados durante o projeto serão analisados, identificando padrões e tendências que devem ser utilizados como aprendizado nos futuros projetos, com a finalidade de reduzir custos com retrabalho e garantir uma entrega com qualidade. O artigo esta estruturado em cinco seções, da seguinte forma: a seção 2 apresenta a fundamentação teórica, que serviu como embasamento para este trabalho, destacando a técnica de text mining. Nesta seção também são apresentados trabalhos relacionados à gestão do conhecimento na engenharia de software; a seção 3 apresenta detalhes da especificação e da implementação da ferramenta, além de traçar um comparativo com outras ferramentas existentes; a seção 4 demonstra como foi realizada a validação, experimentos e testes da ferramenta; e por fim a seção 5 apresenta as conclusões obtidas com este estudo e sugestões para trabalhos futuros. 2 REFERENCIAL TEÓRICO Nesta seção, serão apresentados alguns conceitos para a melhor compreensão da ferramenta desenvolvida e da metodologia utilizada. Foram abordados e contextualizados os seguintes tópicos: as demandas presentes na etapa de testes, que serão absorvidas e controladas através da ferramenta; ferramentas de gestão para área de testes existentes; momento ideal para implantação de uma ferramenta no processo de gestão do teste; técnicas e trabalhos relacionados às áreas de gestão do conhecimento; e text mining. 2.1 Teste de software Segundo Longo (1996), os consumidores sempre tiveram preocupação com a qualidade, tendo o cuidado de inspecionar os bens e serviços que adquiriam, porém esta preocupação se voltava para o produto já finalizado, o que não garantia a qualidade destes. A partir da década de 50, uma nova filosofia começou a ser aplicada, com base em conceitos, métodos e técnicas, e a qualidade passou a ser um problema da empresa. Hoje em dia, é evidente a necessidade das organizações investirem em qualidade, criando um diferencial frente ao mercado, evitando desgastes com o cliente e reduzindo impactos com retrabalhos e manutenção do produto. Em virtude desta crescente necessidade na oferta de qualidade, muitas empresas de desenvolvimento têm adotado o processo de testes de software, muitas vezes até por exigência do cliente. Myers (1979) define teste de software como o “processo de executar um programa ou sistema com a intenção de encontrar defeitos (teste negativo)”. Nas subseções seguintes será apresentado o conceito de cada uma das etapas de teste praticadas na Empresa X, a gestão da execução destas etapas será feita através da ferramenta proposta. 2.1.1 Escrita dos casos de teste Esta etapa é executada por um analista de testes e tem como objetivo especificar passo a passo o que os testadores devem fazer para a execução dos testes, com a finalidade de garantir que os testes realizados cubram a maior parte ou os principais requisitos do caso de uso. Ela obedece a estrutura de pré-condições, procedimentos, entrada, resultado esperado e pós-condições. Nesta etapa, a complexidade de cada um dos casos de uso do sistema é definida pelo analista de sistemas e pelo analista de testes, servindo como referência para o testador e para o gestor na estimativa de tempo e esforço necessário para a execução dos testes. 2.1.2 Execução dos casos de teste Após finalizada a etapa de desenvolvimento de um determinado caso de uso, esse caso é liberado para testes. Os testadores seguem os passos especificados nos casos de teste planejados na etapa anterior, reportando os bugs e desvios. 2
  • 3. 2.1.3 Checklist O checklist é uma prática antiga utilizada em diversos segmentos. Por exemplo: em 1935, segundo Porto (2010), a Boeing determinou a seus pilotos a obrigatoriedade da utilização de checklist. Esta etapa inicia-se ao término da etapa de execução dos casos de teste. Os testadores devem utilizar um checklist pré- definido para cada tela do sistema, onde está especificada uma lista de verificações que devem ser feitas. Isso evita o esquecimento de algum teste e possíveis bugs não identificados na execução dos casos de teste. Geralmente, o checklist é executado por um testador diferente daquele que executou o caso de teste. 2.1.4 Evidências de teste Esta etapa inicia-se após o término das etapas de execução dos casos de teste e de execução do checklist, e é realizada por um testador. Consiste em executar cada cenário especificado no caso de teste, gerando um documento que comprove o correto funcionamento dos requisitos testados. O produto final entregue ao cliente, geralmente vai acompanhado por um vídeo, mostrando o desenvolvimento do teste, ou por um print screen das telas da aplicação. 2.2 Ferramentas de gestão para área de testes Nesta seção serão apresentadas duas ferramentas que se propõem a auxiliar a gestão do teste. A primeira é o TestLink, que é uma das principais ferramentas do segmento e tem código aberto. A segunda é o Rational Quality Manager (RQM), ferramenta desenvolvida pela IBM da qual a Empresa X tem licença de uso. Ambas as ferramentas têm o mesmo propósito, apesar de possuírem algumas particularidades que serão detalhadas a seguir. 2.2.1 TestLink O TestLink é uma ferramenta open source (código aberto) desenvolvida na linguagem PHP. O projeto é mantido pela comunidade aberta de testadores de todo o mundo, e se propõe a auxiliar o gerenciamento e execução dos casos de teste. Permite aos usuários especificar os casos de teste, executar, acompanhar os resultados da execução e, por fim, gerar relatórios. O fato de ser uma ferramenta com código aberto permite que usuários que tenham interesse e conhecimento customizem a ferramenta e implementem novos recursos conforme a sua necessidade, a maioria dos métodos presentes no código-fonte não são comentados, o que pode dificultar um pouco esta tarefa. Figura 1 – Interface da tela de especificação dos casos da ferramenta TestLink 2.2.2 Rational Quality Manager (RQM) O RQM é um software proprietário desenvolvido pela IBM, que tem como principal finalidade a especificação dos requisitos, o gerenciamento e a execução dos casos de teste. A ferramenta também permite 3
  • 4. a integração com outro sistema, desenvolvido pela própria IBM, para reportar os bugs encontrados durante o teste, o Rational Team Concert (RTC). A Empresa X – na qual se pretende implantar o GDT – possui licença de uso desta ferramenta, que já foi utilizada em um projeto-piloto, porém não foi adotada em projetos posteriores. Nesses casos foi mantida a gestão por planilhas eletrônicas, a especificação pelo software Rose e o reporte dos bugs pela ferramenta RTC. Esta decisão foi tomada devido a dificuldades encontradas na adaptação ao sistema. A ferramenta foi avaliada como complexa e pouco intuitiva: o tempo consumido estava sendo superior ao utilizado no formato antigo de gestão, afetando diretamente o budget do projeto. Figura 2 – Interface da tela de especificação dos casos da ferramenta Rational Quality Manager 2.3 Por que e quando implantar uma ferramenta de gestão no teste Segundo Nogueira (2010), antes de buscar a utilização de ferramentas é recomendável que o processo de testes da empresa esteja bem definido e maduro. E a implantação da ferramenta só deve ocorrer se não trouxer grandes riscos e mudanças no processo de teste. Para Aquino (2010), o emprego errado de uma ferramenta, ao invés de trazer benefícios, pode se tornar um grande risco para os projetos. Ele também afirma que a melhor ferramenta é aquela que atende ao processo de testes utilizado na organização, e que nem sempre a ferramenta ideal para uma empresa irá se adequar às necessidades de outra empresa. Para minimizar os riscos é importante fazer um estudo de viabilidade das ferramentas antes da aquisição e implantação. Portanto, não é aconselhável a implantação de uma ferramenta que altere radicalmente um processo maduro de testes, que já é utilizado pela organização, com a ilusão de que automaticamente se terá um ganho de produtividade. A ferramenta ideal é aquela que irá facilitar e auxiliar a execução das atividades do teste. Este é um dos motivos pelos quais muitas empresas ainda utilizam planilhas eletrônicas, que são facilmente customizadas, conforme a necessidade, e de fácil adaptação e utilização. 2.4 Gestão do conhecimento na engenharia de software Praticamente todas as atividades executadas nas organizações geram dados e informações que podem se tornar conhecimentos valiosos na tomada de decisões. E a gestão do conhecimento tem justamente este propósito, de aproveitar o capital intelectual das organizações, que é o principal recurso de empresas que trabalham com desenvolvimento de software. Para Turban, McLean e Wetherbe (2004), a gestão do conhecimento é o processo que tem como objetivo auxiliar as organizações a descobrir, organizar e distribuir a informação e o conhecimento que fazem parte da memória da empresa, e que normalmente existem dentro delas de forma não estruturada. 4
  • 5. A área de desenvolvimento de software sofre constantes mudanças e conta com interações de muitas pessoas que atuam em diferentes atividades e fases do projeto. Rus e Lindvall (2002) afirmam que muitos conhecimentos são gerados em empresas de desenvolvimento, porém existem problemas para localizá-los e utilizá-los. O uso apurado destes conhecimentos é a motivação para conduzir a gestão do conhecimento nas empresas de desenvolvimento. A implementação da gestão do conhecimento na engenharia de software apresenta muitos desafios. Segundo Rus e Lindvall (2002), há três importantes questões a serem postas em prática.  Tecnológica – A tecnologia do software deve suportar a gestão do conhecimento, permitindo a integração de todas as ferramentas para que o objetivo traçado com o compartilhamento possa ser atingido.  Organizacional – Deve-se ter um bom planejamento para a implantação da gestão do conhecimento. Um erro comum nas organizações é que elas focam somente a tecnologia e esquecem a metodologia que deve ser aplicada.  Resistência – Muitos colaboradores resistem em buscar conhecimento, seja por falta de tempo, seja por não se sentirem confortáveis em expor seu conhecimento, experiências negativas e lições aprendidas, temendo que essas informações sejam utilizadas contra eles. Zaidan (2008) chega à mesma conclusão que Rus e Lindvall (2002). Ele afirma que o fato de grande parte das empresas não ter obtido êxito ao aplicar técnicas de gestão do conhecimento se deve a não terem traçado um planejamento estratégico bem definido antes da implantação. As empresas devem aguardar um determinado período de tempo até que os resultados da gestão do conhecimento comecem a aparecer. Zaindan (2008) afirma que, em empresas de desenvolvimento, são gerados inúmeros artefatos no formato eletrônico durante as etapas de desenvolvimento, possibilitando a utilização de ferramentas que auxiliem na retenção e na disseminação de conhecimento, permitindo consequentemente seu reúso em projetos futuros. Segundo Rus e Lindvall (2002), no desenvolvimento de um software diferentes ações são propostas, visando a redução de custos do projeto, a redução do tempo de desenvolvimento e o aumento da qualidade. Empregando a gestão do conhecimento na engenharia de software, podem-se obter inúmeros benefícios, tais como o apoio às memórias do projeto e o apoio ao aprendizado, e principalmente aplicar em novos projetos o conhecimento que foi adquirido em projetos anteriores, evitando erros e retrabalho. A motivação para o desenvolvimento e implantação do GDT na Empresa X está diretamente ligada com o que Rus e Lindvall (2002) afirmam. O conhecimento adquirido através dos bugs reportados na ferramenta será utilizado em reuniões de retrospectiva para servir como aprendizado em futuros projetos. O objetivo é a redução de custos do projeto e o aumento da qualidade. Na seção 2.4.1 será apresentado dois trabalhos que estão ligados à gestão do conhecimento na engenharia de software, um deles inclusive é direcionado a área de testes. 2.4.1 Trabalhos relacionados Oliveira et al. (2010) desenvolveu um trabalho em que foi proposta uma ferramenta que tem como principal objetivo auxiliar no planejamento e na execução de estratégias de gestão do conhecimento. Trata-se da WebAPSEE Knowledge Manager (WKM). Através dessa ferramenta, é possível fazer a modelagem e a execução dos processos, acompanhar o prazo das atividades e alocar recursos. A ferramenta promove ainda a reutilização de boas práticas gerenciais em diferentes projetos e permite controlar as atividades de equipes que estão geograficamente dispersas. O autor definiu quinze requisitos. Eles se baseiam em: (i) Bibliografia sobre o que é necessário para a implantação de Gerência do Conhecimento, na qual se destacam Rus e Lindvall (2002), utilizados como referência neste trabalho; (ii) Atividades descritas na NBR ISO/IEC 12207 e no Guia de Implementação do nível E do modelo MPS; (iii) Aspectos socioculturais tratados no P-CMM; e (iv) Estudo qualitativo realizado com cinco empresas de Belém do Pará. Esses quinze requisitos são apresentados no quadro 1. Quadro 1 – Descrição dos quinze requisitos que a ferramenta WKM atende Promover ações de conscientização sobre a importância da realização da gerência de REQ 1 conhecimento na organização, tanto com a alta direção quanto com os funcionários. REQ 2 Selecionar uma estratégia adequada às características da organização. 5
  • 6. Estabelecer políticas para criação, compartilhamento e utilização de ativos de REQ 3 conhecimento por toda a organização. Definir papéis e alocar pessoas responsáveis para trabalhar na execução do processo. REQ 4 de gerência do conhecimento. Permitir o planejamento das ações relacionadas à gerência do conhecimento, de REQ 5 forma que as atividades detalhadas no plano sejam realizadas pela organização. REQ 6 Definir os tipos de conhecimento estratégicos para a organização. Permitir a aquisição de diversos tipos de conhecimento de membros da organização, tanto relacionados a projetos específicos quanto em nível organizacional, REQ 7 estabelecendo padrões e classificações de tipos de conhecimento a fim de facilitar a recuperação e a disseminação dos ativos. Permitir a avaliação de conhecimento antes de armazená-lo e disponibilizá-lo para a REQ 8 organização, com o objetivo de filtrar conhecimento de valor, garantindo que o mesmo esteja correto e claro o suficiente para ser reutilizado. Garantir que o conhecimento está disponível para reutilização por outros membros REQ 9 da organização. REQ 10 Permitir a busca de conhecimento pelos membros da organização. Formar uma rede de especialistas na organização, permitindo a busca de pessoas REQ 11 (especialistas) na organização, de forma que se tenham estabelecidas as habilidades de cada membro da organização e uma quantificação de experiência do indivíduo. Desenvolver soluções para a disseminação do conhecimento aos funcionários da REQ 12 organização. Permitir que os usuários avaliem a utilidade do conhecimento, bem como a própria REQ 13 estratégia adotada na organização, para que seja possível obter resultados em relação aos benefícios obtidos com a implantação da mesma. Permitir a manutenção de conhecimento, de forma que o conhecimento defasado REQ 14 possa ser atualizado ou desabilitado da organização. Promover formas de compensar os funcionários pela criação de conhecimento de REQ 15 valor para a organização. Martins (2006) desenvolveu uma pesquisa pela qual foi construída uma ferramenta, chamada de SucReuse, que cria um repositório com os casos de uso em formato XMI. O objetivo dessa ferramenta é auxiliar os engenheiros de software a reutilizar e elaborar modelos de casos de uso. O autor definiu o processo de reutilização em dois momentos. Primeiro, o engenheiro de software, através da técnica de analogia, identifica os casos de uso que tenham o mesmo contexto. Por exemplo, empréstimos financeiros e aplicações financeiras podem ser classificados como contexto financeiro. Depois de classificar o contexto, o engenheiro deve identificar, nos cenários do caso de uso, as partes fixas e as partes variáveis. As partes variáveis devem informar um ou mais conceitos para o termo destacado como variável. Com este processo é criada a base de conhecimento para cada modelo de caso de uso que é inserido no repositório da ferramenta. A figura 3 exemplifica esta relação criada, na qual os termos curso, coordenador e turma foram marcados como variáveis e devem ser definidos termos semelhantes. Por exemplo, curso: palestra, seminário; coordenador: palestrante, seminarista; turma: plateia, ouvinte. Figura 3 – Ligação semântica do cenário de caso de uso O segundo momento ocorre quando o usuário vai realizar uma busca para encontrar um modelo de caso de uso que atenda a sua necessidade, e assim reutilizá-lo, fazendo pequenas modificações e obtendo um 6
  • 7. ganho de produtividade. 2.5 Text mining Segundo Chen (2001), 80% do conteúdo online está armazenado em formato textual. Este mesmo percentual, segundo Tan (1999), corresponde às informações disponíveis em uma organização no formato textual e não estruturado. Devido a este crescente volume de informações armazenadas no formato textual, se torna inviável a análise manual de cada um destes textos, portanto é de se considerar, a utilização de ferramentas que possam auxiliar na busca de conhecimento, isso pode ser feito utilizando a técnica de text mining (mineração de textos). Segundo Aranha e Passos (2006), a mineração de textos consiste em extrair padrões e tendências de grandes quantidades de documentos em formato textual e não estruturado, normalmente para um objetivo especifico. A mineração de textos possui duas fases principais e sequentes: a extração de informações e a própria mineração de dados. A primeira destina-se a extrair conceitos, estatísticas e palavras relevantes de um conjunto textual para estruturá-los minimamente, preparando-os para a aplicação das técnicas de mineração de dados. Neste segundo momento aplicam-se as diretrizes e algoritmos de mineração de dados destinados a gerarem regras, classificações ou agrupamentos. (HOESCHL et al., 2002) Uber, José (2004) conduziu um estudo no qual foi aplicada a técnica de text mining para automatizar e auxiliar na análise de chamados telefônicos. Verificou-se o campo que contém a descrição do chamado e, com base nisto, o sistema categorizou esse chamado. O autor foi motivado a desenvolver essa ferramenta em razão do elevado número de chamados classificados de forma errônea pelos atendentes. Outro autor, Uber, Jacqueline (2004), desenvolveu um estudo, com objetivo semelhante, em que a técnica foi aplicada em ocorrências policiais, classificando automaticamente a natureza da operação do boletim de ocorrência. Ele chegou à conclusão de que 5,44% dos registros analisados estavam classificados de forma incorreta. 2.5.1 Stopwords São palavras consideradas irrelevantes no contexto que está sendo analisado, tais como preposições e artigos. Para Gonçalves (2003), a eliminação destas palavras no processo de indexação salva uma enorme quantidade de espaços em índices e não prejudica a eficácia da recuperação. Estas palavras negativas devem ser retiradas na etapa de preparação dos dados. 2.5.2 Técnica associativa Segundo Loh (2001), a técnica associativa consiste em descobrir relações entre conceitos, expressando os resultados em forma de regras X  Y, o que significa que “se X está presente em um texto, então Y estará presente nesse texto com um determinado grau de certeza (confiança)”. Este grau de confiança pode ser calculado com o mesmo princípio da probabilidade condicional: utilizando a fórmula presente no quadro 2, se obtém a probabilidade de um evento A ocorrer, dado que um evento B ocorreu. Quadro 2 – Fórmula para calcular a probabilidade condicional P(A|B) = Para Tan, Steinbach e Kumar (2006), a análise de associação é uma metodologia que oferece grande suporte na busca de relações com interesse escondidas em grandes conjunto de dados. Segundo o exemplo que foi apresentando pelos autores, em um case da rede Wall-Mart foi descoberta a relação entre fraldas  cerveja. Os autores sugerem que utilizando estas regras de associação é possível então identificar novas oportunidades de venda de produtos, e assim obter vantagem competitiva sobre seus concorrentes. 2.5.3 Text mining na engenharia de software Durante a etapa de desenvolvimento do software, programadores codificam e corrigem defeitos, entre outras tarefas. A utilização de ferramentas introduzidas e integradas ao processo de desenvolvimento permite que sejam armazenados de forma automática dados do processo de desenvolvimento. É possível minerar estes dados com o objetivo de descobrir padrões e regras que possam melhorar a qualidade do 7
  • 8. sistema, ou até mesmo melhorar a produtividade das equipes. Colaço Jr. (2010) cita algumas das atividades que podem ser auxiliadas com a aplicação da mineração de dados.  Programação – Em nível de construção do software, a descoberta de padrões pode ajudar a: (i) identificar características de uso de uma API (Application Program Interface) ou framework automaticamente; (ii) manter os padrões de uso atualizados, baseando-se sempre na mais nova versão da API ou framework; (iii) identificar padrões que abranjam casos de herança em frameworks.  Manutenção – A mineração de dados aplicada no histórico de alterações armazenadas por sistemas de controle de versões pode auxiliar os desenvolvedores com sugestões do tipo “os desenvolvedores que modificaram o método X também modificaram o método Y”.  Detecção de defeitos – Todos os sistemas devem seguir algumas regras da linguagem de programação utilizada para que possam se manter corretos. Grande parte dos erros acontece pela falta de combinação entre alguns métodos. Por exemplo, chamar o método para desalocar memória por uma estrutura de dados que não foi instanciada. Utilizando a mineração de textos, é possível identificar estes padrões e verificar o código, buscando os trechos que não seguem o padrão e que podem apresentar defeitos. 2.5.4 Ferramentas de text mining aplicadas a engenharia de software Abaixo serão apresentadas duas ferramentas encontradas que utilizam técnicas de text mining e são aplicadas no contexto de engenharia de software.  ChangeMiner2 – É um plug-in gratuito para Visual Studio capaz de minerar o histórico de versões. No momento da alteração do código, baseado no histórico, o plug-in reporta ao desenvolvedor os prováveis próximos pontos de manutenção. Essa apresentação é feita de forma gráfica e textual e tem como objetivo aumentar a eficiência nas manutenções realizadas no sistema.  NeuroMiner3– Esta ferramenta combina mineração de textos com técnicas de inteligência artificial e estatística. O ambiente utiliza princípios da programação neurolinguística para extrair o canal cognitivo mais usado pelos programadores, por exemplo, de listas de discussões de um projeto. Isso auxilia na tomada de decisões, pois é possível traçar um perfil psicológico de cada desenvolvedor ou cliente da empresa, com base em qualquer texto analisado que represente uma interação. 3 APRESENTAÇÃO DA FERRAMENTA PARA GESTÃO DE DEMANDAS DE TESTE – GDT A ferramenta desenvolvida foi batizada de GDT. Implementada na linguagem de desenvolvimento web PHP, com características de orientação a objetos, o sistema foi construído de forma a ser intuitivo e amigável com os usuários, respeitando os princípios de ergonomia, cuidando do tamanho das telas, das cores utilizadas e das mensagens objetivas e padronizadas nas interações com o usuário. A implantação do GDT proporciona a automatização do processo de gestão das demandas de teste e descoberta de conhecimento nos bugs reportados. Isso é feito através de uma aplicação web em que as demandas existentes em cada etapa do teste são distribuídas e controladas por esta ferramenta, possibilitando ao gestor uma visão geral do andamento dos projetos e da produtividade das equipes com os gráficos gerados através ferramenta. Com esta ferramenta na gestão do teste, é possível identificar padrões nos bugs reportados, utilizando técnicas de text mining. Isso possibilita a utilização desses dados para propor melhorias nos futuros projetos. Para que a aplicação seja aprovada e possa contribuir de fato com o processo de testes da Empresa X, foi adotado o processo de desenvolvimento padrão da empresa. Nesse processo, todos os casos de uso foram especificados, as telas foram prototipadas, o banco foi modelado, foi criado um dicionário de dados e foi elaborado um plano de testes. Também foram criados os casos de teste e checklists para cada caso de uso. Todos os documentos gerados estão disponíveis na ferramenta, através do menu documentação. 2 Link para download da ferramenta: https://sites.google.com/site/frchico/changeminer 3 Link para a página oficial da ferramenta: http://qualycred.com/software/neurolinguisticminer/ 8
  • 9. 3.1 Descrição dos requisitos Nesta seção será descrito o funcionamento, os detalhes técnicos e os requisitos funcionais das principais telas do sistema. Cada subseção representa um módulo do sistema GDT. A especificação detalhada de cada caso de uso do sistema está disponível através do menu documentação da ferramenta. 3.1.1 Módulo Cadastro O módulo cadastro é a base do sistema. Para realizar a gestão das etapas de teste de um projeto, é necessário seguir o fluxo apresentado na figura 4, em que uma equipe, cadastrada, cadastra o cliente, o projeto e os casos de uso desse projeto. Figura 4 – Fluxo para liberar as etapas de teste  Equipe – Através desta tela será criado o usuário que as equipes irão utilizar para logar no sistema. O campo e-mail deve ser preenchido no formato correto, e a senha deve ter de 6 a 10 caracteres. As equipes cadastradas serão utilizadas para distribuir as demandas existentes nas etapas de teste, no cadastramento do projeto (em que é designado um testador responsável), no controle dos bugs, nos gráficos de produtividade gerados através do dashboard e no diário de testes, no qual é gravado o usuário que incluiu o registro.  Cliente – Nesta tela serão cadastrados os clientes que terão projetos gerenciados através da ferramenta.  Projeto – Nesta tela será feito o cadastro do projeto a ser gerenciado através da ferramenta. Será informado o cliente, o nome do projeto e uma breve descrição, a data inicial do projeto, o prazo para escrita dos casos de teste, o prazo final do projeto e o team leader do projeto. As datas informadas nesta tela serão utilizadas no gráfico de prazos gerado através do menu dashboard.  Casos de uso – O sistema permite criar até trinta casos de uso por vez através desta tela. Para cada caso de uso cadastrado será gerado automaticamente uma demanda em cada uma das etapas de teste (escrita do caso de teste, execução do caso de teste, checklist e evidência de teste). Esta geração automática é feita pois estes cinco cadastros (etapas de teste + caso de uso) são gravados na mesma tabela (tabela UC) do banco de dados, conforme pode ser observado na figura 10. Os campos da tabela UC que apresentam o sufixo _CT se referem à escrita do caso de teste, _ET à execução do caso de teste, _CL ao checklist, _EV à evidência de teste e os demais ao próprio caso de uso. 3.1.2 Módulo Etapas de teste Este módulo é dividido em quatro etapas nas quais o testador informa a data de início da atividade, a data de conclusão, o tempo consumido, faz algumas observações e informa o status em que se encontra a atividade, além do nome da equipe responsável por sua execução. Esta estrutura é mantida nas quatro etapas, com exceção da etapa de escrita do caso de teste, onde é informada a complexidade da análise e a complexidade do teste, conforme pode ser observado na figura 5. 9
  • 10. Figura 5 – Tela de controle da etapa de escrita do caso de teste 3.1.3 Módulo Ferramentas O módulo ferramentas é composto pelas funcionalidades que irão fazer o diferencial do GDT em relação às demais ferramentas utilizadas no mercado, adequando-se à necessidade da Empresa X.  Controle de bugs – Através desta tela, serão reportados todos os bugs encontrados durante as etapas de teste. O testador irá informar o cliente, o projeto, o caso de uso ao qual se refere o bug encontrado, o grau de severidade deste bug, uma breve descrição, a descrição completa e o resultado esperado para o funcionamento correto da funcionalidade. Então, o bug é atribuído a uma equipe para correção. É possível inserir comentários e anexar documentos que evidenciem a existência do bug. A cada troca de status ou anexo adicionado, é inserido um comentário-padrão, registrando esta ação. Figura 6 – Tela de reporte de bugs 10
  • 11. Na figura 10, é possível identificar todos os relacionamentos da tabela BUG para guardar os comentários inseridos, anexos (nome e extensão), nome da equipe que reportou, nome da equipe que resolveu, status, severidade. Esta tela é fundamental para o funcionamento da funcionalidade de text mining, pois é através dela que serão gerados os dados que serão analisados. Na figura 6 estão destacados os dois campos que serão utilizados em busca de conhecimento.  Diário de testes – Esta tela tem como objetivo registrar diariamente fatos que ocorreram e podem impactar nos prazos de entrega acordados com o cliente, como, por exemplo, indisponibilidade do ambiente ou a existência de elevado número de bugs bloqueando a continuidade dos testes. Estes dados serão utilizados para negociar prazos com o gerente de projetos e com o cliente, caso seja necessário. Ao final do projeto, na reunião de retrospectiva, estes dados também são apresentados para que nos próximos projetos estes problemas não ocorram e estes itens possam ser utilizados como riscos auxiliando nas estimativas de prazos, se for o caso.  Dashboard – Através do dashboard, é fornecido ao gestor uma visão geral do andamento das demandas de teste do projeto, contribuindo para maior assertividade na tomada de decisões. O usuário informa qual o projeto e que tipos de gráficos deseja visualizar. Então, utilizando as bibliotecas Highcharts e jQuery, são apresentados os gráficos. Na figura 7 temos o exemplo do gráfico de linhas usado para acompanhar a produtividade das equipes e o gráfico de colunas, utilizado para acompanhar a execução das demandas do projeto selecionado. No total, são oferecidas cinco opções de gráficos: (i) Produtividade, que permite enumerar as atividades que cada equipe alocada no projeto executou; (ii) Acompanhamento das atividades (status), que oferece uma visão de cada etapa de teste, mostrando em que status se encontram as atividades; (iii) Acompanhamento das atividades (%), que exibe um gráfico de colunas apresentando o percentual de conclusão de cada uma das etapas; (iv) Prazos, que exibe um gráfico de linhas com flags da data inicial do projeto, prazo de escrita dos casos de teste, data atual e prazo final, facilitando o controle dos prazos; (v) Bugs por dia, que exibe um gráfico de linha pelo qual é possível verificar a quantidade de bugs abertos por dia, possibilitando ao analista de testes identificar desvios. Por exemplo: muitos bugs abertos no final da etapa de testes. Figura 7 – Exemplo de gráficos gerados pelo dashboard  Text mining – A funcionalidade de text mining é um dos principais diferenciais da ferramenta GDT. Devido a sua importância, foi criada a seção 3.1.4, para que ela possa ser descrita em detalhes desde o processamento dos bugs reportados até o conhecimento que é obtido através da sua utilização. 3.1.4 Módulo Ferramentas: Text mining Através da figura 8, é possível acompanhar todo o fluxo realizado pelo caso de uso: processar text mining. Este fluxo pode ser ativado através do botão processar, presente na tela text mining, onde o usuário 11
  • 12. pode selecionar o projeto cujos bugs devem ser processados. Esta mesma rotina é executada todos os dias às 24h através de uma tarefa cron4 agendada no servidor, processando os bugs pendentes de todos os projetos. Figura 8 – Fluxo de processamento dos bugs Nos passos 2 e 4 presentes na figura 8, é feita a preparação dos dados. As palavras contidas na tabela STOPWORD do banco foram alimentadas com análises estatísticas de vários autores5 e calibradas conforme a necessidade. Após o processamento dos bugs, é possível consultar os conhecimentos que foram descobertos neste processo. O sistema dispõe de quatro opções de análise.  Análise 1 – Descrição do bug: são apresentadas as 70 palavras com o maior suporte, que aparecem na descrição dos bugs reportados para o projeto selecionado, ordenadas de forma decrescente. Representada pela primeira tabela exibida na figura 9.  Análise 2 – Resultado esperado do bug: são apresentadas as 70 palavras com o maior suporte, que aparecem no resultado esperado dos bugs reportados para o projeto selecionado, ordenadas de forma decrescente. Representada pela segunda tabela exibida na figura 9.  Análise 3 – Descrição x resultado esperado: é apresentada uma palavra da descrição (X) e uma palavra do resultado esperado (Y), com o respectivo suporte e a probabilidade condicional. São exibidos os 70 primeiros pares, ordenados pelo seu suporte de forma decrescente. Representada pela terceira tabela exibida na figura 9.  Análise 4 – Probabilidade condicional: foi utilizada uma técnica de associação para prever a solução de um bug com determinada descrição. É representada pela lista que é exibida na figura 9. Para realizar o cálculo da confiança, foi utilizada a fórmula da probabilidade condicional, que foi estudada no quadro 2 e adequada à necessidade conforme o quadro 3. Quadro 3 – Fórmula para calcular a probabilidade condicional P(XY) = Onde: X= Palavra da descrição do bug. Y= Palavra do resultado esperado do bug. 4 Tarefas Cron é uma opção do servidor que permite agendar tarefas para serem executadas periodicamente. 5 A base inicial com as stopwords foi extraída através do link http://miningtext.blogspot.com.br/2008/11/listas-de-stopwords-stoplist-portugues.html 12
  • 13. Figura 9 – Análises geradas pela tela de text mining 3.2 Modelagem do banco de dados A modelagem do banco de dados foi realizada através da ferramenta desenvolvida pela Sun, o MySQL Workbench. Esta ferramenta é gratuita e permite uma conexão direta com o banco de dados MySQL, facilitando a criação das tabelas e a geração dos scripts. Na figura 10, que representa a modelagem do banco de dados, é possível ter uma noção do funcionamento do sistema e dos relacionamentos entre as tabelas. 13
  • 14. Figura 10 – Modelagem do banco de dados 3.3 Comparativo Através do quadro 4, foi traçado um comparativo entre as ferramentas estudadas na seção 2.2 deste trabalho e a ferramenta proposta. Alguns itens foram sinalizados com asterisco devido ao fato de a ferramenta não ter esta funcionalidade, embora permita a integração com outra ferramenta que a tenha. Apesar de as duas ferramentas permitirem a gestão das etapas de teste, elas não são de fácil compreensão. Não foram projetadas com este propósito, embora cumpram o objetivo. O grande diferencial da ferramenta GDT é que ela foi projetada especialmente para a gestão das etapas do teste e fornece um módulo que permite a descoberta de conhecimento nos bugs reportados, funcionalidade que nenhuma das outras duas ferramentas estudadas oferece. Dois itens que devem ser aprimorados na ferramenta GDT são referentes a permissões dos usuários e à criação dos casos de teste na própria ferramenta. Em relação a este segundo item, pode ser estudada uma forma de gerar automaticamente os casos de teste. 14
  • 15. Quadro 4 – Comparativo das funcionalidades da ferramenta GDT Funcionalidades TestLink RQM GDT Criação dos casos de teste Gestão da execução dos casos de teste Gestão da execução do checklist Gestão da execução das evidências Diário de testes Controle de bugs Gráficos gerenciais Descoberta de conhecimento nos bugs Restrições por usuários 3.4 Cronograma de implantação do sistema Através do cronograma exibido na figura 11, estão especificadas as atividades que foram executadas e o próximo importante passo, que será a implantação do sistema em produção, através de um projeto-piloto. Figura 11 – Cronograma de atividades do projeto GDT 4 VALIDAÇÃO, EXPERIMENTOS E TESTES A validação do sistema GDT ocorreu com a utilização das próprias etapas de teste estudadas neste trabalho: escrita dos casos de teste, execução de casos de teste e checklist. Também foi realizado um experimento com ênfase no teste da funcionalidade do menu text mining. Esses procedimentos serão detalhados nas subseções deste tópico. 4.1 Execução dos casos de teste Para cada um dos 38 casos de uso do sistema foi criado um caso de teste específico, em que foram testados os requisitos e comportamentos de cada funcionalidade. Esta etapa foi executada por três testadores da Empresa X, e o resultado encontra-se disponível no menu documentação da própria ferramenta. 4.2 Checklist Para cada um dos 38 casos de uso do sistema foi criado um checklist correspondente, no qual foram revisados itens padrões de cada tipo de tela (Pesquisa, Inclusão, Edição, Exclusão etc). Esta etapa foi executada por quatro testadores da Empresa X. A demanda foi dividida de forma que o testador executasse o checklist de uma tela que foi testada por outra equipe. O resultado está disponível no menu documentação da própria ferramenta. 15
  • 16. 4.3 Experimentos Foram realizados experimentos específicos na funcionalidade de text mining, nos quais foram reportados bugs reais encontrados durante a etapa de testes de um projeto desenvolvido pela Empresa X. O cliente que solicitou este projeto será chamado de Cliente ABC. Os projetos do Cliente ABC correspondem a cerca de 35% do faturamento da sede de Porto Alegre da Empresa X e tem seu próprio padrão de telas, mensagens e comportamentos. Baseado nas quatro análises geradas e destacadas na figura 9, o analista de testes alocado neste projeto chegou à conclusão de que grande parte dos bugs reportados eram referentes a mensagens de validação, validações de campos com período de datas (data inicial e data final), padrões do cliente e comportamento do sistema (foco nos campos). Figura 12 – Classificações feitas pelo analista de teste, baseado na Análise 4 Na figura 12 é apresentada a visão que o analista de teste interpretou para chegar a suas conclusões. Os bugs foram classificados em cinco grupos.  Mensagens – Bugs relacionados a mensagens de validação do sistema. Neste grupo foram identificados dois subgrupos: (i) mensagens de campos data (intervalo inicial e final), por exemplo, bugs com a descrição “data” têm 15,09% de chances de a solução estar ligada à correção na “mensagem” de validação; (ii) mensagens de validação de acordo com nome da label, por exemplo, bugs com descrição “mensagem” têm 3,09% de chances de estarem relacionados ao nome da label.  Comportamentos – Bugs relacionados ao comportamento do sistema. Por exemplo, quando a descrição do bug tiver a palavra “incorreto”, há 15,38% de probabilidade de que a solução seja promover ajustes no “foco” dos campos. Outro exemplo: quando a descrição contiver a palavra “comportamento” há 6% de chances de que a solução deste bug seja o ajuste no valor “default” dos campos. 16
  • 17.  Padrões – Bugs relacionados ao padrão do cliente. Por exemplo, mensagem de validação em desacordo com o padrão estabelecido. Ou nome de labels do mesmo campo escritas de forma diferente em diferentes telas.  Permissões – Bugs relacionados à permissão dos usuários. Por exemplo, usuário de consulta com permissão para edição.  Obrigatoriedade – Bugs relacionados a validações de obrigatoriedade de campos. A figura 12 indica que os bugs reportados com a palavra “obrigatoriedade” têm 10,34% de chances de a solução estar em ajustes na mensagem para ficar de acordo com o nome da label. Pelo conhecimento obtido, foram tomadas as seguintes providências para que os próximos projetos deste cliente não apresentem os mesmos bugs.  Foi designado um recurso de teste para, durante a fase de construção, de acordo com os padrões estabelecidos, validarem: as telas; as mensagens; os menus; e o comportamento do sistema.  As equipes de análise, desenvolvimento e teste que serão alocadas nos projetos do Cliente ABC passarão por um treinamento de cinco horas em que serão apresentados todos os padrões específicos deste cliente e serão realizadas algumas atividades práticas. Esta ação será executada, a cada projeto, por uma equipe diferente, possibilitando que todos tenham a oportunidade de estudar e repassar o conhecimento. Com estas duas ações, é esperada uma redução no número de bugs relacionados a padrões e layout, tanto de desenvolvimento quanto de análise, evitando retrabalho de todas as áreas. Assim, as equipes de teste poderão direcionar o esforço dos testes para os requisitos e regras de negócios. 5 CONSIDERAÇÕES FINAIS Diante das necessidades da Empresa X de automatizar a gestão das demandas da área de teste, foi desenvolvido o sistema GDT. Para minimizar os riscos deste projeto, foi seguida a metodologia que é empregada atualmente na empresa (levantamento de requisitos, definição dos casos de uso, especificação das regras, protótipos, plano de testes etc.). Durante a fase do levantamento de requisitos surgiu a ideia da criação do módulo ferramentas, que é o grande diferencial em relação às demais ferramentas do mercado. Neste módulo está contido o menu controle de bugs, no qual verificou-se que, a cada projeto, é gerada uma base de dados rica em informações referentes aos defeitos do projeto em questão. E esta base deveria ser explorada para extração de conhecimento, e para que este conhecimento seja aplicado como aprendizado em projetos futuros. Então, surgiu o menu text mining, que tem esta proposta. A solução proposta atendeu aos resultados esperados pela Empresa X, visto que a gestão das atividades realizada pela aplicação contornou todos os problemas apresentados nas planilhas eletrônicas, como a falta de segurança e integridade dos arquivos, a indisponibilidade de acesso simultâneo, a quantidade desnecessária de arquivos e a falta de uma visão geral dos projetos para o gestor. Além de facilitar a gestão das quatro etapas do teste, a ferramenta proporcionou aos analistas de testes a descoberta do conhecimento nos bugs reportados através da ferramenta, o que antes só era possível questionando os testadores alocados no projeto. Este conhecimento, obtido no experimento apresentado na seção 4 deste trabalho, já foi utilizado pela Empresa X em tomadas de decisão que trouxeram melhora na qualidade do produto. Em relação a trabalhos futuros, este projeto será continuado pela Empresa X, com o desenvolvimento do módulo de alertas, pelo qual o sistema emitirá avisos ao gestor, conforme o andamento do projeto e a execução das atividades. Ainda em relação aos trabalhos futuros, será desenvolvido um módulo em que o caso de testes será escrito através da própria ferramenta. A ideia é utilizar alguma técnica existente para a geração de um template padrão do caso de teste. Por exemplo, o analista irá fazer o upload do protótipo da tela, e o sistema irá gerar um caso de teste, validando a obrigatoriedade, os campos de data etc. Assim, o analista de testes poderá focar seus esforços apenas em escrever cenários que validem as regras de negócio. Em relação a melhorias da ferramenta, deve-se possibilitar a aplicação de restrição de acessos, utilizando a sessão que é criada durante o logon, permitindo que apenas usuários alocados no projeto tenham 17
  • 18. acesso aos dados, e de acordo com o nível de permissões atribuídas ao seu perfil. A ferramenta e toda a sua documentação encontram-se disponíveis através do link http://www.marcos.pro/gdt/php/. AGRADECIMENTOS À DEUS, por ter me dado esta oportunidade, por iluminar o meu caminho e me trazer forças nos momentos difíceis durante esta caminhada de seis anos em que passei nesta instituição. Aos meus familiares e a amigos verdadeiros, que me incentivaram e me motivaram durante este período. Aos colegas e amigos de curso, pelos momentos de descontração e pelos momentos de aprendizado colaborativo que foram muito produtivos. Ao meu orientador, Prof. Dr. Stanley Loh pelo seu comprometimento, disposição e por todas as contribuições que me deu durante o desenvolvimento deste trabalho. Aos colegas de trabalho da área de teste, por todo o suporte que foi dado para o sucesso deste trabalho, pelos testes realizados na aplicação, as sugestões de melhorias, as reuniões de acompanhamento e apoio sempre que necessário. Aos colegas de trabalho da área de análise e desenvolvimento, pelas dicas, conceitos, sugestão de ferramentas, e pelo apoio e prontidão com que me ajudaram sempre que foram encontrados obstáculos. REFERÊNCIAS AQUINO, Ueslei; NOGUEIRA, Elias. 24ª edição da Mesa Redonda DFTestes. Disponível na Internet. Mensagem recebida da lista DFTestes administrada pelo servidor DFTestes@yahoogrupos.com.br. 10 mai. 2010. ARANHA, Christian; PASSOS, Emmanuel. A Tecnologia de Mineração de Textos. RESI - Revista Eletrônica de Sistemas de Informação, Rio de Janeiro, n.2, 2006. Disponível em: <http://revistas.facecla.com.br/index.php/reinfo/article/download/171/66>. Acesso em: 16 mar. 2012. BARTIÉ, Alexandre. Garantia da Qualidade de Software: adquirindo maturidade organizacional. Rio de Janeiro: Campus, 2002. CHEN, Hsinchun. Knowledge management systems: a text mining perspective. Tucson, Arizona: University of Arizona, 2001. COLAÇO JR, Methanias. Mineração de Repositórios de Software: A Computação ajudando à Computação. SQL Magazine, 31 jul. 2010. GONÇALVES, Márcio. Extração de dados para Data Warehouse. Rio de Janeiro: Axcel Books, 2003. HOESCHL, Hugo Cesar. et al. AlphaThemis - do texto ao conhecimento. In: 1st workshop on Automatic Deduction and Artificial Intelligence (IDEIA), in the 8th Iberoamerican Conference on Artificial Intelligence, 2002, Sevilha. Anais. Florianópolis: UFSC, 2002. LOH, Stanley. Abordagem Baseada em Conceitos para Descoberta de Conhecimento em Textos. Porto Alegre: UFRGS, 2001. Tese (Doutorado em Ciência da Computação), Instituto de Informática, Universidade Federal do Rio Grande do Sul, 2001. LONGO, Rose M. J. Gestão da qualidade: evolução histórica, conceitos básicos e aplicação na educação. In: Seminário Gestão da qualidade na educação: em busca da excelência, 1995, São Paulo. Anais. Brasília: Instituto de Pesquisa Econômica Aplicada, 1996. 14 p. MARTINS, Miriam R. Ferramenta de suporte a reuso de casos de uso. Blumenau: FURB, 2006. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação), Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, 2006. 18
  • 19. MYERS, Glenford J. The Art of Software Testing. New York: Wiley, 1979. OLIVEIRA, Jadielly. et al. WKM: Uma Ferramenta para Auxiliar a Gerência de Conhecimento Integrada a um ADS Centrado em Processos. In: VI Workshop Anual do MPS, 2010, Campinas. Sessão de Ferramentas do VI Workshop Anual do MPS, 2010. PORTO, Edson. O poder das listas. Época Negócios. [S.l], 04 fev. 2010. Disponível em: <http://epocanegocios.globo.com/Revista/Common/0,,EMI120258-16366,00- O+PODER+DAS+LISTAS.html>. Acesso em: 28 mar. 2012. PRESSMAN, Roger S. Engenharia de Software, São Paulo: Makron Books, 2005. RUS, Iona; LINDVALL, Mikael. Knowledge Management in Software Engineering. IEEE Software, [S.l], vol. 19, n. 3, p. 26-38. mai. 2002. SVEIBY, Karl. et al. Gestão do Conhecimento: Um novo caminho. HSM Management, [S.l], n. 22, ano 4, set.-out. 2000. TAN, Ah-Hwee. Text mining: the state of the art and the challenges. In: Pacific-Asia Workshop on Knowledge Discovery from Advanced Databases – PAKDD’99, Beijing, 1999. TAN, Pang-Ning; STEINBACH, Michael; KUMAR, Vipin. Introduction to Data Mining. Boston: Addison-Wesley, 2006. TURBAN, Efraim; McLEAN, Efraim; WETHERBE, James. Tecnologia da Informação para Gestão. Porto Alegre: Bookman, 2004. UBER, Jacqueline. Validação das ocorrências policiais com base na descrição textual do boletim de ocorrência utilizando text mining. Florianópolis: UFSC, 2004. Dissertação (Mestrado em Ciência da Computação), Departamento de Informática e Estatística, Universidade Federal de Santa Catarina, 2004. UBER, José L. Descoberta de conhecimento com uso de text mining aplicada ao SAC. Blumenau: FURB, 2004. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação), Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, 2004. ZAIDAN, Fernando H. Processo de desenvolvimento de sistemas de informação como forma de retenção do conhecimento organizacional para aplicação estratégica: Estudo de múltiplos casos. Belo Horizonte: FUMEC, 2008. Dissertação (Mestrado em Administração), Faculdade de Ciências Empresariais, Universidade Fundação Mineira de Educação e Cultura, 2008. 19