Wednesday, January 22, 2014

eVidence - A Solution to Software Testing & Documenting Nightmare using Agile


Here are three problems: keeping requirements up to date, documenting & testing ! These are things we all love to hate. If you're at some point involved in a software development life-cycle, you know what we're talking about. You wish you could deliver a functionality without trading off delay for quality, documentation and testing. But most of the time it's not. Your team goes in quick story writing if you're agile and naturally focus on delivering new features rather than being cautious about testing and documenting. Miscommunication is also a problem as long as requirements are translated into deliverables all along the chain from Product owners to Developers and Testers. Consequences and downsides aren't visible at first, but as you add new features to your product you start experiencing that:
  • Documentation is not easy to browse through.
  • Test maintenance becomes a real issue.
  • Product owners, Business analysts, developers and testers don't speak the same which increases requirements communication and understanding complexity.
Here above, a well known and self-explanatory illustration about the requirement's communication problem. 

I've felt this pain, many times over. So I've decided to build eVidence to cope with all this heavy lifting. I've actually decided to go a step further and make it easy enough for anyone to use, not just developers. If documentation, communication and quality is so interesting to me, why wouldn't it be interesting to anyone else ? the first step toward solving this problem is not just to make things easy, but to help non-developers to easily cooperate with developers while centralizing things to provide valuable third party services. 

So what does the solution looks like ? How can it help you make software management better and focus on delivering more value to project stakeholders.

As the main source of data that mediates between the teams is the app requirements, I've decided to see how Behaviour Driven Development (BDD) and Behaviour Driven Testing (BDT) could help. BDD & BDT solve the problem of domain experts communication by enhancing requirements with acceptance tests called scenarii. Each scenario is an example of how the requirement should behave in a real world situation, seeing a requirement in use helps communication. The scenarii can either be imperative and declarative which provides flexibility while keeping simplicity. Based on Gherkin (Given,When,Then), it enforces the use of a common natural language that can be translated into formal models to generate manual tests or even skeletons for further automation and ad-hoc needs :) 

To support it, eVidence will offer following features and benefits :


  1. Open Rest API that provides services to the different domain experts:
    • Business Analysts: push scenarii to a third party project management system such as Redmine, Trello... 
    • Developers: Get the list of scenarii to automate in order to validate let you use the proper automation mechanism to fit your specific needs such as Cucumber, JBehave, Capybara, Selenium...
    • Testers: the API provides a formal representation of the user flow, which can be used to power Model Based Testing capabilities by using tools such as Graphwalker...

  2. Simple user scenario management interface:
    • Store and share app features and scenarios.
    • Enforce good requirements communication thanks to Gherkin natural language.

  3. Tagging: Easy requirements lookup and browsing.
  4.  
  5. Test Cases Generation capabilities: Keep your manual and automated tests up to date by generating test cases based on listed scenarii.
Here below is a sum-up illustration of eVidence outputs and interaction with existing products: 


eVidence is the first iteration of a solution to the testing & documentation problem. It's still in beta and I would like to invite you to check it out. I would love your feedback - for bugs, feature suggestions or anything else. Your input will help make eVidence better, so you never have to worry about testing, documenting and quality again :)

In a further post, I'll provide some screenshots of the app in order to give a sneak preview.
Hope to see you eVi-Dencing on the web soon ! 

eVidence Platform - Let's get agile, not fragile :-)

2 comments:

  1. This is an article to introduce a solution to agile testing and software documenting. It presents the key features that eVidence will provide in its beta version with a link to register for the preview. Hope you'll enjoy it :)

    ReplyDelete
    Replies
    1. Congratulations! Good Work.
      Bonne continuation.

      Delete