Alguns posts relacionados com os testes incluídos na Enterprise Library, diferenciação entre testes unitários (tdd) e testes de integração, bem como "resmas" de boas práticas na construcção de testes unitários: nomes de testes, mensagens de assert,etc.
Running the Enterprise Library Unit Tests
Another Entlib example: Separate integration tests from unit tests (and learn to know the difference)
ISerializable
Ultimamente tenho andado à procura de uma boa ferramenta para testar funcionalmente aplicações Web. Tenho usado quase sempre o NUnitAsp mas queria ver até que ponto conseguia gravar uma sessão de trabalho numa aplicação e reaproveitá-la para criação de um teste. Do que vi:
SWExplorerAutomation: Automate web GUI unit testing for IE - The program creates an automation API for any Web application which uses HTML and DHTML and works with Microsoft Internet Explorer. The Web application becomes programmatically accessible from any .NET language. (ainda não tive tempo para testar, mas pareceu-me um conceito interessante)
IEUnit e Selenium - Baseiam-se os dois em javascript e pelo que testei portaram-se ambos bem. Ainda assim só vi um recorder em java para o Selenium. O IEUnit traz um, o QuickFocus que se portou bem nos testes iniciais.
O problema é que apesar de ultrapassarem uma quantidade razoável de problemas usuais (sincronização e simulação de eventos,etc) faltam muitas features que.... depois do trabalho árduo de colocar o recorder e o simulador a funcionar, até seriam mais ou menos triviais de implementar: gravação de testes + amigável, repositório de testes, hierarquia, step by step (o selenium já tem, no ieunit não me apercebi).
Podem ver neste artigo da MSDN Magazine uma versão um "caseira" do conceito... tem uma visão bastante limitada do trabalho necessário para uma implementação real.
Enfim, alguém tem mais algumas sugestões?
Também recente é este guia sobre algumas das novas funcionalidades da versão 2.0 alojadas no novo namespace System.Transactions.
Ter comportamentos transaccionais transversais a vários objectos, ou mesmo módulos, não era realmente das tarefas mais gratificantes da versão anterior. Com recurso ao local storage do thread (obviamente :) ) e a alguns novos interfaces a MS conseguiu implementar algumas funcionalidades interessantes: transaction scopes, lightweight transaction manager (LTM), promoção automática de LTM para transacção distribuída, eventos (nice!),etc. Enfim, está tudo no doc.
Sobre Software Factories, tenho lido bastantes coisas, incluindo conceitos de MDA (Model Driven Architecture), dado uma vista de olhos pelas DSL Tools, etc... mas como não ia dizer nada que se aproveitasse vou apenas dizer que era um bom tópico para a MS levar ao próximo evento do PontoNet. Obviamente gostava de estar presente, vamos ver. :)