Post on 27-Feb-2018
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
1/57
Testing SAP:
Modern TestingMethodologiesEthan Jewett
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
2/57
But frst!
Whats the problem
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
3/57
Enterprise" pro#e$t trade%o&s
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
4/57
So'tware de(elopmenttrade%o&s
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
5/57
)lient re*uests
Build Faster
And produ$e more ValueCheaper
with less Risk
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
6/57
+emember,
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
7/57
Are there hiddenassumptions
-es.
Methodolog/
People and )ulture
Te$hnolog/
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
8/57
An/ other assumptions
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
9/57
The topi$
0(er the ne1t hour and a hal'2 well tal3about how testing methodologies2te$hni*ues2 and te$hnologies $an help us
Change theseunderlying assumptions.
Enable modern project methodologies.
Control the basic project trade-of.
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
10/57
The 'o$us
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
11/57
The goal
More value
Fasterith less risk
4and more 'un5
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
12/57
6or e1ample
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
13/57
7%Model methodolog/
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
14/57
More parallel2 less repetition
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
15/57
6aster
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
16/57
More iterati(e
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
17/57
ow do we get there
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
18/57
Modern methodolog/
Modern *ualit/ assuran$e and testing !eading practice in custom
development" open source" and agile
projectsTest dri(en de(elopment 4T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
19/57
>eading Pra$ti$e
)onte1t
?uestions and problems
Approa$hes Tools
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
20/57
>eading Pra$ti$e
Conte#t
?uestions and problems
Approa$hes Tools
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
21/57
)onte1t
The $onte1t o' modern so'twarede(elopment is abo(e all open"agile and decentrali$ed.
0pen sour$e pro#e$ts are usuall/ the'urthest along this path2 and as su$h
these pro#e$ts use 4or are 'or$ed toin(ent5 tools that ft their pro$esses.
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
22/57
0penness
+e*uirements2 spe$if$ations2 issuesreports2 test $ases2 sour$e $ode2 andpro#e$t tools and metri$s are readil/
open and a(ailable to all parti$ipantsin the pro#e$t.
4@ot ne$essaril/ the same as opensour$e".5
%pen Collaboration &ithin Corporations 'sing (o)t&are Forges%http:88www.riehle.org8publi$ations8C8open%$ollaboration%within%$orporations%using
http://www.riehle.org/publications/2009/open-collaboration-within-corporations-using-software-forgeshttp://www.riehle.org/publications/2009/open-collaboration-within-corporations-using-software-forgeshttp://www.riehle.org/publications/2009/open-collaboration-within-corporations-using-software-forges7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
23/57
Agilit/
The (alues o' the Agile Mani'esto: Dndi(iduals and intera$tions o(er
pro$esses and tools
Wor3ing so'tware o(er $omprehensi(edo$umentation
)ustomer $ollaboration o(er $ontra$t
negotiation +esponding to $hange o(er 'ollowing a
plan
http:88agilemani'esto.org8
http://agilemanifesto.org/http://agilemanifesto.org/7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
24/57
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
25/57
>eading Pra$ti$e
)onte1t
*uestions and problems
Approa$hes Tools
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
26/57
Manual orautomati$
testing
ow do we ensurethat the build
$omplies with thetests
ow doestesting
integrate with
issuetra$3ing
?uestions and problems
ow do ween'or$e
dis$iplinedtesting
ow do we tra$3Fs or Fs o'bugs 4in$luding
dupli$ates5
ow do wedetermine the$ause o' test
'ailure
ow do we
ma3e testsrele(ant
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
27/57
>eading Pra$ti$e
)onte1t
?uestions and problems
+pproaches Tools
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
28/57
Approa$hes
Test )o(erage
Test Automation
Test
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
29/57
Test $o(erage
The per$entage o' $ode orde(elopment that is tested.
Dn $ode2 this might be measured b/determining i' e(er/ bran$h o' $ode$an result in a 'ailing test $ondition
4Bran$h $o(erage"5
ikipedia -http,en.&ikipedia.org&ikiCodecoverage
http://en.wikipedia.org/wiki/Code_coveragehttp://en.wikipedia.org/wiki/Code_coverage7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
30/57
Test automation
A$$epted as gospel modern de($ommunities +egardless o' how goodthe/ are at
testing2 a$$ept that the/ shouldautomate as mu$h as possible
)an lead to ignoring non%automatable
testing Dn the SAP world we ha(ent e(en
a$$epted that 'ull test $o(erage isdesirable2 mu$h less automation
/est automation pushback -http,railspikes.com0112344testing-is-overratedhttp,michael)eathers.typepad.commichael)eathersblog011215the-6a&ed-theo.html
+utomated testing story on (78 9never completed: -https,&&&.sdn.sap.comirjscn&eblogs;blog
http://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttp://railspikes.com/2008/7/11/testing-is-overratedhttp://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttp://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttps://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/4103https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/4103http://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttp://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttp://railspikes.com/2008/7/11/testing-is-overrated7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
31/57
A note on the 'ollowingslides
Dm using bowling as an e1ample be$auseDm $op/ing 'rom the internet. D dont3now mu$h about bowling2 so the
e1amples are probabl/ wrong. M/assumption is that a game is usuall/ F'rames o' two balls per 'rame. D' the last'rame is a spare or a stri3e2 /ou get at
most two additional 'rames.
0r something li3e that.
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
32/57
Test
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
33/57
T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
34/57
Beha(ior
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
35/57
B
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
36/57
Spe$ as Test" O or writing 'eatures
+e$entl/2 the +ub/ $ommunit/ hasbegun de(eloping testing 'ramewor3sthat are e(en $loser to natural
language. )u$umber
These 'ramewor3s wrap T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
37/57
6eature e1ample
Feature 9visible to the user:
S$enario: 9utter game 9i(en D ha(e bowled balls and D ha(e 3no$3ed o(er pins per ball When D $he$3 the s$ore
Then D should ha(e points
?mplementation 9not visible to user:
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
38/57
6eature e1ample $ont.
@ote that we $an now implementman/ more tests with no more$ode8implementation:S$enario: Per'e$t game
9i(en D ha(e bowled F balls and D ha(e 3no$3ed o(er F pins per ball When D $he$3 the s$ore Then D should ha(e points
S$enario: Bad game
9i(en D ha(e bowled balls and D ha(e 3no$3ed o(er pins per ball When D $he$3 the s$ore Then D should ha(e U points
S$enario: >ots o' spares
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
39/57
Side%b/%side
/77 @77 (pec as /estre*uire Gtest8unitre*uire Gtest8unit8assertionsre*uire Gbowling
$lass T)HBowling ITest::nit::Test)ase
de' setup bowling K Bowling.new end
de' gutterHgame .times L bowling.hit45 assert bowling.s$ore KK endend
re*uire Gspe$8e1pe$tationsre*uire Gbowling
des$ribe Bowling do
it Nshould s$ore 'or guttergameN do
bowling K Bowling.new .times L bowling.hit45 bowling.s$ore.should KK
endend
S$enario: 9utter game
9i(en D ha(e bowled balls and D ha(e 3no$3ed o(er pinsper ball
When D (iew the s$ore
Then D should ha(e points
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
40/57
T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
41/57
E1plorator/ Testing
The pra$ti$e o' tr/ing to brea3 things )areer se$urit/ 'or 3lutes
E1plorator/ testing appears in'ormal2but $an be stru$tured and is a (er/important aspe$t o' so'tware testing. Probabl/ the most negle$ted 'orm o'
testing in open sour$e pro#e$ts
http,&&&.kohl.cablogarchives11142A.htmlhttp,&&&.kohl.caarticlesE#ploratory/estingMusico)
http://www.kohl.ca/blog/archives/000185.htmlhttp://www.kohl.ca/articles/ExploratoryTesting_MusicofInvestigation.pdfhttp://www.kohl.ca/articles/ExploratoryTesting_MusicofInvestigation.pdfhttp://www.kohl.ca/articles/ExploratoryTesting_MusicofInvestigation.pdfhttp://www.kohl.ca/blog/archives/000185.html7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
42/57
)ontinuous Dntegration
The pra$ti$e o' automating not onl//our tests but /our 'ull $ommit%build%test $/$le
F. A $ommit new or $hanged $ode
. Triggers a 'ull s/stem build
. And an e1e$ution o' the entire test
suite
Cruisecontrol.rb %http,ruby)orge.orgprojectscruisecontrolrbhttp,cruisecontrolrb.thought&orks.com
Budson -https,hudson.dev.java.net
http,&&&.so)t&arebloat.com0112444continuous-integration-blueprints-ho&-to-build-an-army-o)-killer-robots-&ith-hudso
http://rubyforge.org/projects/cruisecontrolrbhttp://cruisecontrolrb.thoughtworks.com/https://hudson.dev.java.net/http://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttp://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttp://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttp://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttp://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttps://hudson.dev.java.net/http://cruisecontrolrb.thoughtworks.com/http://rubyforge.org/projects/cruisecontrolrb7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
43/57
>eading Pra$ti$e
)onte1t
?uestions and problems
Approa$hes /ools
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
44/57
Tools
(ource version control 4s(n2 git5
/esting libraries 4rspe$2 $u$umber2#unit2 ABAPunit2 #spe$5
Continuous ?ntegration tools4$ruise$ontrol.rb2 udson5
?ssue tracking4Sour$e'orge2 tra$2>ighthouse2 9oogle )ode5
+gile methodologies4S$rum2 P2et$.5
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
45/57
Modern methodolog/
Modern *ualit/ assuran$e and testing >eading pra$ti$e in $ustom de(elopment2
open sour$e2 and agile pro#e$ts
Test dri(en de(elopment 4T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
46/57
The SAP World
Manual
nit testing ABAP nit
Ja(a
6un$tional testing e)ATT
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
47/57
ABAP nit
Modeled on Ja(a nit
E1$ellent 4i' a bit unwield/5 'ortraditional unit test automation or
$lasses Wor3s well 'or T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
48/57
@on%SAP
We $an use #ust about an/thing (ia+6)s
6or Web
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
49/57
Modern methodolog/
Modern *ualit/ assuran$e and testing >eading pra$ti$e in $ustom de(elopment2
open sour$e2 and agile pro#e$ts
Test dri(en de(elopment 4T
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
50/57
The +oad to the 6uture
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
51/57
Start with this
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
9et more parallel less
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
52/57
9et more parallel2 lessrepetiti(e
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
Spe$ K Test
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
53/57
9et 'aster
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
TestAutomati
on
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
54/57
9et iterati(e
http:88en.wi3ipedia.org8wi3i86ile:7%model.J
)ontinuous
Dntegrati
on
A d d h
http://en.wikipedia.org/wiki/File:V-model.JPGhttp://en.wikipedia.org/wiki/File:V-model.JPG7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
55/57
And end up here4or somewhere similar5
http:88en.wi3ipedia.org8wi3i86ile:S$rumHpro
http://en.wikipedia.org/wiki/File:Scrum_process.svghttp://en.wikipedia.org/wiki/File:Scrum_process.svg7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
56/57
Than3s
9eneral re'eren$es 'or
7/25/2019 testingsap-modernmethodology-forpublicdistribution-090427112037-phpapp01.pptx
57/57
9eneral re'eren$es 'orin$lusion
%pen Collaboration &ithin Corporations 'sing (o)t&are Forges % http:88www.riehle.org8publi$ations8C8open%$ollaboration%within%$orporations%using%so'tware%'orges8 Continuous integration tools
http,ruby)orge.orgprojectscruisecontrolrb-http,cruisecontrolrb.thought&orks.com
https,hudson.dev.java.net
http,&&&.so)t&arebloat.com0112444continuous-integration-blueprints-ho&-to-build-an-army-o)-killer-robots-&ith-hudson-and-cucumber
E#ploratory testing http,&&&.kohl.cablogarchives11142A.html
http,&&&.kohl.caarticlesE#ploratory/estingMusico)?nvestigation.pd)
/he ongoing revolution in so)t&are testing http,&&&.kaner.compd)s/he%ngoingRevolution.pd)
+@+D 'nit (potlight on +@+D 'nit Dart 4 - https,&&&.sdn.sap.comirjscn&eblogs;blog.html +utomated testing story on (78 - https,&&&.sdn.sap.comirjscn&eblogs;blog
'nit - http,&&&.junit.org
%pen (ource http,&&&.paulgraham.comopensource.html 9hat business can learn )rom open source:
atir http,&tr.ruby)orge.org
(pec as test Cucumber -http,cukes.in)o
Rspec -http,rspec.in)o
http,&&&.pragprog.comtitlesachbdthe-rspec-book
(+D testing http,&&&.beteoblog.combeteo-alm-miniguidesso)t&are-Huality
http,raa.ruby-lang.orgprojectsapr)c
?ntegration /ests in +@+D 7evelopment und /ool (upport -https,&&&.sdn.sap.comirjscn&eblogs;blog4
I(!/ -https,&&&.sdn.sap.comirjscn&eblogs;blog
/est automation as panacea 9not: http,railspikes.com0112344testing-is-overrated
http,michael)eathers.typepad.commichael)eathersblog011215the-6a&ed-theo.html
@77 - http,behaviour-driven.org
@lue Ruby - https,sap.na.pgiconnect.comp45=3>0 -http,&&&.slideshare.netschmerdyblue-ruby-sdn-&ebinar-4051424-https,&&&.sdn.sap.comirjscngoportalprtrootdocslibraryuuid=12aa>b-1>)-0b41-b0c-)1a>>3=b4d2
http://www.riehle.org/publications/2009/open-collaboration-within-corporations-using-software-forges/http://rubyforge.org/projects/cruisecontrolrbhttp://rubyforge.org/projects/cruisecontrolrbhttp://cruisecontrolrb.thoughtworks.com/http://cruisecontrolrb.thoughtworks.com/http://cruisecontrolrb.thoughtworks.com/https://hudson.dev.java.net/http://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttp://www.kohl.ca/blog/archives/000185.htmlhttp://www.kohl.ca/articles/ExploratoryTesting_MusicofInvestigation.pdfhttp://www.kaner.com/pdfs/TheOngoingRevolution.pdfhttps://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/1088http://dannorth.net/2007/02/monkey-business-valuehttp://www.joelonsoftware.com/articles/fog0000000043.htmlhttps://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/4103http://www.junit.org/http://www.junit.org/http://www.paulgraham.com/opensource.htmlhttp://wtr.rubyforge.org/http://cukes.info/http://cukes.info/http://rspec.info/http://rspec.info/http://rspec.info/http://www.pragprog.com/titles/achbd/the-rspec-bookhttp://www.beteoblog.com/beteo-alm-miniguides/software-quality/http://raa.ruby-lang.org/project/saprfc/https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/7131https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/7131https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/7131https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12173https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12173http://railspikes.com/2008/7/11/testing-is-overratedhttp://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttp://behaviour-driven.org/https://sap.na.pgiconnect.com/p16473929/http://www.slideshare.net/schmerdy/blue-ruby-sdn-webinar-1260181http://www.slideshare.net/schmerdy/blue-ruby-sdn-webinar-1260181https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/408a9a3b-03f9-2b10-b29c-f0a3374b19d8https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/408a9a3b-03f9-2b10-b29c-f0a3374b19d8https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/408a9a3b-03f9-2b10-b29c-f0a3374b19d8http://www.slideshare.net/schmerdy/blue-ruby-sdn-webinar-1260181https://sap.na.pgiconnect.com/p16473929/http://behaviour-driven.org/http://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.htmlhttp://railspikes.com/2008/7/11/testing-is-overratedhttps://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12173https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/7131http://raa.ruby-lang.org/project/saprfc/http://www.beteoblog.com/beteo-alm-miniguides/software-quality/http://www.pragprog.com/titles/achbd/the-rspec-bookhttp://rspec.info/http://cukes.info/http://wtr.rubyforge.org/http://www.paulgraham.com/opensource.htmlhttp://www.junit.org/https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/4103http://www.joelonsoftware.com/articles/fog0000000043.htmlhttp://dannorth.net/2007/02/monkey-business-valuehttps://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/1088http://www.kaner.com/pdfs/TheOngoingRevolution.pdfhttp://www.kohl.ca/articles/ExploratoryTesting_MusicofInvestigation.pdfhttp://www.kohl.ca/blog/archives/000185.htmlhttp://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of-killer-robots-with-hudson-and-cucumberhttps://hudson.dev.java.net/http://cruisecontrolrb.thoughtworks.com/http://rubyforge.org/projects/cruisecontrolrbhttp://www.riehle.org/publications/2009/open-collaboration-within-corporations-using-software-forges/