This Slideshow contains principles and practices to improve quality in software engineering process. First we have to make sure that we implement the right stuff and then we have to make sure that we do it right. Agile Quality Assurance is a practice which in the end leads to performance improvements in the software devleopment process.
Uneak White's Personal Brand Exploration Presentation
Twice as much in half time - What's about the Quality?
1. agility
accelerates
...
Twice
as
much
in
half
4me
What‘s
about
the
Quality?
Brown
Bag
SMA
und
Partner
AG
6.
Februar
2012
2. agility
accelerates
...
Agile
Coach
&
Consultant
So8ware
Engineer
Cer4fied
Scrum
Professional
Cer4fied
Enterprise
Architect
Management
3.0
Trainer
Java
Enterprise
Edi4on
(JEE)
Member
of
the
Lean,
Agile
&
Performance
Engineer
Scrum
Group,
SwissICT
MISCHA
RAMSEYER
mischa@pragma4c-‐solu4ons.ch
pragma4c
solu4ons
gmbh
3. What
is
Quality?
?
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
3
4. ISO
9000
Definiton
of
Quality
“Quality is the degree to which a set of
inherent characteristics fulfills
requirements.“
The standard defines requirement as need
or expectation.
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
4
5. Philip
B.
Crosby‘s
Defini4on
of
Quality
"Conformance to requirements“
The requirements may not fully represent
customer expectations;
Crosby treats this as a separate problem.
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
5
6. Joseph
Juran‘s
Defini4on
of
Quality
"Fitness for use“
Fitness is defined by the customer
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
6
7. Peter
Drucker
defines
Quality
as
"Quality in a product or service is not
what the supplier puts in. It is what the
customer gets out and is willing to pay
for.“
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
7
8. American
Society
for
Quality
say‘s
A subjective term for which each person
has his or her own definition. In technical
usage, quality can have two meanings:
a. The characteristics of a product or
service that bear on its ability to satisfy
stated or implied needs;
b. A product or service free of
deficiencies.“
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
8
9. W.
Edwards
Deming
says
Concentrating on "the efficient production
of the quality that the market expects,“
and he linked quality and management:
"Costs go down and productivity goes up
as improvement of quality is accomplished
by better management of design,
engineering, testing and
by improvement of processes.“
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
9
10. Defini4ons
of
Quality
Build
what
the
customer
is
willing
to
pay
for
Fitness
for
use
No
Bugs
Improve
thru
Fulfill
the
Management,
requirements
Quality
Tes4ng
&
Procesesses
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
10
11. What
is
Quality
about?
Do
the
Right
Thing!
Do
the
Thing
Right!
Idea
Idea
Product
Idea
Development
Idea
Effec4veness
Efficiency
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
11
12. What
is
more
important?
?
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
12
13. agility
accelerates
...
DO
THE
RIGHT
THING
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
13
14. The
„Cost
of
Complexity“
is
huge!
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
14
15. It‘s
all
about
segng
priori4es!
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
15
16. Do
the
Right
Thing!
• Deliver
Business
Value
• in
the
right
order
• as
early
as
possible
• con4nuously
• Collect
Customer
Feedback
as
early
as
possible
• Embrace
Change
• Release
when
it‘s
good
enough
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
16
17. Good
enough
is
enough
to
Release!
Business
Value Feature 80%
Business
Value
Faster Time to Market
and Lower Cost 20%
means earlier ROI Time
Good
Enough
Release Release Time
1.0 1.x
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
17
18. Built-‐in
Change
Management
Business New Feature
Value identified during
development
exchange
Good
Enough
Release Release Time
1.0 1.x
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
18
19. 3
4mes
as
Effec4ve
Do
the
Right
Thing!
Do
the
Thing
Right!
Idea
Idea
Product
Idea
Development
Idea
Effec4veness
3x Efficiency
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
19
20. agility
accelerates
...
DO
THE
THING
RIGHT
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
20
21. definite economic impact of software testing. One economic impact is from the
fects. This is a very real and very tangible cost.
conomic impact is from the way we perform testing. It is possible to have very
Do
the
Thing
Right!
vations and testing goals while testing in a very inefficient way.
tion, we will examine the economic impact of defects and ways to economize
The Economics of Testing
Where
Defects
Originate
What
it
costs
to
fix
them
The Relative Cost of Fixing
Where Defects Originate
Where Defects Originate Defects
1:10:100
Code
Code O ther
Design O ther
Design 7%
7% 10%
10% 100
27%
27% 100
90
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
10
10
Req's
Req's 0
James
Mar4n
Study
56%
0
Req's Design Code Test Prod
56% Req's Design Code Test Prod
The Relative Cost of Fixing Defects
Defects Originate
08.02.12
About
Quality,
One of the most well known facts about software defects is that the longer 21
go
pragma4c
solu4ons
gmbh
they
undetected, the more expensive they are to fix. Although research differs on the exact
tand the dynamics and costs of defects, we need to know some things about rule is 1:10:100.
ratios, the general
of the most commonly understood facts about defects is that most defects
22. How
would
you
handle
the
problem?
?
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
22
23. From
Specifica4on
to
Discussion
As an User Story Template
employee
I want
to
log
my
working
/me
so that
I
always
keep
track
of
my
daily
working
/me
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
23
24. Speak
the
same
language
• An
„Ubiquitous
Language“
is
needed
to
bridge
the
communica4on
gap
• Use
Domain
Modeling
to
describe
the
Business
Domain
Timetracking
Domain
Model
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
24
25. Introducing
Acceptance
Criterias
Priority
As
a
[role]
I
can
[goal]
so
that
[reason]
EsImaIon
10
Employee
log
my
working
4me
I
always
keep
track
of
2
my
daily
working
4me
Narrow
down
the
scope
of
the
Story
using
Acceptance
Criterias
• At
least
a
„How-‐to-‐demo-‐Workflow“
• Add
them
to
the
Product
Backlog
Example
1. Fill
in
star4ng-‐,
lunch
&
end
4me
in
natural
hours
&
minutes
2. Decimal
working
hours
will
be
displayed
&
saved
3. Displayed
working
hours
must
be
present
in
the
DB
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
25
26. Introducing
Specifica4on
by
Example
Priority
As
a
[role]
I
can
[goal]
so
that
[reason]
EsImaIon
10
Employee
log
my
working
4me
I
always
keep
track
of
2
my
daily
working
4me
Business
Rules
Morn
Lunch
Lunch
Eve
Time
• Given
work
4me
is
>
9h
In
out
In
Out
Then
break
=
1
hour
9:00
12:00
13:00
17:05
7.08
8:00
12:00
13:00
17:00
8.00
• Given
work
4me
is
>
7h
Then
break
=
30
min
8:00
-‐
-‐
17:01
8.02
7:30
12:00
13:00
17:00
8.50
• Given
work
4me
is
>
5.5h
...
...
...
...
...
Then
break
=
15
min
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
26
27. Build
Executable
Documenta4on
Scenario:
Log
4me
In terms of the
Given
my
4me
of
<arrival>
ubiquituous language
And
the
4me
I
go
for
<lunch-‐out>
And
the
4me
I
return
from
<lunch-‐in>
And
the
4me
I
leave
in
the
<evening>
When I
entered
my
4me
Then the
<total>
decimal
4me
is
calculated
Examples:
| arrival | lunch-out | lunch-in | evening | total!
| 09:00 | 12:00 | 13:00 | 17:05 | 7.08!
| 08:00 | 12:00 | 13:00 | 18:00 | 9.00!
| 08:00 | - | - | 17:01 | 8.02!
| 07:30 | 12:00 | 13:00 | 17:00 | 8.50!
!
!
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
27
28. Specifiying
Behaviour
Given
Put
the
system
in
a
known
state
When
Describe
the
key
user
ac4on
Then
Observes
the
output
And / But
Shortcut
for
mul4ple
Given,
When,
Then‘s
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
28
29. Soda
Machine
Behaviour
Feature:
Thirst
Quentsching
As
a
thirsty
guy
I
want
to
pull
a
sop
drink
from
the
machine
to
quench
my
thirst
Scenario:
Successful
Buy
Given
a
filled
compartment
When
I
select
the
desired
drink
And
I
provide
the
right
amount
of
money
Then
the
drink
falls
down
in
the
tray
Scenario:
Empty
Compartment
Given
an
empty
compartment
When
I
select
the
drink
Then
the
message
„Empty!“
is
displayed
Scenario:
Few
Money
Given
a
selected
drink
And
I
provided
too
few
money
And
the
outstanding
amount
is
displayed
When
I
press
cancel
Then
the
already
inserted
money
will
be
released
into
the
coin
compartement
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
29
30. Automate
the
Behaviour
Scenario:
Successful
Buy
Given
a
filled
compartment
@Given(“^a
filled
compartment$“)
public
void
given()
{
machine
=
new
Machine().withCompartment(1,
“Can“)
.withDrink(“Coke“).withPrice(2);
}
@When(“^I
select
the
desired
drink$“)
When
I
select
the
desired
drink
public
void
when()
{
And
I
provide
the
right
amount
of
money
m.selectCompartment(1);
}
@And(“^I
provide
the
right
amount
of
money$“)
public
void
when()
{
m.putMoney(2);
}
@Then(“^the
drink
falls
down
in
the
tray$“)
Then
the
drink
falls
down
in
the
tray
public
void
then()
{
assertFalse(m.getOuputTray().isEmpty());
assertEquals(“Coke“,
m.getOutputTray()
.getDrink().getName();
}
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
30
31. Inner-‐
&
Outer
Quality
Inner Quality is inside
the system
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
31
32. TDD
improves
inner
quality
Write a failing test Make it compile
Make it work
in production code
RED GREEN
REFACTOR
No production Make it nice
code without a eliminate duplication
test increase expressiveness
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
32
33. TDD
is
not
an
op4on
Built
in
Bever
Design
Regression
RED GREEN
REFACTOR
Faster
Fewer
Bugs
Development
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
33
34. What
is
Pair
Programming?
Navigator Driver
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
34
35. Pair
Programming
Faster,
but
Bever
Code
more
Effort
&
Design
Knowledge
Half
of
Bugs
spread
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
35
36. Double
pack!
RED GREEN
REFACTOR
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
36
37. Address
Outer
and
Inner
Quality
in
your
Development
Process
Failing
Acceptance Code
Test
Implement
Test
Acceptance Refactor
Identify test(s)
Acceptance
Criterias
Select a User Code
Story Behaviour Test Driven
Driven Development Development Test
Refactor
Customer
Acceptance Code
Refactor
Acceptance
Passing Test
Test Refactor
Acceptance
Test
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
37
38. Check
against
Requirements
FuncIonal
NON-‐FuncIonal
Check
if
the
System
works
as
Check
if
the
System
operates
required
as
intended
• Unit
Test
• Technical
Tes4ng
• Integra4on
Test
• Build
• Deployment
• Regression
Test
• Load,
Stress
&
Performance
• User
Acceptance
Test
• Security
&
Penetra4on
• Usability
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
38
39. Checking
vs.
Tes4ng
Checking
TesIng
• Automated
• Manual
• Expected
Result
• Exploratory
• Developer-‐Mindset
• User-‐Mindset
• Developer
Know-‐how
• Business
Know-‐how
• Basis
for
Tes4ng
• On
Top
of
Checks
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
39
40. Test
Automa4on
is
not
an
op4on!
UI
Services
Unit
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
40
41. Checks
&
Tests
Unit
Tests
Integra4on
Test
Single
Unit
Mock
Objects
Regression
Test
Check
Test
Coded
Environment
System
Tests
Replay
Unit-‐
/
TDD
Mul4ple
Units
Integra4on-‐Tests
NON-‐func4onal
Refactoring
Prepared
„Real“
Manual
Don‘t
break
Data
something
else
Exploratory
Usability
Coded
&
User
Mindset
Configured
Performance
Acceptance
Security
Expected
Output
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
41
42. Checking
Strategy
Source
Control
Management
(SCM)
Mul4ple
Check-‐in‘s
a
day
Single
Branch
Automa4c
Build
&
Deployment
Product
Build
Plazorm
Build
Deployment
Migra4on
Con4nuous
Build
&
Deployment
Nightly
Build
Con4nuous
Build
Addi4onal
Automated
Checks
Unit
Tests
Integra4on
Test
Regression
Test
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
42
43. Banching
Paverns
Release
Branch
tag
Release
1.0.0
tag
Release
1.0.0
/rel1.0
branch
merge
merge
/trunk
2.0
Dev
/trunk
1.0
Dev
2.0
Dev
branch
merge
reintegrate
tag
/feat1-‐1
Release
1.0.0
Feature
Branch
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
43
44. Environments
Development
DEV
BUILD
INT
• Development
• SCM
Server
• Con4nuous
Deployment
Worksta4on
• Build
Server
• Integra4on
&
Migra4on
• CI-‐Server
PROD
PERF
QA
Opera4ons
• Produc4on
Environment
• Load
&
Performance
• Controlled
Distribu4on
• Security
&
Penetra4on
• Produc4on-‐like
Setup
• Review
&
Acceptance
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
44
45. Con4nuous
Integra4on
is
NOT
an
op4on
Deploy
Test
Publish
reports
Build
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
45
47. 3
4mes
as
Efficient
Do
the
Right
Thing!
Do
the
Thing
Right!
Idea
Idea
Product
Idea
Development
Idea
Effec4veness
3x Efficiency
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
47
49. Twice
as
much
in
half-‐4me
–
even
more
–
is
possible!
Do
the
Right
Thing!
Do
the
Thing
Right!
Idea
Idea
Product
Idea
Development
Idea
3 x 3 = 9
Effec4veness
Efficiency
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
49
50. Quality
Improvement
thru
Agile
Prac4ces
will
boost
your
performance!
Line
Management
3.0
Management
Project
Scrum
Management
eXtreme
Programming
Engineering
Prac4ces
08.02.12
About
Quality,
pragma4c
solu4ons
gmbh
50