WeekAssignmentSoftwareTesting– TestPlanning
Hans-PetterHalvorsenB.Lund.Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
2017.04.07
WeekAssignment
1. CreateaSoftwareTestPlan(STP)
2. CreateaVirtual TestEnvironment
SeeNextSlidesformoredetails...
Note!AllDocuments,Code,etc.youcreateshouldbeuploadedtoVisualStudioTeamServices(VSTS)
https://en.wikipedia.org/wiki/Freeze_(software_engineering)
Insoftwareengineering,afreezeisapointintimeinthedevelopmentprocessafterwhichtherulesformakingchangestothesourcecodeorrelatedresourcesbecomemorestrict,ortheperiodduringwhichthoserulesareapplied.
NoProgramminginClassthese2weeks!– otherwiseitiseasytoloosefocusonTesting
CodeFreeze:Tuesday10:15-14:00andFriday10:15-14:00
CreateSoftwareTestPlan(STP)
CreateVirtualTestEnvironment
TesttheSoftwareaccordingtoSTP
CreateUnitTestsinVisualStudio
TestPlanning
TestExecution
1
2
3
4
TestPlanningandExecution
NextWeek
WhyTesting?• MakesurethesoftwarefulfillstheRequirements fromthe
Customers(SoftwareRequirementsSpecification,SRS)• MakesuretheSoftwaredon'tcontaincriticalBugs• Makesurethesoftwarecanbeinstalled atthecustomer.
Thecustomerdon'thaveVisualStudio!• Makesurethesoftwareareuser-friendly anintuitivetouse• Makesurethesoftwareisrobust andhasacceptable
performance (soitdon'tcrashwhenmorethan1personareusingit,thedatabasecontainlotsofdata,etc.)
Database
PresentationTier
e.g.,ADO,ADO.NET
LogicTier
WebService
BusinessTier
DataAccessTier
DataTierStoredProcedures
ViewsTables
WebServer
DatabaseServer
PresentationTier
Client
ASP.NETWebForms
WebAppPresentationTier
DifferentBrowsers
Client
ClientWinForms
TestingisComplex!ASystematic
Approachisneeded!
Firewall
Clients
DesktopAppMobileApp
InternetLocal
Network
DifferentPlatforms:Android,iOS,Windows/Windows
Phone,etc.
API
API
API
API
PresentationTiers
WebBrowser
RequirementsAnalysis
Design
Implementation
Testing
Maintenance
PlanningDeployment
SRS
SDD
STD
Code
InstallationGuides
UserGuides
GanttChart
withERDiagram,UMLDiagrams,CADDrawings
TestDocumentation
SoftwareRequirementsSpecifications
SoftwareDesignDocumentsSystemDocumentation
SoftwareTestPlan(STP)
ProjectPlanning
End-UserDocumentation
SystemDocumentation
SoftwareTestDocumentation
SDPSoftwareDevelopment
Plan
GanttChart
TheSoftwareDevelopment
Lifecycle(SDLC)
TypicalSoftwareDocumentation
High-LevelRequirementsandDesignDocuments
UserManuals
SystemDocumentation
InstallationGuides
TestPlans
TestDocumentation
DetailedRequirementsandDesignDocuments
ERDiagram(Database)UMLDiagrams(Code)
Time
Start
Finish
HowtoTest/WhattoTest
CADDrawings,etc.
1.Planning
2.Testing
3.End-userDocumentation(Thepeoplethatshallactuallyusethesoftware)
TechnicalStuff
HowtouseitHowtoinstallit
Proofthatyouhavetestedandthatthesoftwareworksasexpected
(Thestakeholders,thesoftwareteam;architects,UXdesigners,developers)
(QApeople)
(SuperUser/ITdep.)
WHATHOW
(EndUser)
ProjectM
anagem
ent(Ga
nttC
hart,etc.)
(SRS)(SDD)
(STP)(STD)
SoftwareDevelopmentPlan
(SDP)
2.Requierements/Design
MainpurposeofTesting:FindBugs!!• RequirementsErrors:13%• DesignErrors:24%• CodeErrors:38%• DocumentationErrors:13%• Bad-fixErrors:12%
http://proquest.safaribooksonline.com/book/software-engineering-and-development/9781449691998/chapter-3-engineering-of-software/42?uicode=telemark
B.Lund.Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
WhatisBugs• Asoftwarebugisanerror,flaw,
failure,orfaultinacomputerprogramorsystemthatproducesanincorrectorunexpectedresult,orcausesittobehaveinunintendedways
• Theyfoundabug(actuallyamoth)insideacomputerin1947thatmadetheprogramnotbehavingasexpected.Thiswasthe“first”realbug.
• Debugging:FindandRemove/FixBugs
“Ifyoudon’tknowhowyourcodeworks,itdoesnotwork– youjustdon’tknowityet”
SoftwareTesting
“50%oftheSoftwareDevelopmentisaboutTestingyourSoftware”
ValidationTesting DefectTesting
Testing
DemonstratetotheDeveloperandtheCustomerthattheSoftwaremeetsitsRequirements.
I.Sommerville,SoftwareEngineering,10ed.:Pearson,2015.
CustomSoftware:ThereshouldbeatleastonetestforeveryrequirementintheSRSdocument.GenericSoftware:Thereshouldbetestsforallofthesystemfeaturesthatwillbeincludedintheproductrelease.
Findinputsorinputsequenceswherethebehaviorofthesoftwareisincorrect,undesirable,ordoesnotconformtoitsspecifications.Thesearecausedbydefects(bugs)inthesoftware.
TypesofTestingStressTesting
UsabilityTesting
PerformanceTesting
UserTesting
RegressionTesting
Setyp&DeploymentTesting
...
... ...Requirements
Testing
GUITesting
FunctionalTesting
NonFunctionalTesting ...
...
...
LoadTesting
UsabilityTesting
SecurityTesting
B.Lund.Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
VideosaboutTesting
• Guru99.com:http://www.guru99.com/software-testing.html
• NTNU:http://video.adm.ntnu.no/pres/511de3f0ac5b5
• ...(searchforTestingonYouTube)
7PrinciplesofTesting1. TestingshowsthepresenceofBugs:SoftwareTestingreducestheprobabilityof
undiscovereddefectsremaininginthesoftwarebutevenifnodefectsarefound,itisnotaproofofcorrectness.
2. ExhaustiveTestingisimpossible:Testingeverythingisimpossible!Insteadweneedoptimalamountoftestingbasedontheriskassessmentoftheapplication.
3. EarlyTesting:TestingshouldstartasearlyaspossibleintheSoftwareDevelopmentLifeCycle(SDLC)
4. DefectClustering:Asmallnumberofmodulescontainmostofthedefects/bugsdetected.
5. ThePesticideParadox:Ifthesametestsarerepeatedoverandoveragain,eventuallythesametestcaseswillnolongerfindnewbugs
6. TestingisContextdependent:Thismeansthatthewayyoutestae-commercesitewillbedifferentfromthewayyoutestacommercialofftheshelfapplication
7. AbsenceofErrorisaFallacy:Findingandfixingdefectsdoesnothelpifthesystembuildisunusableanddoesnotfulfilltheusersneeds&requirements
http://www.guru99.com/software-testing-seven-principles.htmlhttp://www.testingexcellence.com/seven-principles-of-software-testing
“CrashTestforDummies”
http://www.no.capgemini.com/blog/capgemini-bloggen/2013/09/crash-test-for-dummies
• Hvorformåvitesteprogramvare?• Nårkanvibegynneåtesteprogramvare?• Hvatrengsforåutføretesten?• Hvordankan/børviteste?• Hvemerbesttilåutføretesten?• Hvorerdetbehovfortesting?
EnSoftwareTesterfraCapgeminigirdegsvaret: Readthisarticle
TestCategoriesBlack-boxvs.White-boxTesting
White-boxTesting:Youneedtohaveknowledgeofhow(DesignandImplementation)thesystemisbuilt
Black-boxTesting:Youneednoknowledgeofhowthesystemiscreated.
TypicallydonebyDevelopers,etc
WhodoestheTesting?• Programmers/Developers
– Programmersusuallycreatetestcasesandrunthemastheywritethecodetoconvincethemselvesthattheprogramworks.Thisprogrammeractivityrelatedtotestingisusuallyconsideredtobeunittesting.
• Testers– Atesterisatechnicalpersonwhoserolefortheparticularitembeingtestedisjusttowritetest
casesandensuretheirexecution.Althoughprogrammingknowledgeisextremelyusefulfortesters,testingisadifferentactivitywithdifferentintellectualrequirements.Notallgoodprogrammerswillbegoodtesters.
• EndUsers/Customers– Itisagoodideatoinvolveusersintesting,inordertodetectusabilityproblemsand
toexposethesoftwaretoabroadrangeofinputsinreal-worldscenarios.
LevelsofTesting
UnitTesting
IntegrationTesting
SystemTesting
AcceptanceTesting
Anymodule,program,objectseparatelytestable
Interfacebetweencomponents;interactionswithothersystems(OS,HW,etc)
Thebehaviorofthewholeproduct(system)asdefinedbythescopeoftheproject
Istheresponsibilityofthecustomer– ingeneral.Thegoalistogainconfidenceinthesystem;especiallyinitsnon-functionalcharacteristics
LevelsofTestingUnitTesting:Testeachpartsindependentlyandisolated
IntegrationTesting:Makesurethatdifferentpiecesworktogether.TesttheInterfacesbetweenthedifferentpieces.Interactionwithothersystems(Hardware,OS,etc.)
SystemTesting:Testthewholesystem
RegressionTesting:Testthatitstillworksafterachangeinthecode
LevelsofTesting
UnitTesting
RegressionTesting
IntegrationTesting
System/ValidationTesting
AcceptanceTesting
Start
Finish
Requirements&DesignStartDevelopment
UnitTestsarewrittenbytheDevelopersaspartoftheProgramming.EachpartisdevelopedandUnittestedseparately(EveryClassandMethodinthecode)
TheCustomerneedstotestandapprovethesoftwarebeforehecantakeitintouse.FAT/SAT.
SystemtestingistypicallyBlack-boxTeststhatvalidatetheentiresystemagainstitsrequirements,i.e Checkingthatasoftwaresystemmeetsthespecifications
Integrationtestingmeansthesystemisputtogetherandtestedtomakesureeverythingworkstogether.
Regressiontestingistestingthesystemtocheckthatchangeshavenot“broken”previouslyworkingcode.BothManually&Automatically(Re-runUnitTests)
TestingOverviewTestCategories: TestLevels: TestMethods:
UnitTesting
RegressionTesting
IntegrationTesting
SystemTesting
AcceptanceTesting
Black-boxTesting
White-boxTesting
StressTesting
PerformanceTesting
GUITesting
FunctionalTesting
NonFunctionalTesting
LoadTesting
UsabilityTesting
SecurityTesting
etc.
80– 20Rule• Ittakes20%ofthetimetofinish80%ofyourapplication->Prototype(80%finished)
• 80%oftheusersonlyuse20%ofthefeatures• 80%ofperformanceimprovementsarefoundbyoptimizing20%ofthecode
• 80%ofthebugsarefoundin20%ofthecodehttp://swreflections.blogspot.no/2013/11/applying-8020-rule-in-software.html
SoftwareTestPlan(STP)
• CreateaSoftwareTestPlan(STP)• ThecontentintheSTPmaydifferdependingoftheProject(whatkindofsoftwareyouarecreating,thesize,etc.),seeexamplesonthenextslides
• UploadtheSTPtoVSTS&yourWebSiteSeeNextSlidesformoredetails...
CreateaSoftwareTestPlan(STP)documentq Introduction
q TestSoftware(VSTS,...)q TestResources
q TestPersonnelandResponsibilities.TestManagerq TestEnvironmentandTestHardware
q OverviewofdifferentTestTypesq ValidationTestingandDefectTestingq UnitTesting,RegressionTesting,IntegrationTesting,SystemTesting,
AcceptanceTestingq TestStrategies
q Whattotestq Howtotestq Whentotest.TestSchedule
q TestCases.Can,e.g.,beExcelsheetsq TestDocumentation- Howshalltestsbedocumented?
Week1,TuesdayTeamActivity
Deadline1.Draft:Friday10:15FinalDraft:NextTuesday10:15
CreateSoftwareTestPlan(STP)
TestPlanning• Tomaximizetheeffectivenessofresourcesspentontesting,asystematicapproachisrequired
• ASoftwareTestPlan(STP)shouldbecreated
WhatisaSoftwareTestPlan(STP)?ADocumentthatanswersthefollowing:• TestingshouldbebasedonRequirements&DesignDocuments• Whatshallwetest?• Howshallwetest?• Hardware/SoftwareRequirements• Whereshallwetest?• Whoshalltest?• Howoftenshallwetest(TestSchedule)?• Howshalltestsbedocumented?
§ Itisnotenoughsimplytoruntests;theresultsofthetestsmustbesystematicallyrecorded.Itmustbepossibletoauditthetestingprocesstocheckthatithasbeencarriedoutcorrectly
§ Systemtests:Thissection,whichmaybecompletelyseparatefromthetestplan,definesthetestcasesthatshouldbeappliedtothesystem.Thesetestsarederivedfromthesystemrequirementsspecification. http://www.softwareengineering-9.com/Web/Testing/Planning.html
TestCasesListExampleTester:_______________________,Date:________
TestCase OK Failed Description
TheLoginProcedureworks
UserDataSavedintheDatabase
etc
TheTestersfillintheseListselectronically.ShouldbeincludedinSoftwareTestDocumentation
IfTestCasesFails,reportBugsinVSO
SoftwareTestPlan(STP)WewillcreateaVirtualTestEnvionment usingVMwarePlayer
ThesethingsneedtobespecifiedintheSTP
WestartcreatingaSTPandVirtualTestEnvironmentsthisweek
WestartcreatingTestEnvironmentonFridayandstartTestingnextweek,ReportBugsinVisualStudioOnline,etc.
WhatkindofTestEnvironment/WhereistheTestEnvironment?,HowoftenshallweupdatetheTestEnvironment?WewillcreateaVirtualTestEnvironmentusingVMwareWorkstationPlayer
WhenshallweTest?HowmanyhoursofTesting?
WhenarewefinishedTesting?...
WhatkindsofTestsshallbedone(UnitTesting,APITesting,IntegrationTesting,SystemTesting,InstallationTesting,...)?
Whowillusethewebsite?Whatisitusedfor?Howwillitwork?Whataresoftware/hardwaretheproductuses?
WhoshallTest?TestRoles?TestManager,Testers,...QA(QualityAssurance)
TestLogs,TestResults/Reports
Theobjectiveofthetestingisfindingasmanysoftwaredefectsaspossible;ensurethatthesoftwareundertestisbugfreebeforerelease.
TestPlanExampleA. GoalsandExitCriteria(Quality,Robustness,Schedule,PerformanceGoals
oftheProduct,...)B. ItemstobeTested/Inspected(Executablessuchasmodulesand
components,NonexecutablessuchasRequirmentsandDesignspecifications,...)
C. TestProcess/Methodologies(Unit,Functional,Acceptance,RegressionTests,Black-box,White-box,Testmetrics,Bugreportprocess,...)
D. Resources(People,Tools,TestEnvironment,...)E. Schedule(Test-casedevelopment,Testexecution,Problemreportingand
fixing,...)F. Risks(...)G. MajorTestScenariosandTestCases(...)
EssentialsofSoftwareEngineering,FrankTsui;OrlandoKaram;BarbaraBernal,3ed.,Jones&BartlettLearning
AppendixDinEssentialsofSoftwareEngineering
TestPlanExample#2Atestplanoutlinesthestrategythatwillbeusedtotestanapplication,theresourcesthatwillbeused,thetestenvironmentinwhichtestingwillbeperformed,thelimitationsofthetestingandthescheduleoftestingactivities.TypicallytheQualityAssuranceTeamLeadwillberesponsibleforwritingaTestPlan.Atestplanwillincludethefollowing.
• IntroductiontotheTestPlandocument• Assumptionswhentestingtheapplication• ListoftestcasesincludedinTestingtheapplication• Listoffeaturestobetested• WhatsortofApproachtousewhentestingthesoftware• ListofDeliverablesthatneedtobetested• Theresourcesallocatedfortestingtheapplication• AnyRisksinvolvedduringthetestingprocess• AScheduleoftasksandmilestonesastestingisstarted
Reference:SoftwareTestingTutorial,tutorialspoint.com
SeePDFdocumentonCourseschedule
HowtoCreateaTestPlanhttp://www.guru99.com/what-everybody-ought-to-know-about-test-planing.html
TestPlanTemplate:http://download.guru99.com/random_download/download_file.php?file=guru99/TestPlan.doc
TestPlanExample:http://download.guru99.com/random_download/download_file.php?file=guru99/Test_Plan_Guru99.pdf
Example#3
43E.J.BraudeandM.E.Bernstein,SoftwareEngineering:ModernApproaches,2ed.:Wiley,2011.(Ch.25)
AnotherTestPlanExampleExample#4
TypicalSoftwareDocumentation
High-LevelRequirementsandDesignDocuments
UserManuals
SystemDocumentation
InstallationGuides
TestPlans
TestDocumentation
DetailedRequirementsandDesignDocuments
ERDiagram(Database)UMLDiagrams(Code)
Time
Start
Finish
HowtoTest/WhattoTest
CADDrawings,etc.
1.Planning
2.Testing
3.End-userDocumentation(Thepeoplethatshallactuallyusethesoftware)
TechnicalStuff
Howtouseit
Howtoinstallit
Proofthatyouhavetestedandthatthesoftwareworksasexpected
(Thestakeholders,thesoftwareteam;architects,UXdesigners,developers)
(QApeople)
(SuperUser/ITdep.)
WHATHOW
(EndUser)ProjectM
anagem
ent(Ga
nttC
hart,etc.)
(SRS)(SDD)
(STP)(STD)
SoftwareDevelopmentPlan (SDP)
2.Requierements/Design
TestPlanningSummary• Testplanninginvolvesschedulingandestimatingthesystemtestingprocess,
establishingprocessstandardsanddescribingtheteststhatshouldbecarriedout.• Aswellashelpingmanagersallocateresourcesandestimatetestingschedules,test
plansareintendedforsoftwareengineersinvolvedindesigningandcarryingoutsystemtests.
• Theyhelptechnicalstaffgetanoverallpictureofthesystemtestsandplacetheirownworkinthiscontext.
• Aswellassettingoutthetestingscheduleandprocedures,thetestplandefinesthehardwareandsoftwareresourcesthatarerequired.
• Testplansarenotastaticdocumentsbutevolveduringthedevelopmentprocess.Testplanschangebecauseofdelaysatotherstagesinthedevelopmentprocess.
• Testplanningisparticularlyimportantinlargesoftwaresystemdevelopment.• Forsmallandmedium-sizedsystems,alessformaltestplanmaybeused,butthereis
stillaneedforaformaldocumenttosupporttheplanningofthetestingprocess.http://www.softwareengineering-9.com/Web/Testing/Planning.html
TestDocumentation
PlanningTests PerformTests DocumentTestResults
SoftwareTestPlan(STP)
SoftwareRequirementsSpecifications(SRS)SoftwareDesignDocument(SDD)
SoftwareTestDocumentation
(STD)
TestLogs
ThesedocumentswillbethefoundationforallTesting
- Functional&Non-FunctionalRequirements- User&SystemRequirements
TestEnvironment• PrepareaVirtualTestEnvironmentusingVMwareWorkstationPlayer(VirtualMachine,VM)
• Installe.g.Windows10(fromMicrosoftImagine)
• InstallSQLServer• InstallyourSoftwareontheVirtualMachine• MakeitreadyforTesting
SeeNextSlidesform
oredetails...Note!Makesureyouhaveenoughfreespaceonyourharddrive!
Note!EveryoneontheTeamshoulddothisExercise
ItisrecommendedthatyouwithintheTeaminstalldifferentOS,WebBrowsers,etc.
Week1,FridayIndividualActivityDeadline14:00q InstallVMwareWorkstationPlayer
q InstallWindows10(from.iso file,~3Gb)q InstallVMwareToolsintheVMq InstallSQLServerintheVMq ActivateWebServer– InternetInformationServices(IIS)andASP.NETq Backup (MakeacopyoftheFolder)theVirtualMachine(VM).Inthatway
youhaveacleanTestEnvironmentyoucanuseseveraltimes.q InstallyourSoftwareintheVMandmakeitreadyforTesting
q Create/InstallyourDatabasefromaSQLScript(YoushouldhaveoneSQLScriptthatinstallseverything,suchasTables,Views,StoredProcedures,etc.)
q InstallDesktopApp(ifany),i.e.,copy.exefile,etc.q InstallWebApp,copyfiles(.aspx files,dll andothernecessaryfiles)and
deploytoWebServer (IIS)q CopyVMtoMemoryStickandgivetoOlav/HP
VisualStudioshallnotbeinstalledintheTestEnvironment
Youneed~20Gbfreespaceonyourharddrive
CreateVirtualTestEnvironment
Virtualization
B.Lund.Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
WhyTestEnvironment?• “ItworksonmyPC”saystheDeveloper• CleanEnvironment• OntheDevelopersPCswehaveallkindofSoftwareinstalledthat
theCustomerdont have,e.g.DevelopmentToolslikeVisualStudio,etc.
• WeneedtotestondifferentPlatformsandOperatingSystems• CustomersmayusedifferentWebBrowsers• Deployment:TestofInstallationpackages• MakethesoftwareavailableforTesters• etc.
“ItworksonmyComputer”MakesuretotestyoursoftwareonotherComputersandEnvironmentsthanyourDevelopmentComputer!• EverythingworksontheDeveloper
Computer• TheCustomersDatabaseisnotthe
sameasyours• TheCustomermaynotusethe
sameOS• TheCustomermaynotusethe
sameWebBrowser• TheCustomerdonothaveVisual
Studio,SQLServer,etc.ontheirPersonalComputer
• Etc.=>TestEnvironmentisneeded!
Development Testing Production
DevelopmentEnvironment TestEnvironment
ProductionEnvironment
TypicallytheDevelopersPersonalComputerwithDatabase,WebServerandProgrammingSoftware
ACleanPC/Server(oranetworkwithPCsandServers)whereyouinstallandtestyourSoftware.Todaywetypicallyset-upaVirtualTestEnvironment
TheCustomersenvironmentwhereyouunstallthefinalsoftware(ServersandClients)
ProgrammingenvironmentssuchasVisualStudio,etc.shouldnotbeinstalledinthisenvironment.Youneedtocreate.exefilesetc.inordertomakeyoursoftwarerun.
Developers Developers&Testers Customersuntilfinished
Virtualization
OperationSystem
VirtualizationSoftware
Hypervisor
VM VM VM
Hardware(Computer)
VM VM VM
Guests
Host
VM=VirtualMachines
AHypervisorcanrundirectlyonthecomputerwithoutaHostOS
Windows,Linux,...
Windows,Linux,...
VirtualizationSoftwareAlotofVirtualizationSoftwareexists.Herearesomeexamples:• VMwareWorkstation• VMwareWorkstationPlayer (Freeofchargeandsimpleto
use)• VMwarevSphereandvSphereHyperVisor• VMwareFusion(Mac)• Parallells Desktop(Mac)• MicrosoftHyper-V(partofWindows)• VirtualBox• etc.
VMwareWorkstationPlayerVMwareWorkstationPlayerisforpersonaluseonyourownPC.VMwarePlayerisfreeofchargeforpersonalnoncommercialuse.
58
VMwareisacompanythathasbeenspecializingwithinvirtualizationsoftware.http://www.vmware.com
TestEnvironment- Summary• ItisimportanttotestyoursoftwareoutsidetheDevelopmentEnvironment
• Tomakethesoftwareavailable fortestpersonnel(nonprogrammers),thecompanyleaders,customers,thosewhoarecreatinguserdocumentation,salesdepartment,etc.NoneofthesehaveprogrammingexperienceorhaveVisualStudio,etc.installed
• ItisimportantthattheCustomers,Testers,etc.haveaccesstoandcantestthesoftwareingoodtimebeforerelease
Remember– ItisyourCustomersthataregoingtouseyourSoftware(andpayforit)!
è TheCustomerneedstobeinvolvedintheRequirements,UserExperienceandTestingoftheSoftware!
CustomerPerspective
B.Lund.Lunch.Available:http://www.lunchstriper.no,http://www.dagbladet.no/tegneserie/lunch/
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorwaywww.usn.no
E-mail:[email protected]:http://home.hit.no/~hansha/