Tuesday 30 September 2014

Latest Chapter of Book Published - Being Creative

I have published the latest chapter of my book The Psychology of Software Testing entitled 'Being Creative'.  This has been one of the most enjoyable chapters I have worked on and one that I am very proud of.  The following is a short extract from this chapter.

_________________

What is Creativity

Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn’t really do it, the just saw something. It seemed obvious to them after a while."
 Steve Jobs - Wired Magazine

Many have a misconception of what being creative means.  Take a moment to note down some words that you feel describe creativity.

Did any of your words match the ones below?




Creativity can be all of these are more. It does not help that there are a variety of definitions of creativity for example:

"Creative thinking is the generation of new ideas.”

or

"Creativity is the ability to combine ideas, things, techniques or approaches in a new way." 

Doppelt gives a good reason why it is so difficult to define creativity:

"Creativity is one of the words in the English Language which means many things to many people.  At various times it may mean different things to the same person."Doppelt J E 2012. What is creativity?

There is no correct definition for being creative and that is wonderful in itself, since you have no barriers to being creative.

When we talk about creating ideas it does not necessarily mean creating or coming up with something new.  The idea  or concept you came up with is new it may not be game changing or revolutionary.  The majority of ideas come from existing ideas or a combination of different ideas to create a new idea.

Software testing involves large amounts of creative thinking and not just during the test planning phase.  When   testing software we use creative processes to discover, uncover and learn.  When testing we should utilize these natural creative processes to guide our direction and future opportunities to test.  The majority of testers do this without even being aware that this is happening.  If you are following a test script or a testing charter how often do you go off the beaten track because you thought of a new creative approach?

To put this in another way, how often do you find ways to test the software that is both novel and unique?  Capturing this creative process is useful since you then have a record of your thinking at that time, which can help to produce even more ideas.  The creative process is iterative and by creating new ideas you end up utilizing these ideas to create even more ideas.

______________________


This chapter also includes some extras
  • Creativity Cue Cards
  • Software Testing SCAMPER poster
  • Software Quality Characteristics Poster
  • A JavaScript ideas generator
I will be presenting some of this material at the London Tester Gathering Workshops:

Creative and Critical Thinking and Testing Workshop
Thursday 16th and Friday 17th October 2014

The Skills Matter eXchange
116-120 Goswell Road,
 London, 
EC1V 7DP, 
GB

Friday 19 September 2014

Agile testing activity checklist

As the barriers between development and test blur when working in scrum teams and being agile, the testing activities can sometimes be lost.  There may be occasions where there is no testing expertise in a scrum team and the scrum team members struggle to know what to focus on regarding testing activities in their sprint.

Since this was becoming an issue with some of the teams I was involved with, myself and others came up with a testing activities checklist based around Lisa Crispin and Janet Gregory agile testing quadrants.

The rest of this article shows this checklist.  Please feel free to adapt and change this checklist to meet your testing needs in agile scrum teams.  The only caveat I make on this is that if you find it useful please let me know.

Testing Activity Checklist
This is an example template for Scrum teams to use as a checklist for testing activities carried out during a sprint


Sprint Number:
Does the scrum team have any testing expertise
Yes / No 
Has the scrum team done any testing activities in this sprint?
Yes / No 


Unit/Component (Q1)

Check
Response
Comments and Justifications
Do Unit Tests exist?
Yes / No

What is the level of unit test coverage? (Sanity, bad input, edge cases, regression etc.)


What is the quality of the unit tests? (per quality key table below)


% Code coverage and have you met your target %? (Which tool used?)
nn%

Has any state coverage been done?
Yes / No

Zero static analysis violations
Yes / No

All check-ins have code reviews?
Yes / No

All check-ins have unit test reviews?
Yes / No

Are unit tests automated in a CI?
Yes / No

How often are unit tests run? (every check in of development code/nightly/other)


Unit testing added to Definition of Done (DoD) 
Yes / No



Functional (Q2)

Check
Response
Comments and Justifications
Functional tests exist?
Yes / No

Have acceptance test criteria has been reviewed?
Yes / No

What is the coverage of functional tests (See below - coverage key)
0-3

Are functional tests automated?
Yes / No

A CI System is being used for automated system tests?


How often are automated functional tests run? (every check in /nightly/other)


Are functional tests run against latest build?
Yes / No

Has manual functional testing been done (exploratory)?
Yes / No

Functional tests added to DoD 
Yes / No




Coverage (Key)
0
We have no good information about this area
1
Sanity Check: Major Functions & Simple Data
1+
More than sanity, but many functions not tested
2
Common cases: All functions  touched common/critical tests executed
2+
Some data. State or error coverage beyond level 2
3
Corner Cases: Strong data, state, error or stress testing

End to End (Q3)

Check
Response
Comments and Justifications
Has exploratory testing been done? (if not give justification)
Yes / No

How much time has been spent on exploratory testing (number of sessions)
nn

How has exploratory testing sessions been captured (Wiki/other tool)

What is the quality of the acceptance criteria (see below for definition of testing quality)


Acceptance criteria tested
Yes / No

Demo criteria tested
Yes / No

E2E customer tests added to DoD 
Yes / No



Quality Key
**
We know of no problems in this area that threaten to stop go live or interrupt testing, nor do we have any definite suspicions about any
**
We know of problems that are possible showstoppers, or we suspect that there are important problems not yet discovered
**
We know of problems in this area that definitely stop go live or interrupt testing

Non Functional (Q4)

Check
Response
Comments and Justifications
Nonfunctional tests exist
Yes / No

Which types of Non Function Tests exist?
Performance, Reliability, Usability, Stress, Spike, Scalability, Endurance, Volume, and Security (e.g., CSDL)


Yes ? No

Have nonfunctional tests been added to DoD
Yes / No



Testing Activities Definition of Done


Check
Response
Comments and Justifications
Has all DOD criteria been met for each quadrant?
Yes / No

Zero open defects in the sprint
Yes / No

100% of all possible automated  checks running (Unit, Functional / E2E)
Yes / No

100% automation pass rate.
Yes / No

Exploratory testing target met (% possible time spent exploring)
Yes / No

CI Builds are in place
Yes / No

Sprint demos and feedback given.
Yes / No



Testing Quadrant Dashboard
This is a simple checklist dashboard.  It is either green or red, have all the activities listed above for each quadrant been completed.  Yes=Green, No=Red.

Q1
Q2
Q3
Q4
 Green = Met DOD for that Quadrant /  Red = Not met DOD for that Quadrant

I have also uploaded a word document version here so you can adapt and change it to suit your needs.


Postscript:

I will be running a Creative and Critical Thinking workshop in London - Thursday 16th - Friday 17th October 2014