FÁBRICA DE TESTE Os desafios do mundo do software Durante muito tempo as atenções estiveram voltadas para a produção do software, ou seja, para a linha de produção de códigos. Buscavam-se metodologias e processos inovadores que permitissem um código mais claro, com menos esforço e com mais qualidade. Todos os esforços estavam em cima dos códigos a serem gerados. Depois se passou a acreditar que um planejamento robusto seria a solução, então investiu-se tudo na modelagem dos processos, nos requisitos e nos projetos. Claro que tudo isso que foi agregado à produção de software é fundamental para a qualidade do mesmo. Mas por que, ainda assim, os softwares produzidos não são confiáveis? E por que, quem acaba descobrindo os principais erros, são os clientes (internos ou externos)? As tentativas passam por modelos de garantia de qualidade tais como CMM, CMMI, MPS-BR entre outros. Um processo maduro e confiável deveria produzir softwares de qualidade com baixas taxas de erros, e os erros achados deveriam ser de baixo impacto na produção e na execução do software. Na prática não é isso que acontece. Depois de algum tempo, as tecnologias amadureceram, os profissionais estavam alinhados às novas práticas, os processos evoluíram, os requisitos passaram a ser melhor gerenciados e rastreados, porém os desenvolvedores de software, sejam grandes ou pequenos, continuam comprometendo o escopo, o prazo, o custo e à qualidade dos softwares entregues, considerado o mais grave de todos os problemas. A produção de software não é uma tarefa trivial e apresenta peculiaridades que a tornam uma atividade de alto risco, não só para quem compra como para quem vende. A máxima que diz na área de software sabemos como começamos, mas não temos idéia de como vai terminar é uma frase que é dita constantemente nas empresas, no mercado e na academia. Algumas organizações investem na criação de fábrica de software e empregam cada vez mais tecnologia nos seus processos, gerando mais dependência do mercado e dos fornecedores, além de muitas vezes serem obrigadas a formar profissionais para o mercado. Este modelo tem apresentado mais falhas na codificação, aumento de custo, falta de respeito aos cronogramas, criação de uma estrutura organizacional pesada comprometendo a produção da própria da fábrica, mas o mais perigoso de tudo, impedindo que a área de TI acompanhe e dê suporte ao planejamento estratégico da organização. Se isso tudo é verdade, me parece lógico que o caminho saudável seja buscar fornecedores de software no mercado que estejam preparados para atender as demandas de software das organizações, mas também responder com velocidade e qualidade apresentando soluções de acordo com as necessidades e investindo em inovação, mas também cabe a organização definir de forma coerente e responsável o grau de terceirização, de forma que não comprometa a independência da empresa, mas que permita avançar na produção e na qualidade do software produzido. Testes de software No mundo do software fala-se muito em qualidade de software produzido, mas o que é qualidade? Um processo de qualidade e maduro gera um software de qualidade? No livro TQC Controle de Qualidade Total: no estilo japonês, Falconi sintetiza o conceito de qualidade nos seguintes termos: um produto ou serviço de qualidade é aquele que atende perfeitamente, de forma confiável, de forma acessível, de forma segura e no tempo certo às necessidades do cliente. Segundo Ishikawa, qualidade é desenvolver, projetar, produzir e comercializar um produto de qualidade que é mais econômico, mais útil e sempre satisfatório para o consumidor e Deming define qualidade como tudo aquilo que melhora o produto do ponto de vista do cliente. Se analisarmos estas três definições, veremos que todas citam o cliente ou consumidor como peça chave da definição da qualidade. Este é um aspecto fundamental na nossa linha de raciocínio, não adianta bons requisitos, processos adequados e maduros, treinamento e ferramental se o cliente não for visto como principal stakehold de toda a produção. Diante disso e analisando todas as informações acima expostas vemos que a indústria de software se esforça muito em prover um produto/serviço de qualidade, mas que normalmente tem no cliente seu principal algoz. É o cliente a parte mais penalizada do processo, é ele quem paga, quem descobre os principais erros e quem arca com todo o prejuízo de um software produzido sem qualidade. A falta de qualidade dos fornecedores de software reduz a lucratividade das organizações. As mudanças são necessárias e muitas vezes, apenas por meio delas, o software se viabiliza, seja por causa de alterações no negócio da empresa, mudanças na legislação, inclusão de novas funcionalidades para aumentar a produtividade ou para entrada em novos mercados. Estas mudanças podem impactar as transações em produção já estabilizadas, provocando os chamados erros regressivos (funcionalidades antigas que deixaram de funcionar) ou podem promover a parada total do sistema, o que pode comprometer parte de seu faturamento, provocando perdas financeiras. Alterar sistemas em produção ou desprender esforços para fazê-los voltar a funcionar implica no aumento dos custos da organização, fazendo com que as receitas diminuam e os custos aumentem diminuindo a lucratividade e conseqüentemente deixando a organização em uma situação de maior vulnerabilidade. Uma grande corporação precisa garantir que todos os requisitos funcionais (regras de negócios, usabilidade da aplicação, restrição de acesso) operem da forma desejada. Os requisitos não funcionais (tempo de resposta, teste de picos de acesso, testes com grande volume de informações, entre outros cenários) garantem o comportamento do aplicativo em condições críticas, que só podem ser exercitadas em condições simuladas e evidenciadas através de testes. Neste contexto uma Fábrica de Testes permite a diminuição dos custos associados ao desenvolvimento e funcionamento de sistemas, potencializando os lucros, uma vez que não haverá perda da receita por descontinuidade dos serviços. Fábrica de Testes Uma Fábrica de Testes, segundo a ALATS, é uma estrutura independente de profissionais com alta especialização e capacitação em processos e ferramentas de testes de software, objetivando medir e avaliar a qualidade dos sistemas produzidos ou modificados. Uma Fábrica de Testes tem por objetivo conseguir aplicar o maior volume de testes no menor espaço de tempo possível, possibilitando simular os principais cenários de negócios e avaliar antecipadamente a conformidade do comportamento do aplicativo em cada situação. Investir numa Fábrica de Testes é apostar na Qualidade de Software como meio de minimizar os riscos dos projetos de desenvolvimento e estabelecer meios de controle sobre a qualidade do software que está sendo disponibilizado. Sucesso Garantido Para obtermos sucesso em uma Fábrica de Testes é fundamental uma metodologia abrangente e madura, ferramental altamente especializado, e neste caso estamos falando de soluções proprietárias ou free, na verdade, o ideal é que se tenham as duas linhas de software, além disso, uma equipe bem selecionada e altamente treinada e especializada, por fim, equipamentos compatíveis com as demandas e ambiente de trabalho seguro, restrito e que garanta o sigilo e a inviolabilidade das informações. No que se refere ao planejamento, o uso de uma metodologia de gerenciamento de projetos pode ajudar e muito o atingimento do sucesso esperado pela fábrica e pelos clientes. Por fim, é necessário analisar com cuidado os caminhos a tomar quando o assunto é qualidade. Nenhumas das citações contidas neste texto podem ser desprezadas, pelo contrário, todas devem todas ser utilizadas em conjunto, quando possível, na busca da produção de softwares confiáveis e que atendam às necessidades do mercado e dos seus clientes. MARCUS DRATOVSKY é formado em Administração de Empresa com especialização em Sistemas Desenvolvidos para WEB, é certificado CBTS e Diretor executivo da FTS - Fábrica de Teste de Software.