<p> </p>
<p><span style="font-size: 12.16px;"><img src="images/artigos/2018/ryan_QAS_1.jpg" border="0" width="65" height="85" style="float: left; margin: 5px;" />Ryan Yackel (*)</span></p>
<p><span style="font-size: 12.16px;">Princípios de testes ágeis de software – como o Behavior Driven Development (BDD) – Desenvolvimento Guiado por Comportamento – estão alinhando as equipes de desenvolvimento de software em boa parte das companhias ao redor do mundo em torno da qualidade e conformidade e segurança das aplicações. Os motivos são claros:</span></p>
<p><span style="font-size: 12.16px;">No ano passado, por exemplo, 49% das organizações de serviços financeiros sofreram algum tipo de violação, segundo apurou o Relatório de Ameaças de 2017 da Thales Data, Financial Edition. Pouco mais de um quinto (21%) das organizações consultadas afirmou ter sido violada mais de uma vez e preocupantes 90% afirmam que, agora, se sentem mais vulneráveis a tais incidentes. </span></p>
<p><span style="font-size: 12.16px;">Violações de segurança praticada contra outros setores, como saúde e varejo, colocaram milhões de pessoas no risco de roubo de identidade e provocaram grandes prejuízos à imagem pública das marcas e ao balanço financeiro de grandes companhias. No mundo dos dispositivos médicos, as violações da segurança cibernética são raras, mas o impacto potencial é assustador. Em 2017, a Food and Drug Administration (FDA) dos EUA recolheu quase meio milhão de marca-passos da Abbott para abordar uma vulnerabilidade que poderia permitir que invasores desligassem as baterias ou até mesmo alterassem os comandos de estimulação do dispositivo. Considere o poder que um hacker experiente e politicamente motivado poderia ter sobre a vida de um chefe de estado, um alto executivo ou de um membro proeminente responsável pela aplicação das leis.</span></p>
<p><span style="font-size: 12.16px;">Quando o que está em jogo é algo muito importante, priorizar a qualidade do software não é negociável. Muitas organizações estão modernizando seus processos de desenvolvimento e testes para aprimorar a qualidade. Práticas Ágeis e DevOps estão conquistando a preferência e confiança nos testes em empresas que operam sob padrões regulatórios, apesar da percepção errônea de que os métodos modernos de desenvolvimento e teste de software não produzam a documentação (trilha) necessária para as auditorias.</span></p>
<p><span style="font-size: 12.16px;">Pelo contrário, o processo de desenvolvimento e testes minimiza a documentação e processos desnecessários e criar um ciclo de feedback mais rápido, que pode evoluir com demandas e requisitos variáveis. Além de prometer um time-to-market mais rápido do software, muitas práticas ágeis básicas são projetadas especificamente para melhorar a qualidade da aplicação. E esse foco na qualidade é que oferece vantagens distintas para as equipes que desenvolvem software em setores regulamentados.</span></p>
<p>Organizações de desenvolvimento progressivo em saúde, bancos e outras indústrias regulamentadas estão aplicando princípios ágeis como o desenvolvimento orientado a comportamento (BDD) e desenvolvimento orientado a testes de aceitação (ATDD) para colocar a qualidade em primeiro plano. Eu já vi muitos de nossos clientes, incluindo organizações de serviços financeiros presentes no Fortune 500, otimizando seus processos de desenvolvimento e fortalecendo as trilhas de auditoria com o BDD.</p>
<p><strong>1. O BDD estimula a colaboração nos requisitos</strong></p>
<p>O desenvolvimento orientado a comportamento (BDD) é um método ágil que ajuda as equipes a fornecerem, com eficiência, os recursos mais importantes para os negócios. Envolve colaboração e comunicação estreitas entre as partes interessadas da empresa, tais como as áreas de produtos, os desenvolvedores e testadores de software, visando descobrir, entender e traduzir as necessidades de negócios em requisitos técnicos antes de iniciar uma aplicação.</p>
<p>Os cenários de testes do BDD diferem dos scripts de teste tradicionais, pois são escritos usando uma sintaxe semelhante à do idioma inglês. Isso significa que é mais fácil para as pessoas de negócios verificar se os desenvolvedores e testadores entendem suas necessidades e há menos risco de os requisitos se perderem na tradução à medida que são transmitidos a partir dos negócios para a engenharia. Esses fatores são especialmente importantes em ambientes altamente regulamentados em que a não conformidade pode resultar em pesadas multas.</p>
<p>Se sua organização convive com auditorias regulares, a aplicação dos conceitos de BDD pode ajudar a sua equipe a manter a rastreabilidade durante todo o ciclo de desenvolvimento, o que simplifica o processo de auditoria. O BDD prescreve que os testes sejam escritos antecipadamente e que sejam baseados em requisitos específicos. Essa ligação rastreável entre o teste e o requisito ajuda a provar que o software foi adequadamente testado de uma maneira que é fácil de ser entendida pelos auditores.</p>
<p><strong>2. ATDD oferece aceitação comercial de precisão</strong></p>
<p>Quando você cria novos recursos para a sua empresa o seu objetivo é que eles sejam aceitos pela companhia. No entanto, o estágio de teste de aceitação, ou validação, do negócio geralmente ocorre mais tarde no ciclo de vida do desenvolvimento. Mesmo que o desenvolvimento tenha realizado testes funcionais mais cedo, você ainda tenderá a forçar os participantes do negócio a realizarem os testes mais perto do final do projeto. Esse é um risco que você não quer enfrentar porque pode atrasar seu plano de entrada para a produção.</p>
<p>Combinar o ATDD com o BDD pode ser uma maneira infalível de garantir que os requisitos sejam realmente cumpridos no produto acabado. O ATDD reúne as áreas interessadas, testadores e desenvolvedores de negócios para definir critérios de aceitação automatizados antes que o código seja escrito. Portanto, quando os testes automatizados falham, eles fornecem feedback de que os requisitos não estão sendo atendidos. Quando eles passam, isso indica que a aceitação foi cumprida no começo, e não no final do seu ciclo de desenvolvimento.</p>
<p><strong>3. Domínio da expertise dos testadores em crowdsources do BDD</strong></p>
<p>A mudança para um processo mais colaborativo permite aos testadores se apresentarem como especialistas nas demandas do usuário, o que, por sua vez, preenche a lacuna entre os requisitos comerciais e técnicos. Há um enorme valor em reconhecer a percepção exclusiva dos testadores sobre a experiência do usuário. De todos os envolvidos no ciclo de vida de desenvolvimento de software, os testadores gastam mais tempo interagindo com o software da mesma maneira que um usuário faria. E a usabilidade se torna extremamente importante quando os consumidores estão interagindo com seus aplicativos para acessar informações de saúde ou realizar transações financeiras.</p>
<p>A ScienceSoft sugere que a aquisição do domínio do conhecimento é um dos trabalhos mais importantes dos testadores em setores regulamentados. Eles devem saber o suficiente sobre os regulamentos em seus setores para entender quais partes se aplicam ao software que estão testando e garantir uma cobertura de teste adequada.</p>
<p>Além de alavancar o domínio da expertise dos testadores, o BDD e o ATDD permitem obter o domínio no conhecimento das partes interessadas em toda a empresa, incluindo especialistas em regulamentação, líderes empresariais, proprietários de produtos e desenvolvedores. Isso torna mais fácil para as empresas regulamentadas garantir que as regras corretas sejam incluídas no projeto, no caso dos testes para garantir abrangência necessárias nos testes, conformidade regulamentar e necessidades do usuário.</p>
<p><strong>4. BDD aumenta a rastreabilidade</strong></p>
<p>A autorização regulatória geralmente requer a demonstração de rastreabilidade entre requisitos, testes e artefatos de software. As ferramentas de BDD, como o Cucumber (de código aberto), por exemplo, também oferecem maneiras de documentar testes automatizados, um processo que nem sempre é o padrão de fato em setores não regulamentados. Se você estiver automatizando testes no BDD, os casos de teste, que são escritos em linguagem simples, tornam-se a documentação diretamente ligada aos testes automatizados que foram escritos para ele. Isso torna mais fácil para as partes interessadas não técnicas entender exatamente o que cada script estava testando e comparar rapidamente os casos de teste com os requisitos e os resultados. As ferramentas que se integram a estruturas de automação de código aberto podem simplificar esse processo, fornecendo uma visão única de toda a atividade de teste, proporcionando às equipes uma maneira simples de informar que o software atendeu a cada requisito.</p>
<p><span style="font-size: 12.16px;">O BDD e o ATDD podem, assim, otimizar o desenvolvimento alinhando as áreas interessadas antecipadamente garantindo a obtenção do conhecimento de domínio de crowdsourcing e garantir a conformidade normativa e uma experiência positiva do usuário, além de criar uma trilha minuciosa para a auditoria. No entanto, mudar para esses métodos ágeis significa também capacitar novamente os testadores para escrever os casos de teste de uma maneira diferente. Os líderes devem entender e abrir espaço para uma nova curva de aprendizado e fornecer a tecnologia apropriada para apoiá-la.</span></p>
<p><em>(*) Gerente de produto da QASymphony, fornecedora de ferramentas de testes de software.</em></p>