Archive for January, 2012

From requirement to live document ? can we remove waste ?

Friday, January 6th, 2012

I had some discussion in previous blog Specification by Example – The way to enhance testing & Requirement for this.

Let’s continue.

Background

Now let’s take a look at in normal product development, what’s work flow for the requirement towards customer document and system document.

image

Requirement is put into focalpoint (or others) and bring to R&D, scrum is mostly used, product backlog and Sprint backlog will be generated in excel or agile tools (including redmine, teamforge, jira, whiteboard), it covers from high level requirement to user story level.

Testers start to analysis the requirement and generate test specification level document in word, it will be reviewed by senior group and put stamp – go!. test case description is more detail on use case testing level, mostly they will be converted into real test case script for automation inside CI.

When the project goes to end, test report is requested to be finalized and stored somewhere.

CPI technical writer will collect all the information and write in tagtool for CPI (product customer document)

System managers will collect information to update system document like System Architecture Description.

Observation

Every document exists for some reason, while from agile/lean point of view.

Do you see any waste here ? waste on the documentation and waste on time to write the document ?

Do you still understand the purpose of those documentation ?

And please don’t think from your roles (testers, managers, technical writters), stand from of your product.

From my point of view, the designer area (coding) is much improved compare to before, most of APIs are genrated into documentation automatically, quality is promised via tools like CI, sonar.

Specification by example

I don’t want to repeat the famous free delivery for bookstore example from “Specification by example” on how it could work with less waste, please read it sample chapter 2 from manning directly.

image

Possible solution for us

I don’t state it can 100% work for us, just give idea how it can work

We can combine all the test documents to cucumber (one nice tool) feature files like below

image

below the Feature title, we can add detail background for the requirement, it can surve as test spec.

All the scenarios are exactly the same as test case description on detail enough for testing.

This specification (test case) could be directly executed by cucumber driver.

When the test case is executed, it could be automatically generated into html file, it could be test report

image

And if we had some scripts to convert .feature to latex/docbook, it can be automatically generated high-quality documents like pdf, since we can predefine some structure, which can be mapped to end result.

See good example from Pro Git book.

image image image 

From left to right: markdown plaintext, simple html, ebook pdf format. (it is coverted by pandoc to latex and texlive to pdf)

Furthermore, .epub (iPad), .mobi (Kindle) are supported as well, and everything is automatically.

And this could happen for us as well.

Summary & Go ahead

image Probably you want to challenge again that it doesn’t work for you because blah, blah, then I recommend to buy the book “Specification by example” from Gojko Adzic

I will continue to look into this area and I will try my best to remove useless project document using “Specification by example” and Cucumber.

Share folders with Virtual machine using Virtualbox

Wednesday, January 4th, 2012

Since we use Windows Vista as default, we are used to load virtual machines to try linux stuff, and it will be nice if we can share folders between host (windows) and guest (linux) machines.

The document “shared folders” had some traps, and I can’t make it work, below are list some important steps to get it work

Envrionment

Ubuntu 11.04 (Natty) as guest OS and Virtualbox as virtual machine management tools

Install Guest Additions

Virtualbox Guest Additions should be installed for shared folders, it is a .iso files to be mounted, when it is mounted in guest OS (Ubuntu), it can be executed

image

Install linux kernel

I met the following error when I try to install the guest additional

[guest] # cat /var/log/vboxadd-install.log
Makefile:23: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again..  Stop.

After googled, I found the good article http://blog.oracle48.nl/adding-shared-folders-to-virtual-box-guest-using-the-command-line/, later I noticed it existed inside chapter 4 as well.

Therefore I need to install dkms package and related headers (it depends on which kernel you use)

apt-get install dkms
apt-get install linux-headers-2.6.38-11-generic
Shared folder from host to guest

it can be easily configured in virtual machines’ setting, if you set it automatically, it will exist when reboot

image

If it goes well, you will see it /media/sf_sdcamp, which works if you run in root id, and as documented, you can also mount it for normal user.

mount –t vboxsf sdcamp /mnt/sdcamp

/mnt/sdcamp should be created in advance

Anyway, now it works very well, I edited in Windows Environment, and run some specical commands under linux environment