Boa tarde!
Vamos às suas perguntas:
Chaves Únicas para Widgets: Sim, você está correto. Normalmente, é responsabilidade do desenvolvedor fornecer essas chaves únicas para os widgets. Isso é especialmente importante quando se trata de testes de integração, pois essas chaves permitem que os testes identifiquem e interajam com os widgets específicos. Se um tester externo estiver realizando os testes e precisar definir essas chaves, essas alterações geralmente serão incorporadas ao código oficial. Isso ocorre porque essas chaves são essenciais para a realização de testes de integração eficazes.
TDD (Test-Driven Development): No TDD, os testes são escritos antes do código de produção. Isso pode ser feito pelos próprios desenvolvedores ou por uma equipe de teste dedicada, dependendo da estrutura da equipe e das práticas da empresa. O ideal é que todos os desenvolvedores estejam familiarizados com a escrita de testes, pois isso faz parte das boas práticas de desenvolvimento de software.
BDD (Behavior-Driven Development): No BDD, os testes são baseados no comportamento esperado do software e são escritos em uma linguagem natural compartilhada por todos os membros da equipe (desenvolvedores, testers, stakeholders). Isso facilita a compreensão dos requisitos e minimiza mal-entendidos. Assim como no TDD, os testes no BDD podem ser escritos pelos desenvolvedores ou por uma equipe de teste dedicada. A diferença é que, no BDD, os testes são escritos de uma perspectiva de usuário, em vez de uma perspectiva de desenvolvedor.
Espero que isso esclareça suas dúvidas! Se você tiver mais perguntas, fique à vontade para perguntar.