Google Singleton Detector
é um software que permite identificar o uso de Singletons em códigos Java. Os criadores do projeto defendem que este design pattern cria um estado global acessível de qualquer ponto da aplicação e dificulta a criação de testes, já que as classes podem obter Singletons dentro do corpo de um método, sem a necessidade de passá-lo como um parâmetro a esse método, e para que esse teste funcione corretamente, é necessário que a classe que se está testando esteja corretamente inicializada.
Os autores do projeto criaram um wiki dentro do projeto para explicar essas idéias: Por que os singletons geram uma controversa? 
Esse design pattern já rendeu boas discussões em fórums nacionais, com você pode ver nesse post
do GUJ.