Mostrando postagens com marcador software. Mostrar todas as postagens
Mostrando postagens com marcador software. Mostrar todas as postagens

domingo, 21 de outubro de 2012

TIU Testing Dojo

Participei do primeiro TIU Testing Dojo que ocorreu no dia 20/10/2012, organizado pela equipe de testes e qualidade da Useall Software.

O encontro contou com participação de analistas, testers e também programadores, todos buscando ampliar conhecimento e prática para testes de software.

Os trabalhos iniciaram com uma apresentação sobre o que é Testing Dojo, os tipos de desafio e a dinâmica do dojo. Neste momento ficou clara a semelhança com nosso coding-dojo. Também tivemos a oportunidade de avaliar uma nova ferramenta de gestão e automação de testes.

Mas o foco era treinar testes e compartilhar conhecimentos. Escolhemos como desafio, avaliar um novo sistema desenvolvido pela empresa. Buscamos avaliar os quesitos funcionalidade e usabilidade. Piloto e co-piloto se revezavam definindo casos de teste e executando testes manuais e exploratórios, aprendendo o novo sistema, validando as funcionalidades e gerando ideias e melhorias para a usabilidade de cada recurso.

Pessoal concentrado. Tinha até co-co-piloto.

Depois, fizemos um processo inverso. Após levantar os casos de testes, compará-los com os testes unitários. Isso foi muito interessante, pois testadores e programadores puderam comparar visão diferentes de testes.

A sessão durou mais de 2 horas, onde todos os participantes se revezaram entre piloto, co-piloto e observadores. Por fim fizemos a retrospectiva, organizando as anotações e avaliando o evento.

Novo jeito de testar? De pé, mãos para trás, mão no bolso!!!

Carinhas felizes na retrospectiva

  • Realização do 1º TIU Testing Dojo
  • Participação de programadores e testadores
  • Desafio de avaliar dois quesitos (funcionalidade e usabilidade)
  • Compartilhamento de conhecimento entre a equipe
  • Uso da ferramenta de testes
  • Quitutes

Carinhas tristes

  • Teste em protótipo não foi tão produtivo
  • Sistema desconhecido e com fluxo complexo
  • Tempo de 5 minutos é pouco para rodízio
  • Primeira sala estava trancada
  • Sala reserva era apertada e algumas pessoas ficaram de pé
Os organizadores e participantes do evento estão de parabéns! Todos podemos contribuir e aprender sobre testes de software, uma das tarefas de grande importância no desenvolvimento de software de qualidade.

Slides usados na abertura do evento


[]

segunda-feira, 8 de outubro de 2012

Gestão ágil de projetos de software - ForkInTuba 2012

