Concurso:
TRT - 2ª Região (SP)
Disciplina:
Engenharia de Software
Há diversos processos e práticas ágeis de desenvolvimento de software. Considere:
I. Seu objetivo é criar um “código limpo que funcione”. Trabalha com a estratégia Red - Green - Refactor:
- Codifique o teste;
- Faça-o compilar e executar. O teste não deve passar (Red).
- Implemente o requisito e faça o teste passar (Green).
- Refatore o código (Refactor).
II. Suas práticas, regras e valores garantem um agradável ambiente de desenvolvimento de software para os seus seguidores, que são conduzidos pelos princípios básicos:
- Comunicação - manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação;
- Simplicidade - implementar apenas requisitos atuais, evitando adicionar funcionalidades que podem ser importantes somente no futuro;
- Feedback - o desenvolvedor terá informações constantes do cliente e do código, em que testes constantes indicam os erros tanto individuais quanto do software integrado;
- Coragem - encorajar as pessoas que não possuem facilidade de comunicação e bom relacionamento interpessoal, encorajar a equipe a experimentar e buscar novas soluções, além de encorajar a obtenção de feedback do cliente.
III. Objetiva capturar os critérios de aceitação para as funcionalidades em desenvolvimento. Trabalha com as seguintes etapas:
- Discutir (Discuss): discussão colaborativa com a equipe visando elicitar os critérios de aceitação.
- Refinar (Distill): refinamento dos critérios de aceitação em um conjunto concreto de cenários/exemplos de uso descrevendo o comportamento esperado da aplicação em uma linguagem comum a todos os membros da equipe.
- Desenvolver (Develop): transformação dos testes de aceitação (descrevendo o comportamento esperado do software) em testes/especificação automatizados.
IV. Suas práticas incluem:
- Envolver as partes interessadas no processo através de Outside-in Development.
- Usar exemplos para descrever o comportamento de uma aplicação ou unidades de código.
- Automatizar os exemplos para prover um feedback rápido e testes de regressão.
- Usar o verbo deve (should) ao descrever o comportamento de software para ajudar a esclarecer responsabilidades e permitir que funcionalidades sejam questionadas.
- Usar dublês de teste (mocks, stubs, fakes, dummies, spies) para auxiliar na colaboração entre módulos e códigos que ainda não foram escritos.
Os processos ágeis I, II, III e IV são, correta e respectivamente, denominados:
I. Seu objetivo é criar um “código limpo que funcione”. Trabalha com a estratégia Red - Green - Refactor:
- Codifique o teste;
- Faça-o compilar e executar. O teste não deve passar (Red).
- Implemente o requisito e faça o teste passar (Green).
- Refatore o código (Refactor).
II. Suas práticas, regras e valores garantem um agradável ambiente de desenvolvimento de software para os seus seguidores, que são conduzidos pelos princípios básicos:
- Comunicação - manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação;
- Simplicidade - implementar apenas requisitos atuais, evitando adicionar funcionalidades que podem ser importantes somente no futuro;
- Feedback - o desenvolvedor terá informações constantes do cliente e do código, em que testes constantes indicam os erros tanto individuais quanto do software integrado;
- Coragem - encorajar as pessoas que não possuem facilidade de comunicação e bom relacionamento interpessoal, encorajar a equipe a experimentar e buscar novas soluções, além de encorajar a obtenção de feedback do cliente.
III. Objetiva capturar os critérios de aceitação para as funcionalidades em desenvolvimento. Trabalha com as seguintes etapas:
- Discutir (Discuss): discussão colaborativa com a equipe visando elicitar os critérios de aceitação.
- Refinar (Distill): refinamento dos critérios de aceitação em um conjunto concreto de cenários/exemplos de uso descrevendo o comportamento esperado da aplicação em uma linguagem comum a todos os membros da equipe.
- Desenvolver (Develop): transformação dos testes de aceitação (descrevendo o comportamento esperado do software) em testes/especificação automatizados.
IV. Suas práticas incluem:
- Envolver as partes interessadas no processo através de Outside-in Development.
- Usar exemplos para descrever o comportamento de uma aplicação ou unidades de código.
- Automatizar os exemplos para prover um feedback rápido e testes de regressão.
- Usar o verbo deve (should) ao descrever o comportamento de software para ajudar a esclarecer responsabilidades e permitir que funcionalidades sejam questionadas.
- Usar dublês de teste (mocks, stubs, fakes, dummies, spies) para auxiliar na colaboração entre módulos e códigos que ainda não foram escritos.
Os processos ágeis I, II, III e IV são, correta e respectivamente, denominados: