Agile

23 jul, 2018

Testes ágeis de software em indústrias regulamentadas aumentam a segurança

Publicidade

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, conformidade e segurança das aplicações. Os motivos são claros:

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.

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.

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.

Pelo contrário, o processo de desenvolvimento e testes minimiza a documentação e processos desnecessários e cria 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.

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.

1. O BDD estimula a colaboração nos requisitos

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.

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.

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.

2. ATDD oferece aceitação comercial de precisão

Quando você cria novos recursos para a sua empresa, 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.

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.

3. Domínio da expertise dos testadores em crowdsources do BDD

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.

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.

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.

4. BDD aumenta a rastreabilidade

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 à 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.

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.