Estive palestrando em Tubarão no dia 06/10/2012 no evento Fork In Tuba 2012 (http://forkintuba.wordpress.com), promovido pelo grupo de amigos do DojoTuba (http://dojotuba.wordpress.com).

Na ocasião foram ministradas diversas palestras sobre temas variados e, todos os participantes buscando aprender e compartilhar conhecimento entre amigos.

Falei um pouco sobre gestão ágil de projetos de software utilizando ferramentas para melhorar cada vez mais a produtividade da equipe, aperfeiçoando a gestão de todo o ciclo de vida de desenvolvimento de aplicações.

Apresentei o Visual Studio e Team Foundation Server 2012 rodando em Windows 8. Para descontrair mostrei uma aplicação simples rodando no Windows 8 buscando despertar o interesse dos participantes neste novo sistema operacional.

Slides da apresentação: http://goo.gl/rq9CFC

Veja a relação completa de palestras:

Gostaria de parabenizar a equipe organizadora, agradecer o convite para palestrar e a troca de conhecimentos e aprendizado com todo o pessoal!

[]

sábado, 23 de junho de 2012

Coding Dojo - TIUDojo

Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.

Gosto muito de participar desses encontros. Na empresa onde trabalho, várias pessoas participam, inclusive quem não trabalha com programação, mas que gosta muito e tem interesse em novos conhecimentos.

O dia de hoje foi especial, várias pessoas novas participaram do "TIUDojo", nome especial que foi dado ao nosso grupo. Na ocasião, falei brevemente sobre coding dojo e TDD. Meu amigo Everson fez uma "lightning talk" sobre desenvolvimento mobile.

Procuramos aplicar todas as regras de coding dojo. O processo é divertido e gera muito conhecimento.

O desafio escolhido do dia foi programar funções do jogo "campo minado".

Piloto e co-piloto

TDD - testes com sinal verde (no momento da foto, quase todos)

Passos de bebê (meu filhote prestigiando)

Equipe interessada, participativa e que gosta de programação


Cafézinho, refri, salgadinho

Deixo um agradecimento especial a todos que participaram do melhor coding dojo da região!!

E aí, você gostou do TIUDojo?
Qual será o próximo desafio?

[]

domingo, 9 de outubro de 2011

Participação no Teched Brasil 2011


Nos dias 29 e 30 de setembro participamos do Teched Brasil 2011. O objetivo do evento é promover o encontro de desenvolvedores de software e profissionais de tecnologia da informação, que utilizam suas ferramentas para administrar sistemas. Foi um grande evento onde a Microsoft reuniu mais de dois mil participantes, desenvolvedores, DBAs, analistas, gerentes, CIOs, todos focados em tecnologia.
 As palestras eram ministradas em várias salas simultaneamente, organizadas por trilhas. Exemplo de trilhas: Plataforma de Aplicação e infraestrutura , Windows Phone, Cloud Computing e Online Services, Office e Sharepoint, Windows, Servidores e, evidentemente, Ferramentas de desenvolvimento, linguagens e frameworks, claro que tudo isso focado no ambiente Microsoft.

Detalhes de algumas trilhas 

DEV - Ferramentas de Desenvolvimento, Linguagens e Frameworks
Seu conhecimento de linguagens de desenvolvimento e proficiência com as ferramentas que você usa para criar software são o núcleo do seu conjunto de habilidades. A trilha Developer Tools, Languages & Frameworks é baseada em formação técnica profunda que abrange o melhor da Microsoft ® Visual Studio ®, SDK Kinect, WebMatrix  e o Microsoft ® .NET Framework. Obtenha informações detalhadas sobre a criação de software de missão crítica utilizando nativos e gerenciando Visual C++ ®, Visual Basic ®, F # e Visual c# ®. Aumente o impacto de desenvolvimento de aplicativos com Application Lifecycle Management (ALM) utilizando as melhores práticas do Visual Studio, Visual Studio Test Elements e Team Foundation Server. Desenvolva as habilidades que você precisa para gerar impacto imediato na sua organização durante a preparação para a adoção da versão mais recente do Visual Studio.
WEB - Desenvolvimento e Design Web
A trilha de Plataforma Web traz para você as últimas informações sobre tecnologias de ponta da Web e fornece as mais recentes experiências no desenvolvimento para o usuário, a partir da área de trabalho do Windows ® para dispositivos móveis-interbrowser e multi-plataforma na Web. Receba as informações mais recentes sobre o Windows Presentation Foundation, XAML, HTML 5, CSS 3, Microsoft ® Expression ® Studio e Microsoft ® Silverlight ™, bem como toda a cobertura aprofundada do Internet Information Services (IIS), Microsoft ® ASP .NET, AJAX, Windows Internet Explorer ® e Windows Live ™ Platform. Se você está interessado em elevar seu desenvolvimento em ASP .Net para um nível mais alto, ou descobrir como você pode usar suas habilidades de desenvolvimento .Net para criar experiências ricas, a trilha Web Platform é para você.
WPH - Windows Phone
O Windows Phone ® 7 é um tipo diferente de telefone projetado para reunir o que os usuários mais gostam. Ele foi projetado para acomodar suas necessidades de mobilidade e tecnologias web 2.0. Ele também pode conectar em sua infraestrutura existente do Windows e aproveitar a rica funcionalidade disponível em produtos como o Microsoft ® Exchange Server e Microsoft ® SharePoint ® Server. Existe uma grande quantidade de profissionais de TI e usuários que vão apreciar. Usuários estão procurando para experiências ricas em Windows Phone, e gostariam de personalizá-la com aplicativos. A trilha de Windows Phone irá proporcionar o conhecimento para desenvolver aplicações atraentes.
OSP - Office e SharePoint
A trilha Office e SharePoint fornece aos profissionais de TI e desenvolvedores uma visão geral de todos os novos investimentos nos produtos em 2010 e aprofundamentos em áreas específicas, incluindo Microsoft ® Project Server 2010, SharePoint Online, Microsoft ® SharePoint ® Server 2010 e Microsoft ® Office 2010. Aprenda com especialistas do setor sobre as práticas recomendadas para planejar, projetar, implantar e implementar soluções de classe mundial construídas sobre a tecnologia das plataformas Office e SharePoint. Profissionais de TI aprenderão mais sobre o SharePoint Server e aplicativos para clientes do Office, com sessões que cobrem a segurança, implantação, gestão, administração de personalização. Desenvolvedores aprenderão sobre como aproveitar sua experiência com Microsoft ® ASP .NET para o ecossistema SharePoint, como construir novas tecnologias baseadas em SharePoint e Office.
DBP - Plataforma de Base de Dados
A plataforma de dados do Microsoft ® SQL Server ® ajuda sua organização a gerenciar quaisquer dados, em qualquer lugar, a qualquer momento com a segurança, confiabilidade e escalabilidade que as suas aplicações de missão crítica exigem. O banco de dados oferece o conhecimento necessário para maximizar seus investimentos em Microsoft SQL Server e obter as habilidades necessárias para executar perfeitamente um ambiente de missão crítica. Conheça ideias para investimentos futuros em SQL Server, a tecnologia cujas apostas feitas hoje vão continuar a pagar no futuro.
COS - Cloud Computing e Online Services
Computação em Nuvem é o próximo passo lógico na evolução da computação. Ele representa uma mudança na indústria de software que não é exclusivamente o PC, nem centrada no navegador e mistura arquitetura cliente-servidor tradicional com a entrega de software baseado em nuvem. A trilha sobre Computação em Nuvem & Serviços Online fornece informações sobre tecnologia Microsoft e a inovação em software + serviços. Saiba mais sobre os serviços de software corporativo para serviços online da Microsoft, como o Office 365, Microsoft ® Exchange Online, Microsoft ® SharePoint ® Online, Microsoft ® Office Communications Online e Microsoft Dynamics ® CRM online. Essa trilha também fornece informações sobre o Azure Services Platform ™, onde desenvolvedores podem tirar proveito de uma plataforma de serviços de internet em nuvem hospedado em data centers da Microsoft para criar novos aplicativos em nuvem ou estender os aplicativos já existentes.

O evento foi sensacional, pudemos conversar com vários especialistas nas ferramentas Microsoft e tirar dúvidas sobre ambientes de desenvolvimento. Alguns destaques apresentados para desenvolvedores foram o Visual Studio (vNext), Silverlight 5, Windows Phone 7.5 Mango, ASP.NET MVC 4, HTML 5, Team Foundation Server entre outros.

Agora é colocar as idéias em ordem, atualizar os contatos, compartilhar o conhecimento e aproveitar todas as novidades para crescimento profissional. Agradecimento em especial a Useall Software que incentivou e apoiou nossa participação!

[]

domingo, 10 de julho de 2011

Teste de software vai muito além do passou/falhou


Qualidade é um processo contínuo e de responsabilidade de todo o time de desenvolvimento de software. Para atestar qualidade, além de um bom processo de desenvolvimento, é necessário testar. Testar não é a última coisa a fazer num projeto de software. Deveria ser a primeira e, continuar por todo o projeto. Os testes devem atestar a qualidade dos sistemas construídos ou modificados pelo desenvolvimento.

Mas não basta ter responsabilidade com a qualidade, é necessário colaboração, confiança e transparência entre testadores e desenvolvedores. Todo o time deve entender e compartilhar do que está sendo construído. Desta forma poderão criar o produto certo, ou pelo menos de maneira certa.

O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

Independentemente da metodologia de trabalho empregada no desenvolvimento de um software, para que se obtenha um produto final com um certo nível de qualidade, é imprescindível a melhoria dos processos de engenharia de software. Um desenvolvimento de software organizado tem como premissa uma metodologia de trabalho. Esta deve ter como base conceitos que visem a construção de um produto de software de forma eficaz. (Wikipédia)

Para atestar qualidade, você precisa ter especificações, algo que você pode avaliar. Você especifica o sistema para depois testar? Ou testa para gerar especificações de seu sistema? Uma sugestão é focar em “test driven” e não em “defect driven”. Se você esperar o sistema ficar pronto para testar, certamente encontrará erros.

É muito comum falar que teste de software demora e é perda de tempo, pois os programadores deveriam entregar o produto “pronto” e sem erros. Mas você pode utilizar ferramentas para ajudar na automação de testes. Num ambiente ágil você deve aplicar os princípios ágeis para automatizar testes. O teste deve fazer parte do “done” “pronto”.  Mas lembre-se, ferramentas de automação não são a solução para todos os seus problemas de qualidade de software. Teste automatizado não é moleza. Não é só gravar um script e depois executar. Testes simples e repetitivos podem ser automatizados. Invista tempo em testes manuais mais complexos. A maioria dos defeitos ainda é encontrada por testes manuais de sistema e aceitação.

É importante eliminar desperdícios nos testes.
. Testar rápido: usar processos ágeis;
. Testar melhor: maior cobertura, múltiplas visões do teste, foco na qualidade;
. Testar mais barato: redução de retrabalho, menor ciclo de testes, não duplicar testes;
. Não adianta “tentar testar o máximo” tem que ter metodologia e estratégia de teste;
. Testes de sistema e de aceite podem aumentar a produtividade dos desenvolvedores e a qualidade dos seus produtos se software.

Software muda constantemente e, quando uma nova funcionalidade é adicionada a um sistema que já estava testado e funcionava bem, sempre existe a possibilidade desta funcionalidade afetar outras. Uma boa maneira de assegurar que tanto esta funcionalidade, como todo o resto do sistema esteja funcionando corretamente, é fazer a integração contínua, ou seja, faça o “checkin” de seus códigos e “build” de seus sistemas constantemente.

Testar software é uma arte, que a maioria dos analistas e desenvolvedores não fazem com grande apreço. Desenvolvedor gosta de testar para “fazer funcionar” e não para garantir qualidade. Neste cenário, pensar em criar uma equipe de teste para formar um time com esses desenvolvedores pode ser considerado um grande avanço.

É importante definir algumas diretrizes e responsabilidades para a área de testes, como por exemplos:
. Vamos testar todos os softwares?
. Quanto tempo vamos investir nos testes? Este tempo é investimento mesmo ou é visto como custo para a empresa?
. Qual o nível de abrangência? Vamos testar tudo? O que é essencial?
. Qual o foco do teste? Vamos focar mais em teste de regras de negócio ou testes técnicos do sistema?
. Quais as características de qualidade serão avaliadas e, qual a peso de cada uma dentro desta avaliação?
. Como o time será avaliado?

As respostas para essas perguntas poderão ser assunto para outro post.

[]

sábado, 2 de julho de 2011

Usabilidade de software

Usabilidade é um dos muitos atributos que podem ser percebidos e avaliados pelos usuários de um sistema computacional. É um indicador que mostra se o sistema é intuitivo, fácil de utilizar e fácil de aprender a utilizar o software.  Essa característica influencia diretamente no interesse e aceitação do usuário que, pode simplesmente não gostar de software e, muitas vezes não sabe nem explicar o porquê.
O desenvolvimento de software deve colocar a usabilidade como um dos atributos chaves, durante a concepção e criação dos sistemas. A usabilidade deve ser pensada durante todo o processo de desenvolvimento, visando atender todas as características de qualidade.

Conforme o modelo de qualidade da Norma ISO 9126 (http://pt.wikipedia.org/wiki/ISO_9126), a característica da usabilidade é a capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário e pode ser avaliada e subdivida nas seguintes sub-características:
Inteligibilidade que representa a facilidade com que o usuário pode compreender as suas funcionalidades e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicas;
Apreensibilidade identifica a facilidade de aprendizado do sistema para os seus potenciais usuários;
Operacionalidade é como o produto facilita a sua operação por parte do usuário, incluindo a maneira como ele tolera erros de operação;
Atratividade envolve características que possam atrair um potencial usuário para o sistema, o que pode incluir desde a adequação das informações prestadas para o usuário até os requintes visuais utilizados na sua interface gráfica.

A utilização de sistemas de software pode feita por qualquer pessoa, independente do nível de instrução. Os usuários preferem um sistema de seja fácil de utilizar, onde ele não perca tempo, por exemplo, procurando opções ou menus, que na visão do usuário deveriam estar ali, ao alcance do mouse ou tecla de atalho. O usuário não pode perder tempo durante a execução de suas atividades no software.
A característica da usabilidade deve fazer cada vez mais parte do vocabulário e do ambiente de desenvolvimento, principalmente agora com a explosão da utilização de dispositivos móveis, que, com sua limitação de tamanho, requisitam ainda mais usabilidade nos sistemas utilizados pelos usuários.
Durante a implantação de um sistema com alto grau de usabilidade, podemos notar boa avaliação dos usuários que realizam suas tarefas com mais eficiência, diminuição da necessidade de apoio aos usuários e facilidade na utilização e aprendizados dos recursos do novo sistema.

Avaliar a usabilidade de um sistema pode não ser tão simples quanto parece. Devemos avaliar todas as características e utilizar métricas e critérios de avaliação. Exemplos de informações que podemos coletar para ajudar na avaliação:
. Número de vezes que o usuário expressa satisfação ou frustação.
. Tempo que o usuário demora a realizar uma tarefa.
. Percentual de tarefas concluídas.
. Percentual de sucessos ou falhas na execução.
. Tempo perdido com erros ou tentativa de execução com erros.
. Percentual de erros encontrados.
. Número de opções utilizadas para executar uma tarefa.
. Número de opções disponíveis e não utilizadas.

Podemos notar que todos os critérios de avaliação da usabilidade da interface de um software compreendem vários fatores, principalmente facilidade de uso e satisfação do usuário na utilização do sistema para realizar suas tarefas.
Para os desenvolvedores de sistemas fica o desafio de perceber essas necessidades dos usuários, aplicarem os conceitos de usabilidade e qualidade de software e disponibilizar software cada vez melhores e mais usuais.

[]