OPTIMALISASI KINERJA DYNAMIC POSITIONING (DP) OPERATOR PADA MV. SURF PERDANA ...
Quality Assurance - FOIL Method2
1. Quality Assurance
Use the FOIL Method
So,you may be askingyourself,“FOIL,isn’tthatamath term?”Yes itis; however,youcanuse
the same thoughtbehindhowtoapproach testingforrequirementsthroughoutanapplication.
F – FUNDAMENTALS
“Does it work as written or intended by design?”
F = Fundamentals:The veryfirstthingyoumustdo witha requirementisverifythatitisworkingas
expected withinalogical confineof itself. It’safundamentalneedtoprove thisworksasintendedfor
the basisand the foundation of the applicationundertestasa whole. Withoutdoingthisfirst,youcan’t
proceedtofindingouthowitdoesn’twork;whichbringsusto the nextpoint….
O – OUTSIDE
“How gracefully does it handle events when going outside the logical confines of the
requirement?”
O=Outer/Outsideof the requirement: Thisiswhenwe will mostlikelyencounterabug because thisis
usuallywhere noone expectsyoutolook,especiallyyourprogrammers. Forexample:
1. Imagine youare testingthatyou can enteranynumber1-9 ina textbox thatsupportsintegers.
2. You verifythisworkscorrectlyfromthe “Fundamental”levelbyenteringanyrandomnumber
from1-9 to ensure atleastsome integerworks
3. Once you’ve verifiedthe requirement“works”,now it’s time totestthe outside.
4. In thisexample,the outside consistsof “0, 10, -1, 0.1, 1.2” for examples. Thiswill prove,if there
are no issueshere,thatthere ismostlikelynothingthatwill workoutside of integers1-9.
a. There are more waysto testthe outside,however,there isalimittohow much
“outside”shouldbe done. Youneedtolimitthistype of QA scrutinyor attack to a
science. Attackthe outside inplacesyoufeel wouldmostlikelyproduce anissue;or,in
betterways,howan end-usercouldaccidentallyincorrectlyenterdata(like an
accidental space infrontof a validnumberlike “2”).
I – INTEGRATION
“Does the requirement or feature work consistently with the rest of the application?” I
=Integration:Afterlookingintothe fundamentalsandoutside,it’s timetoobserve how well this
functionorfeature workswiththe restof the application. Integrationisthe actof makingsure thatnew
functionality,features,requirements,etc.don’t impede the previouslyworkingfunctionality.Thisalso
meansthat there is collaborative functionalitybetweenthe oldandnew functionality.
Thisis alsowhenyoucheckto make sure thisnew functionor feature isconsistentwiththe restof the
application. Forexample:
2. Imagineyou’reworking in sprint3 on an agile project,or you’resomewhere nearthemiddle of
yoursecond milestonein a waterfallproject. You begin testing for the requirementand you noticethe
color of the button is differentand thefontdoesn’tlookrightin comparison to whatall otherbuttons
looklike, or if whatyou’relooking atisn’ta button butan entire page. You notice the background isa
differentcolor than therest of thescreens or thatthe orientation of thetext within the screen isn’tthe
sameas all other pages. There are limitlessinconsistenciesthatcanoccur throughthe lifecycle of a
project.
You will mostlikelyfindabug withconsistencysometimethroughoutthe lifecycle of any
project. Thisis especiallycommonif youhave ateamthat changes membersovertime and/oraproject
that takesmonthsto finish. Someone new islikelytonotrealize 100% how itwas done before or
exactlywhatwasusedfor an asset/reference/class/etc. Theonly thing“consistent” about
inconsistenciesisthat inconsistenciesareconsistent.
L –LIST
L= List:The last thingyoudo is list (logbugs) forany and all issuesyoufoundwhiledoingthe first3
steps. While writingthe bugs,youneedtobe 100% sure youknow how to reproduce whatyoufound.
It’sbestto alwaysreproduce the bugsyoufoundwhile runningthroughthe first3stepsbefore listing
your bugs.
While youreportyourissue,youneed:
1. A specifictitle togive ageneral ideaof the buglike:
a. “There are no validationchecksfornumbersbeyond9”
2. Describe yourtitle alittle more (where claritymaybe needed)
a. “While makingsure thatno numbersbeyond9were consideredvalidbythe application,
I enteredthe number“10” and foundoutthe numberwasacceptedby the application.
I didnotice,however,thatentering“0” the applicationreturnedthe expected
validation”
b. For issuesthatare more complicated,attachingpicturesand/orvideostothe bugwill
be necessarytoinformthe teamof whatis goingon withthe issue.
3. Now,it’stime todescribe the stepsyoutookto reproduce the issue inthe bestdetail youcan:
a. 1. Launch the Numbersapplication –Version“whatever”
b. 2. Enter “10” as the numberyou’re tryingtoenterintothe field
c. 3. Click“go”/ “enter”(whateverthe methodof proceedingis)
d. 4. Observe there isnovalidationcheckonthe applicationfor“10”
4. Afterenteringthe stepstoreproduce the issue,it’stime toenterthe expectedresult:
a. “Enteringanynumberbeyond9 givesavalidationcall backto the end-usersaying‘This
isan invalidnumber. The numbermustbe between1to 9. The numberyouenteredis
too high. Try again.’”
5. Lastly,and where applicable,make sure the bugisassignedtoorassociatedwithsomethingin
your teamenvironment(like TeamFoundationServer), sosomeone will be able tosee the bug
to workon it.
Rinse andrepeatas needed.
3. In myexperiences,thisisprobablyone of the more effective processesone can do. Thisis
simple enoughtoapply toalmostanythingandit’show I normally approachrequirements;itall
dependson yourtime andthe risksinvolved.
If you’dlike tohear more abouthow Sparkhound’scertifiedQA canhelpyou withyoursoftware
project;please reachoutto us.We’dlove to help!
www.sparkhound.com