SlideShare a Scribd company logo
Application TestingApplication Testing
Reggie Niccolo SantosReggie Niccolo Santos
UP ITDCUP ITDC
OutlineOutline
The Testing PhaseThe Testing Phase
Testing your Web AppsTesting your Web Apps
Testing Strategies and Tactics for Mobile ApplicationsTesting Strategies and Tactics for Mobile Applications
ReferencesReferences
The Testing PhaseThe Testing Phase
In many software engineering methodologies, aIn many software engineering methodologies, a
separateseparate phase performed by aphase performed by a differentdifferent team afterteam after
the implementation is completedthe implementation is completed
The Testing PhaseThe Testing Phase
Regression TestRegression Test
Internal TestingInternal Testing
Unit TestingUnit Testing
Application TestingApplication Testing
Stress TestingStress Testing
Regression TestRegression Test
Form aForm a suitesuite of programs that test one or moreof programs that test one or more featuresfeatures ofof
the systemthe system
A valid regression test generatesA valid regression test generates verified resultsverified results
““gold standardgold standard””
Validity driven by the rValidity driven by the requirement documentequirement document
In practice, theIn practice, the implementation teamimplementation team is responsibleis responsible
for validity interpretationfor validity interpretation
Regression TestRegression Test
As development continues, more tests are added, while oldAs development continues, more tests are added, while old
tests may remain validtests may remain valid
Because of new development, an old test may no longerBecause of new development, an old test may no longer
be validbe valid
If this is the case, the old test results areIf this is the case, the old test results are alteredaltered in thein the
“gold standard” to“gold standard” to matchmatch the current expectationsthe current expectations
The test suite is run generating new resultsThe test suite is run generating new results
Internal TestingInternal Testing
Make sure allMake sure all internal, non-customer-visibleinternal, non-customer-visible
componentscomponents work wellwork well
Deals withDeals with low-levellow-level implementationimplementation
EachEach functionfunction oror componentcomponent is testedis tested
Accomplished by theAccomplished by the implementation teamsimplementation teams
Internal TestingInternal Testing
Clear-box/white-box testingClear-box/white-box testing
All details areAll details are visiblevisible to the testto the test
Internal limitsInternal limits are tested hereare tested here
Unit TestingUnit Testing
Make sure allMake sure all customer-visible componentscustomer-visible components workwork
wellwell
Deals with testing aDeals with testing a unit as a wholeunit as a whole
Test theTest the interaction of many functionsinteraction of many functions butbut confineconfine
the test withinthe test within one unitone unit
Supporting test code, sometimes calledSupporting test code, sometimes called scaffoldingscaffolding,,
may be necessary to support an individual testmay be necessary to support an individual test
Unit TestingUnit Testing
Driven by theDriven by the architecture and implementationarchitecture and implementation
teamsteams
Black-box testingBlack-box testing because only thebecause only the details of thedetails of the
interface are visibleinterface are visible to the testto the test
Limits that areLimits that are globalglobal to a unit are tested hereto a unit are tested here
Application TestingApplication Testing
Make sure the application can completeMake sure the application can complete allall
scenariosscenarios
Driven by scenarios from theDriven by scenarios from the analysis teamanalysis team
Application limits and featuresApplication limits and features are tested hereare tested here
Application TestingApplication Testing
MustMust successfully execute all scenariossuccessfully execute all scenarios before it isbefore it is
ready for general customer availabilityready for general customer availability
Represents theRepresents the bulkbulk of the testing done by the industryof the testing done by the industry
Unlike the internal and unit testing, which areUnlike the internal and unit testing, which are
programmed, these tests are usuallyprogrammed, these tests are usually driven by scriptsdriven by scripts
that run the system with a collection of parameters andthat run the system with a collection of parameters and
collect resultscollect results
Stress TestingStress Testing
Run the application in an environment that isRun the application in an environment that is moremore
stressfulstressful than the target environmentthan the target environment
Deals with theDeals with the qualityquality of the application in theof the application in the
environmentenvironment
Requires a joint effort fromRequires a joint effort from all teamsall teams
Stress TestingStress Testing
Test environment established withTest environment established with many testingmany testing
stationsstations
At each station, aAt each station, a script is executingscript is executing the systemthe system
These scripts are usually based on the regression suiteThese scripts are usually based on the regression suite
More and more stations are added, all simultaneouslyMore and more stations are added, all simultaneously
hammering on the system, until the systemhammering on the system, until the system breaksbreaks
Stress TestingStress Testing
The system is repaired and the stress test is repeatedThe system is repaired and the stress test is repeated
until a level of stress is reached that isuntil a level of stress is reached that is higher thanhigher than
expectedexpected to be present at a customer siteto be present at a customer site
Race conditionsRace conditions andand memory leaksmemory leaks are oftenare often
found under stress testingfound under stress testing
Race ConditionRace Condition
Conflict betweenConflict between at least twoat least two teststests
Each test works correctly when done inEach test works correctly when done in isolationisolation
When the two tests are run in parallel, one or both ofWhen the two tests are run in parallel, one or both of
the teststhe tests failfail
Usually due to anUsually due to an incorrectly managed lockincorrectly managed lock
Memory LeakMemory Leak
Happens when a testHappens when a test leaves allocated memoryleaves allocated memory
behindbehind and does not correctly return the memory toand does not correctly return the memory to
the memory allocation schemethe memory allocation scheme
The test seems to run correctly, but after beingThe test seems to run correctly, but after being
exercised several times,exercised several times, available memory isavailable memory is
reducedreduced until the system failsuntil the system fails
Testing your Web AppsTesting your Web Apps
1.1. ObjectivesObjectives
Establish your testing objectivesEstablish your testing objectives up frontup front and make sureand make sure
that they arethat they are measurablemeasurable
Make sure your objectives areMake sure your objectives are prioritizedprioritized
Ask yourself questions like:Ask yourself questions like:
1.1. ““What is most important:What is most important: minimal defectsminimal defects oror time-to-time-to-
marketmarket?”?”
Testing your Web AppsTesting your Web Apps
2.2. Process and ReportingProcess and Reporting
Make sure that everyone on your testing teamMake sure that everyone on your testing team
knows his or herknows his or her rolerole
WhoWho should reportshould report whatwhat toto whomwhom andand whenwhen??
Define yourDefine your testing processtesting process
Testing your Web AppsTesting your Web Apps
2.2. Process and ReportingProcess and Reporting
Guide questions:Guide questions:
HowHow will issues be reported?will issues be reported?
WhoWho will assign issues?will assign issues?
HowHow will issues be categorized?will issues be categorized?
Testing your Web AppsTesting your Web Apps
2.2. Process and ReportingProcess and Reporting
Guide questions:Guide questions:
WhoWho needsneeds whatwhat report andreport and whenwhen do they need it?do they need it?
2.2. Are team meetings scheduledAre team meetings scheduled in advancein advance or scheduledor scheduled asas
neededneeded??
Organize your team in a way thatOrganize your team in a way that supportssupports your testingyour testing
objectives and takes into account theobjectives and takes into account the individualindividual personalitiespersonalities
on your teamon your team
Testing your Web AppsTesting your Web Apps
3.3. Tracking ResultsTracking Results
You will want a way to easilyYou will want a way to easily store, organize andstore, organize and
distribute informationdistribute information about bugs, issues, andabout bugs, issues, and
defects to the appropriate technical team membersdefects to the appropriate technical team members
You will also need a way toYou will also need a way to keep managementkeep management
informedinformed of the status of your testing effortsof the status of your testing efforts
e.g.e.g. AdminiTrack.comAdminiTrack.com
Testing your Web AppsTesting your Web Apps
4.4. Test EnvironmentTest Environment
Separate from yourSeparate from your developmentdevelopment andand productionproduction
environmentenvironment
Includes aIncludes a separate web server, databaseseparate web server, database
server, and application serverserver, and application server if applicableif applicable
Testing your Web AppsTesting your Web Apps
4.4. Test EnvironmentTest Environment
Create an explicitly defined procedure forCreate an explicitly defined procedure for movingmoving
codecode to and from your test environment and maketo and from your test environment and make
sure the procedure is followedsure the procedure is followed
Work with your development team to make sureWork with your development team to make sure
each new version of source code to be tested iseach new version of source code to be tested is
uniquely identifieduniquely identified
Testing your Web AppsTesting your Web Apps
5.5. Usability TestingUsability Testing
Looking at aspects of your web application that affect theLooking at aspects of your web application that affect the
user’s experienceuser’s experience
Guide questions:Guide questions:
HowHow easyeasy is it to navigate through your web application?is it to navigate through your web application?
Is itIs it obviousobvious to the user which actions are available to himto the user which actions are available to him
or her?or her?
Testing your Web AppsTesting your Web Apps
5.5. Usability TestingUsability Testing
Guide questions:Guide questions:
Is the look-and-feel of your web applicationIs the look-and-feel of your web application consistentconsistent
from page to page, including font sizes and colorsfrom page to page, including font sizes and colors
Design forDesign for accessibilityaccessibility especially if it is a legalespecially if it is a legal
requirementrequirement
http://www.w3.org/TR/AERThttp://www.w3.org/TR/AERT
Testing your Web AppsTesting your Web Apps
6.6. Unit TestingUnit Testing
Focused on verifyingFocused on verifying smallsmall portions of functionalityportions of functionality
e.g. range checkinge.g. range checking
Testing your Web AppsTesting your Web Apps
7.7. Verifying the HTMLVerifying the HTML
World Wide Web ConsortiumWorld Wide Web Consortium's free HTML's free HTML
Validation ServiceValidation Service
http://validator.w3.orghttp://validator.w3.org
Net MechanicNet Mechanic
http://www.netmechanic.comhttp://www.netmechanic.com
Testing your Web AppsTesting your Web Apps
7.7. Verifying the HTMLVerifying the HTML
Make sure that your syntax is correctMake sure that your syntax is correct
Opening and closing tags matchOpening and closing tags match
Testing your Web AppsTesting your Web Apps
7.7. Verifying the HTMLVerifying the HTML
Verify how your pagesVerify how your pages looklook inin different browsers, atdifferent browsers, at
different screen resolutionsdifferent screen resolutions, and on, and on differentdifferent
operating systemsoperating systems
Create aCreate a profileprofile of your target audience and makeof your target audience and make
some decision on what browsers you will support, onsome decision on what browsers you will support, on
which operating systems, and at what screen resolutionswhich operating systems, and at what screen resolutions
Testing your Web AppsTesting your Web Apps
8.8. Load TestingLoad Testing
You want to simulate how users will use your webYou want to simulate how users will use your web
application in theapplication in the real worldreal world
TheThe earlierearlier you perform the load testing the betteryou perform the load testing the better
Performance tuningPerformance tuning should be tightly integratedshould be tightly integrated
with the design of your applicationwith the design of your application
Testing your Web AppsTesting your Web Apps
8.8. Load TestingLoad Testing
Try to make sure that all of your pages load inTry to make sure that all of your pages load in 1515
seconds or lessseconds or less
Depends on yourDepends on your particular applicationparticular application and theand the
expectations of the people using itexpectations of the people using it
Testing your Web AppsTesting your Web Apps
9.9. User Acceptance Testing (UAT)User Acceptance Testing (UAT)
You are making sure your web applicationYou are making sure your web application fitsfits thethe
use which it was intendeduse which it was intended
One way is to set up aOne way is to set up a beta testbeta test
Testing your Web AppsTesting your Web Apps
10.10. Testing SecurityTesting Security
You need to test howYou need to test how securesecure your web applicationyour web application
is from bothis from both externalexternal andand internalinternal threatsthreats
Should be planned for and verified byShould be planned for and verified by qualityquality
security specialistssecurity specialists
Testing your Web AppsTesting your Web Apps
10.10. Testing SecurityTesting Security
Additional resources:Additional resources:
CERT Coordination CenterCERT Coordination Center
http://www.cert.org/http://www.cert.org/
Computer Security Resource CenterComputer Security Resource Center
http://csrc.nist.gov/http://csrc.nist.gov/
Testing your Web AppsTesting your Web Apps
10.10. Testing SecurityTesting Security
Make sure to also performMake sure to also perform ongoing securityongoing security
auditsaudits to ensure your web application remainsto ensure your web application remains
secure over time as people and technology changesecure over time as people and technology change
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
1.1. Goal is not to find errors but to understand theGoal is not to find errors but to understand the
qualityquality of your offeringof your offering
Does itDoes it workwork??
Does it functionDoes it function as expectedas expected??
Will it meet theWill it meet the needsneeds of your users, so that theyof your users, so that they
come back again and again?come back again and again?
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications
The app download is often controlled by theThe app download is often controlled by the gate-gate-
keeping app storekeeping app store, with mechanisms in place to, with mechanisms in place to
charge potential consumerscharge potential consumers
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications
Needs to ascertain that the app can beNeeds to ascertain that the app can be successfullysuccessfully
downloadeddownloaded to the device,to the device, executedexecuted on the device andon the device and
interactinteract with the supporting back content infrastructurewith the supporting back content infrastructure
When updates are made, you need to be sure that theWhen updates are made, you need to be sure that the
application can beapplication can be pushed out topushed out to andand acceptedaccepted by theby the
end userend user
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications
Tied to the hip with theTied to the hip with the hardwarehardware andand operatingoperating
systemssystems for which they are writtenfor which they are written
Test on theTest on the physical devicesphysical devices supported by yoursupported by your
applicationapplication
EnsureEnsure backward compatibilitybackward compatibility with each olderwith each older
generation of the device you are expected to supportgeneration of the device you are expected to support
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications
Ensure that when issues are found with your nativeEnsure that when issues are found with your native
apps, they can beapps, they can be quickly capturedquickly captured andand sharedshared
with otherswith others
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
3.3. Mobile Testing Challenges for Web ApplicationsMobile Testing Challenges for Web Applications
Understand theUnderstand the globalglobal dynamicdynamic
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
There areThere are potentially tens of thousands ofpotentially tens of thousands of
different client devicesdifferent client devices that could be used tothat could be used to
access your mobile app or website, and they mustaccess your mobile app or website, and they must
therefore all be considered when testing your mobiletherefore all be considered when testing your mobile
applicationsapplications
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Can beCan be reducedreduced to an extent, but each time youto an extent, but each time you
reduce the number of device types that you testreduce the number of device types that you test
against, you are taking a chance that your applicationagainst, you are taking a chance that your application
might not workmight not work on a device, locking out a number ofon a device, locking out a number of
potential consumerspotential consumers
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
3 options:3 options:
Test exclusively usingTest exclusively using realreal devicesdevices
Test exclusively withTest exclusively with emulatedemulated devicesdevices
Use aUse a combinationcombination of eachof each
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Test exclusively usingTest exclusively using realreal devicesdevices
Have the advantage of having all theHave the advantage of having all the limitationslimitations
andand quirksquirks present in the actual client hardware andpresent in the actual client hardware and
firmware combination in the hands of your targetfirmware combination in the hands of your target
consumersconsumers
Can beCan be expensiveexpensive
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Test exclusively usingTest exclusively using realreal devicesdevices
Can beCan be disorganizeddisorganized andand labor-intensivelabor-intensive if theif the
testing environment is not conducive to creating,testing environment is not conducive to creating,
collecting and reproducing results in a consistentcollecting and reproducing results in a consistent
mannermanner
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Test exclusively usingTest exclusively using emulatedemulated devicesdevices
RelativelyRelatively easiereasier to manageto manage
You can switch device types by simplyYou can switch device types by simply loading aloading a
new device profilenew device profile
4.4. Run on moreRun on more powerful PCspowerful PCs andand serversservers
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Test exclusively usingTest exclusively using emulatedemulated devicesdevices
Were designed forWere designed for testingtesting in mindin mind
TypicallyTypically fully instrumentedfully instrumented to capture detailedto capture detailed
diagnostics about the protocols that go back and forthdiagnostics about the protocols that go back and forth
between client and server at the various levels of thebetween client and server at the various levels of the
application stackapplication stack
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Test exclusively usingTest exclusively using emulatedemulated devicesdevices
Cost effectiveCost effective because a single platform with frequentbecause a single platform with frequent
updates of device profiles can be used to test every deviceupdates of device profiles can be used to test every device
on the market both today and tomorrowon the market both today and tomorrow
Big disadvantage is that they lack theBig disadvantage is that they lack the quirks, faultsquirks, faults andand
characteristicscharacteristics that only the real device can providethat only the real device can provide
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Test exclusively usingTest exclusively using emulatedemulated devicesdevices
May not give theMay not give the pixel-perfect accurate renderingpixel-perfect accurate rendering that youthat you
are assured to have with a real device solutionare assured to have with a real device solution
Processing power of a local PC canProcessing power of a local PC can hidehide any issues that youany issues that you
may have with themay have with the responsivenessresponsiveness of your web applicationof your web application
Not sensitiveNot sensitive to theto the ambient conditionsambient conditions that can impact thethat can impact the
behaviour of the devicebehaviour of the device
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge
Use aUse a combinationcombination of eachof each
Start testing in an emulated environment to take advantage of theStart testing in an emulated environment to take advantage of the
speedspeed andand device diversitydevice diversity that an emulator can providethat an emulator can provide
Add real devicesAdd real devices into your test plan later in the developmentinto your test plan later in the development
cycle so you can validate the applications are functioning ascycle so you can validate the applications are functioning as
expected and certify that all development requirements andexpected and certify that all development requirements and
objectives have been metobjectives have been met
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
Each mobile operator mayEach mobile operator may support multiple networksupport multiple network
technologiestechnologies including LTE, CDMA, GSM, and some use lessincluding LTE, CDMA, GSM, and some use less
common or local networking standards such as iDEN, FOMA,common or local networking standards such as iDEN, FOMA,
and TD-SCDMAand TD-SCDMA
Each network has a unique combination of networkEach network has a unique combination of network
infrastructure thatinfrastructure that tunnels the packet-based protocolstunnels the packet-based protocols usedused
by mobile networks into TCP-IP protocols used by the mobileby mobile networks into TCP-IP protocols used by the mobile
WebWeb
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
When implemented, canWhen implemented, can restrictrestrict the flow ofthe flow of
information that travels between your server and theinformation that travels between your server and the
test clienttest client
Some limit the sites that can be accessed via a phoneSome limit the sites that can be accessed via a phone
to only those approved by the operator (“to only those approved by the operator (“walledwalled
gardengarden”)”)
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
Others might use “Others might use “transcodingtranscoding” in an attempt to scale” in an attempt to scale
down fixed Web content to better fit onto mobile phones,down fixed Web content to better fit onto mobile phones,
thus expanding the number of mobile sites that can bethus expanding the number of mobile sites that can be
seenseen
SomeSome strip vital informationstrip vital information from the HTTP headersfrom the HTTP headers
that your application might depend on to providethat your application might depend on to provide
functionality or to provide device adaptationfunctionality or to provide device adaptation
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
To fully test the full network stack on a particularTo fully test the full network stack on a particular
operator’s network infrastructure, you must beoperator’s network infrastructure, you must be
connected to the target networkconnected to the target network
Traveling to every network operator that you need toTraveling to every network operator that you need to
support can besupport can be very expensivevery expensive
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
We canWe can bypassbypass the lower layers of the network andthe lower layers of the network and
simply test over the Internet or LANsimply test over the Internet or LAN
You useYou use TCP/IPTCP/IP to connect directly to the serverto connect directly to the server
and youand you ignoreignore the GPRS tunnelling systems used bythe GPRS tunnelling systems used by
network operatorsnetwork operators
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
You will need to use aYou will need to use a device simulatordevice simulator to perform theto perform the
bypassbypass
Advantage is that you willAdvantage is that you will not need to usenot need to use andand thus pay forthus pay for
airtimeairtime
Disadvantages are that is that we oftenDisadvantages are that is that we often cannot emulatecannot emulate thethe
effects and timing of the network and the various networkeffects and timing of the network and the various network
elements such as proxieselements such as proxies
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
We can use theWe can use the real networkreal network by using either phones orby using either phones or
modemsmodems
Many device emulatorsMany device emulators support modemssupport modems that allow youthat allow you
to use your emulated devices on the local networkto use your emulated devices on the local network
But again, there is the cost ofBut again, there is the cost of travelingtraveling into range of theinto range of the
networknetwork
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
One piece of useful test equipment is aOne piece of useful test equipment is a real device in thereal device in the
cloudcloud
Consists of aConsists of a physical handsetphysical handset mounted in a remote box withmounted in a remote box with
aa remote control unitremote control unit and aand a remote antennaremote antenna
The remote control unit is physically connected to theThe remote control unit is physically connected to the device’sdevice’s
screen and keypad control circuitsscreen and keypad control circuits and is capable ofand is capable of
pressing keys and collecting screen imagespressing keys and collecting screen images
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
5.5. Network: A Regional ChallengeNetwork: A Regional Challenge
Often have the ability toOften have the ability to record a testrecord a test for subsequentfor subsequent
replayreplay
Reduce theReduce the cost of travelcost of travel to foreign networksto foreign networks
Most of the companies that make this type of equipmentMost of the companies that make this type of equipment
offer the ability to “offer the ability to “rentrent” testing time on a resource that is” testing time on a resource that is
shared with others and is managed for youshared with others and is managed for you
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
6.6. Scripting: The Repeatability ChallengeScripting: The Repeatability Challenge
The method that is actually used toThe method that is actually used to execute the test scriptexecute the test script
Script execution can either beScript execution can either be manualmanual oror automatedautomated
You either write down the scripts in a document or aYou either write down the scripts in a document or a
spreadsheet, which is then used by a test engineer whospreadsheet, which is then used by a test engineer who
manually enters keystrokesmanually enters keystrokes, or you, or you run automatedrun automated
scriptsscripts that in turn evoke the keystrokes and record thethat in turn evoke the keystrokes and record the
resultsresults
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
6.6. Scripting: The Repeatability ChallengeScripting: The Repeatability Challenge
Most emulators are capable of automating testMost emulators are capable of automating test
execution using aexecution using a higher-level, abstract scriptinghigher-level, abstract scripting
languagelanguage that is not device dependentthat is not device dependent
Many automated scripting tools have a special abilityMany automated scripting tools have a special ability
to “to “spiderspider” or “” or “crawlcrawl” a mobile Web site” a mobile Web site
Testing Strategy and TacticsTesting Strategy and Tactics
for Mobile Applicationsfor Mobile Applications
7.7. SummarySummary
Invest in aInvest in a device emulatordevice emulator
Take advantage ofTake advantage of remote real devices in theremote real devices in the
cloudcloud
AutomateAutomate wherever possiblewherever possible
SummarySummary
7.7. SummarySummary
Invest in aInvest in a device emulatordevice emulator
Take advantage ofTake advantage of remote real devices in theremote real devices in the
cloudcloud
AutomateAutomate wherever possiblewherever possible
SummarySummary
The Testing PhaseThe Testing Phase
Regression TestRegression Test
Internal TestingInternal Testing
Unit TestingUnit Testing
Application TestingApplication Testing
Stress TestingStress Testing
SummarySummary
Testing your Web AppsTesting your Web Apps
ObjectivesObjectives
Process and ReportingProcess and Reporting
Tracking ResultsTracking Results
Test EnvironmentTest Environment
Usability TestingUsability Testing
SummarySummary
Testing your Web AppsTesting your Web Apps
Unit TestingUnit Testing
Verifying the HTMLVerifying the HTML
Load TestingLoad Testing
User Acceptance Test (UAT)User Acceptance Test (UAT)
Testing SecurityTesting Security
SummarySummary
Testing Strategies and Tactics for Mobile ApplicationsTesting Strategies and Tactics for Mobile Applications
ReferencesReferences
ReferencesReferences
The Testing PhaseThe Testing Phase
http://infolab.stanford.edu/~burback/watersluice/node19.htmlhttp://infolab.stanford.edu/~burback/watersluice/node19.html
10 Tips for Testing Apps for the Real World10 Tips for Testing Apps for the Real World
http://www.techrepublic.com/blog/10-things/10-tips-for-testing-apps-for-the-real-world/#http://www.techrepublic.com/blog/10-things/10-tips-for-testing-apps-for-the-real-world/#
Testing your Web AppsTesting your Web Apps
http://www.adminitrack.com/articles/TestingYourWebApps.aspxhttp://www.adminitrack.com/articles/TestingYourWebApps.aspx
Web UsabilityWeb Usability
"Don't Make Me Think! A Common Sense Approach to Web Usability" by Steve Krug and Roger Black"Don't Make Me Think! A Common Sense Approach to Web Usability" by Steve Krug and Roger Black
Testing Strategies and Tactics for Mobile ApplicationsTesting Strategies and Tactics for Mobile Applications
http://www.keynote.com/mobile-app-testing.htmlhttp://www.keynote.com/mobile-app-testing.html

More Related Content

What's hot (20)

DOCX
Testing in TFS
Sampath kumar Mohan
 
PPT
Configuration testing
Robin0590
 
PPTX
Configuration testing
Precise Testing Solution
 
PPT
Learn software testing with tech partnerz 1
Techpartnerz
 
PDF
Automated testing-whitepaper
imdurgesh
 
DOC
Testing
poojadatt
 
PDF
Types of software testing
Testbytes
 
PPTX
Test Case Management with MTM 2013
Raluca Suditu
 
PPT
Learn software testing with tech partnerz 2
Techpartnerz
 
PDF
Software reliability
Baptiste Wicht
 
PPTX
QTP Tutorial
pingkapil
 
PDF
Essential Test Management and Planning
TechWell
 
PDF
Assessing System Validation Requirements for Oracle Health Sciences iPatches ...
Perficient
 
DOC
software engineering
Subhanshu Mittal
 
PPTX
Обеспечение качества проектов средствами VSTS 2010
SQALab
 
PDF
Efficient And Effective Test Design
Justin Hunter
 
PPTX
Software Testing - A sneak preview By Srikanth
Srikanth Krishnamoorthy
 
PDF
St & internationalization
Sachin MK
 
PPT
Object oriented sad 6
Bisrat Girma
 
PDF
Unit Testing vs Integration Testing
Rock Interview
 
Testing in TFS
Sampath kumar Mohan
 
Configuration testing
Robin0590
 
Configuration testing
Precise Testing Solution
 
Learn software testing with tech partnerz 1
Techpartnerz
 
Automated testing-whitepaper
imdurgesh
 
Testing
poojadatt
 
Types of software testing
Testbytes
 
Test Case Management with MTM 2013
Raluca Suditu
 
Learn software testing with tech partnerz 2
Techpartnerz
 
Software reliability
Baptiste Wicht
 
QTP Tutorial
pingkapil
 
Essential Test Management and Planning
TechWell
 
Assessing System Validation Requirements for Oracle Health Sciences iPatches ...
Perficient
 
software engineering
Subhanshu Mittal
 
Обеспечение качества проектов средствами VSTS 2010
SQALab
 
Efficient And Effective Test Design
Justin Hunter
 
Software Testing - A sneak preview By Srikanth
Srikanth Krishnamoorthy
 
St & internationalization
Sachin MK
 
Object oriented sad 6
Bisrat Girma
 
Unit Testing vs Integration Testing
Rock Interview
 

Similar to Application Testing (20)

PPTX
Object Oriented Testing
AMITJain879
 
PPT
TEST EXECUTION AND REPORTING
suhasreddy1
 
PPT
Testing Types And Models
nazeer pasha
 
PPTX
Software testing
balamurugan.k Kalibalamurugan
 
PPTX
Software testing ppt
Heritage Institute Of Tech,India
 
PPT
12 sdd lesson testing and evaluating
Mike Cusack
 
PPT
Unit testing php-unit - phing - selenium_v2
Tricode (part of Dept)
 
PDF
Testing methodology
Dina Hanbazazah
 
PPT
Testing strategies
chaitanya_yarlagadda
 
PPTX
Introduction to testing.
Jithinctzz
 
PPTX
Software testing
Bhagyashree pathak
 
PPTX
https://www.slideshare.net/slideshow/system-testing-60970402/60970402Software...
IJRTETVedantaPublica
 
PPTX
Unit testing & TDD concepts with best practice guidelines.
Mohamed Taman
 
PPTX
Testing frameworks
Sakthi K
 
PPT
Basic software-testing-concepts
medsherb
 
DOCX
Testing concept definition
Vivek V
 
PPTX
softwaretestingppt-FINAL-PPT-1
FAIZALSAIYED
 
PPT
Software testing
suneeth kumar
 
PPT
Software testing2
suneeth kumar
 
Object Oriented Testing
AMITJain879
 
TEST EXECUTION AND REPORTING
suhasreddy1
 
Testing Types And Models
nazeer pasha
 
Software testing ppt
Heritage Institute Of Tech,India
 
12 sdd lesson testing and evaluating
Mike Cusack
 
Unit testing php-unit - phing - selenium_v2
Tricode (part of Dept)
 
Testing methodology
Dina Hanbazazah
 
Testing strategies
chaitanya_yarlagadda
 
Introduction to testing.
Jithinctzz
 
Software testing
Bhagyashree pathak
 
https://www.slideshare.net/slideshow/system-testing-60970402/60970402Software...
IJRTETVedantaPublica
 
Unit testing & TDD concepts with best practice guidelines.
Mohamed Taman
 
Testing frameworks
Sakthi K
 
Basic software-testing-concepts
medsherb
 
Testing concept definition
Vivek V
 
softwaretestingppt-FINAL-PPT-1
FAIZALSAIYED
 
Software testing
suneeth kumar
 
Software testing2
suneeth kumar
 
Ad

More from Reggie Niccolo Santos (15)

PPT
Securing PHP Applications
Reggie Niccolo Santos
 
PDF
Introduction to Web 2.0
Reggie Niccolo Santos
 
PDF
UI / UX Engineering for Web Applications
Reggie Niccolo Santos
 
PPTX
Computability - Tractable, Intractable and Non-computable Function
Reggie Niccolo Santos
 
PDF
Algorithms - Aaron Bloomfield
Reggie Niccolo Santos
 
PPT
Program Logic Formulation - Ohio State University
Reggie Niccolo Santos
 
PDF
Abstract Data Types
Reggie Niccolo Santos
 
PDF
Computational Thinking and Data Representations
Reggie Niccolo Santos
 
PDF
Number Systems
Reggie Niccolo Santos
 
PDF
Introduction to Game Development
Reggie Niccolo Santos
 
PPT
Application Security
Reggie Niccolo Santos
 
PPT
MySQL Transactions
Reggie Niccolo Santos
 
PPT
MySQL Cursors
Reggie Niccolo Santos
 
PPT
MySQL Views
Reggie Niccolo Santos
 
Securing PHP Applications
Reggie Niccolo Santos
 
Introduction to Web 2.0
Reggie Niccolo Santos
 
UI / UX Engineering for Web Applications
Reggie Niccolo Santos
 
Computability - Tractable, Intractable and Non-computable Function
Reggie Niccolo Santos
 
Algorithms - Aaron Bloomfield
Reggie Niccolo Santos
 
Program Logic Formulation - Ohio State University
Reggie Niccolo Santos
 
Abstract Data Types
Reggie Niccolo Santos
 
Computational Thinking and Data Representations
Reggie Niccolo Santos
 
Number Systems
Reggie Niccolo Santos
 
Introduction to Game Development
Reggie Niccolo Santos
 
Application Security
Reggie Niccolo Santos
 
MySQL Transactions
Reggie Niccolo Santos
 
MySQL Cursors
Reggie Niccolo Santos
 
Ad

Recently uploaded (20)

PDF
What companies do with Pharo (ESUG 2025)
ESUG
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
AI Image Enhancer: Revolutionizing Visual Quality”
docmasoom
 
PDF
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 
PPT
Brief History of Python by Learning Python in three hours
adanechb21
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PDF
How Agentic AI Networks are Revolutionizing Collaborative AI Ecosystems in 2025
ronakdubey419
 
PDF
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
 
PPTX
Farrell__10e_ch04_PowerPoint.pptx Programming Logic and Design slides
bashnahara11
 
PDF
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
 
PDF
AWS_Agentic_AI_in_Indian_BFSI_A_Strategic_Blueprint_for_Customer.pdf
siddharthnetsavvies
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PDF
Troubleshooting Virtual Threads in Java!
Tier1 app
 
What companies do with Pharo (ESUG 2025)
ESUG
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
AI Image Enhancer: Revolutionizing Visual Quality”
docmasoom
 
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 
Brief History of Python by Learning Python in three hours
adanechb21
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Activate_Methodology_Summary presentatio
annapureddyn
 
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
How Agentic AI Networks are Revolutionizing Collaborative AI Ecosystems in 2025
ronakdubey419
 
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
 
Farrell__10e_ch04_PowerPoint.pptx Programming Logic and Design slides
bashnahara11
 
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
 
AWS_Agentic_AI_in_Indian_BFSI_A_Strategic_Blueprint_for_Customer.pdf
siddharthnetsavvies
 
Presentation about variables and constant.pptx
kr2589474
 
Troubleshooting Virtual Threads in Java!
Tier1 app
 

Application Testing

  • 1. Application TestingApplication Testing Reggie Niccolo SantosReggie Niccolo Santos UP ITDCUP ITDC
  • 2. OutlineOutline The Testing PhaseThe Testing Phase Testing your Web AppsTesting your Web Apps Testing Strategies and Tactics for Mobile ApplicationsTesting Strategies and Tactics for Mobile Applications ReferencesReferences
  • 3. The Testing PhaseThe Testing Phase In many software engineering methodologies, aIn many software engineering methodologies, a separateseparate phase performed by aphase performed by a differentdifferent team afterteam after the implementation is completedthe implementation is completed
  • 4. The Testing PhaseThe Testing Phase Regression TestRegression Test Internal TestingInternal Testing Unit TestingUnit Testing Application TestingApplication Testing Stress TestingStress Testing
  • 5. Regression TestRegression Test Form aForm a suitesuite of programs that test one or moreof programs that test one or more featuresfeatures ofof the systemthe system A valid regression test generatesA valid regression test generates verified resultsverified results ““gold standardgold standard”” Validity driven by the rValidity driven by the requirement documentequirement document In practice, theIn practice, the implementation teamimplementation team is responsibleis responsible for validity interpretationfor validity interpretation
  • 6. Regression TestRegression Test As development continues, more tests are added, while oldAs development continues, more tests are added, while old tests may remain validtests may remain valid Because of new development, an old test may no longerBecause of new development, an old test may no longer be validbe valid If this is the case, the old test results areIf this is the case, the old test results are alteredaltered in thein the “gold standard” to“gold standard” to matchmatch the current expectationsthe current expectations The test suite is run generating new resultsThe test suite is run generating new results
  • 7. Internal TestingInternal Testing Make sure allMake sure all internal, non-customer-visibleinternal, non-customer-visible componentscomponents work wellwork well Deals withDeals with low-levellow-level implementationimplementation EachEach functionfunction oror componentcomponent is testedis tested Accomplished by theAccomplished by the implementation teamsimplementation teams
  • 8. Internal TestingInternal Testing Clear-box/white-box testingClear-box/white-box testing All details areAll details are visiblevisible to the testto the test Internal limitsInternal limits are tested hereare tested here
  • 9. Unit TestingUnit Testing Make sure allMake sure all customer-visible componentscustomer-visible components workwork wellwell Deals with testing aDeals with testing a unit as a wholeunit as a whole Test theTest the interaction of many functionsinteraction of many functions butbut confineconfine the test withinthe test within one unitone unit Supporting test code, sometimes calledSupporting test code, sometimes called scaffoldingscaffolding,, may be necessary to support an individual testmay be necessary to support an individual test
  • 10. Unit TestingUnit Testing Driven by theDriven by the architecture and implementationarchitecture and implementation teamsteams Black-box testingBlack-box testing because only thebecause only the details of thedetails of the interface are visibleinterface are visible to the testto the test Limits that areLimits that are globalglobal to a unit are tested hereto a unit are tested here
  • 11. Application TestingApplication Testing Make sure the application can completeMake sure the application can complete allall scenariosscenarios Driven by scenarios from theDriven by scenarios from the analysis teamanalysis team Application limits and featuresApplication limits and features are tested hereare tested here
  • 12. Application TestingApplication Testing MustMust successfully execute all scenariossuccessfully execute all scenarios before it isbefore it is ready for general customer availabilityready for general customer availability Represents theRepresents the bulkbulk of the testing done by the industryof the testing done by the industry Unlike the internal and unit testing, which areUnlike the internal and unit testing, which are programmed, these tests are usuallyprogrammed, these tests are usually driven by scriptsdriven by scripts that run the system with a collection of parameters andthat run the system with a collection of parameters and collect resultscollect results
  • 13. Stress TestingStress Testing Run the application in an environment that isRun the application in an environment that is moremore stressfulstressful than the target environmentthan the target environment Deals with theDeals with the qualityquality of the application in theof the application in the environmentenvironment Requires a joint effort fromRequires a joint effort from all teamsall teams
  • 14. Stress TestingStress Testing Test environment established withTest environment established with many testingmany testing stationsstations At each station, aAt each station, a script is executingscript is executing the systemthe system These scripts are usually based on the regression suiteThese scripts are usually based on the regression suite More and more stations are added, all simultaneouslyMore and more stations are added, all simultaneously hammering on the system, until the systemhammering on the system, until the system breaksbreaks
  • 15. Stress TestingStress Testing The system is repaired and the stress test is repeatedThe system is repaired and the stress test is repeated until a level of stress is reached that isuntil a level of stress is reached that is higher thanhigher than expectedexpected to be present at a customer siteto be present at a customer site Race conditionsRace conditions andand memory leaksmemory leaks are oftenare often found under stress testingfound under stress testing
  • 16. Race ConditionRace Condition Conflict betweenConflict between at least twoat least two teststests Each test works correctly when done inEach test works correctly when done in isolationisolation When the two tests are run in parallel, one or both ofWhen the two tests are run in parallel, one or both of the teststhe tests failfail Usually due to anUsually due to an incorrectly managed lockincorrectly managed lock
  • 17. Memory LeakMemory Leak Happens when a testHappens when a test leaves allocated memoryleaves allocated memory behindbehind and does not correctly return the memory toand does not correctly return the memory to the memory allocation schemethe memory allocation scheme The test seems to run correctly, but after beingThe test seems to run correctly, but after being exercised several times,exercised several times, available memory isavailable memory is reducedreduced until the system failsuntil the system fails
  • 18. Testing your Web AppsTesting your Web Apps 1.1. ObjectivesObjectives Establish your testing objectivesEstablish your testing objectives up frontup front and make sureand make sure that they arethat they are measurablemeasurable Make sure your objectives areMake sure your objectives are prioritizedprioritized Ask yourself questions like:Ask yourself questions like: 1.1. ““What is most important:What is most important: minimal defectsminimal defects oror time-to-time-to- marketmarket?”?”
  • 19. Testing your Web AppsTesting your Web Apps 2.2. Process and ReportingProcess and Reporting Make sure that everyone on your testing teamMake sure that everyone on your testing team knows his or herknows his or her rolerole WhoWho should reportshould report whatwhat toto whomwhom andand whenwhen?? Define yourDefine your testing processtesting process
  • 20. Testing your Web AppsTesting your Web Apps 2.2. Process and ReportingProcess and Reporting Guide questions:Guide questions: HowHow will issues be reported?will issues be reported? WhoWho will assign issues?will assign issues? HowHow will issues be categorized?will issues be categorized?
  • 21. Testing your Web AppsTesting your Web Apps 2.2. Process and ReportingProcess and Reporting Guide questions:Guide questions: WhoWho needsneeds whatwhat report andreport and whenwhen do they need it?do they need it? 2.2. Are team meetings scheduledAre team meetings scheduled in advancein advance or scheduledor scheduled asas neededneeded?? Organize your team in a way thatOrganize your team in a way that supportssupports your testingyour testing objectives and takes into account theobjectives and takes into account the individualindividual personalitiespersonalities on your teamon your team
  • 22. Testing your Web AppsTesting your Web Apps 3.3. Tracking ResultsTracking Results You will want a way to easilyYou will want a way to easily store, organize andstore, organize and distribute informationdistribute information about bugs, issues, andabout bugs, issues, and defects to the appropriate technical team membersdefects to the appropriate technical team members You will also need a way toYou will also need a way to keep managementkeep management informedinformed of the status of your testing effortsof the status of your testing efforts e.g.e.g. AdminiTrack.comAdminiTrack.com
  • 23. Testing your Web AppsTesting your Web Apps 4.4. Test EnvironmentTest Environment Separate from yourSeparate from your developmentdevelopment andand productionproduction environmentenvironment Includes aIncludes a separate web server, databaseseparate web server, database server, and application serverserver, and application server if applicableif applicable
  • 24. Testing your Web AppsTesting your Web Apps 4.4. Test EnvironmentTest Environment Create an explicitly defined procedure forCreate an explicitly defined procedure for movingmoving codecode to and from your test environment and maketo and from your test environment and make sure the procedure is followedsure the procedure is followed Work with your development team to make sureWork with your development team to make sure each new version of source code to be tested iseach new version of source code to be tested is uniquely identifieduniquely identified
  • 25. Testing your Web AppsTesting your Web Apps 5.5. Usability TestingUsability Testing Looking at aspects of your web application that affect theLooking at aspects of your web application that affect the user’s experienceuser’s experience Guide questions:Guide questions: HowHow easyeasy is it to navigate through your web application?is it to navigate through your web application? Is itIs it obviousobvious to the user which actions are available to himto the user which actions are available to him or her?or her?
  • 26. Testing your Web AppsTesting your Web Apps 5.5. Usability TestingUsability Testing Guide questions:Guide questions: Is the look-and-feel of your web applicationIs the look-and-feel of your web application consistentconsistent from page to page, including font sizes and colorsfrom page to page, including font sizes and colors Design forDesign for accessibilityaccessibility especially if it is a legalespecially if it is a legal requirementrequirement http://www.w3.org/TR/AERThttp://www.w3.org/TR/AERT
  • 27. Testing your Web AppsTesting your Web Apps 6.6. Unit TestingUnit Testing Focused on verifyingFocused on verifying smallsmall portions of functionalityportions of functionality e.g. range checkinge.g. range checking
  • 28. Testing your Web AppsTesting your Web Apps 7.7. Verifying the HTMLVerifying the HTML World Wide Web ConsortiumWorld Wide Web Consortium's free HTML's free HTML Validation ServiceValidation Service http://validator.w3.orghttp://validator.w3.org Net MechanicNet Mechanic http://www.netmechanic.comhttp://www.netmechanic.com
  • 29. Testing your Web AppsTesting your Web Apps 7.7. Verifying the HTMLVerifying the HTML Make sure that your syntax is correctMake sure that your syntax is correct Opening and closing tags matchOpening and closing tags match
  • 30. Testing your Web AppsTesting your Web Apps 7.7. Verifying the HTMLVerifying the HTML Verify how your pagesVerify how your pages looklook inin different browsers, atdifferent browsers, at different screen resolutionsdifferent screen resolutions, and on, and on differentdifferent operating systemsoperating systems Create aCreate a profileprofile of your target audience and makeof your target audience and make some decision on what browsers you will support, onsome decision on what browsers you will support, on which operating systems, and at what screen resolutionswhich operating systems, and at what screen resolutions
  • 31. Testing your Web AppsTesting your Web Apps 8.8. Load TestingLoad Testing You want to simulate how users will use your webYou want to simulate how users will use your web application in theapplication in the real worldreal world TheThe earlierearlier you perform the load testing the betteryou perform the load testing the better Performance tuningPerformance tuning should be tightly integratedshould be tightly integrated with the design of your applicationwith the design of your application
  • 32. Testing your Web AppsTesting your Web Apps 8.8. Load TestingLoad Testing Try to make sure that all of your pages load inTry to make sure that all of your pages load in 1515 seconds or lessseconds or less Depends on yourDepends on your particular applicationparticular application and theand the expectations of the people using itexpectations of the people using it
  • 33. Testing your Web AppsTesting your Web Apps 9.9. User Acceptance Testing (UAT)User Acceptance Testing (UAT) You are making sure your web applicationYou are making sure your web application fitsfits thethe use which it was intendeduse which it was intended One way is to set up aOne way is to set up a beta testbeta test
  • 34. Testing your Web AppsTesting your Web Apps 10.10. Testing SecurityTesting Security You need to test howYou need to test how securesecure your web applicationyour web application is from bothis from both externalexternal andand internalinternal threatsthreats Should be planned for and verified byShould be planned for and verified by qualityquality security specialistssecurity specialists
  • 35. Testing your Web AppsTesting your Web Apps 10.10. Testing SecurityTesting Security Additional resources:Additional resources: CERT Coordination CenterCERT Coordination Center http://www.cert.org/http://www.cert.org/ Computer Security Resource CenterComputer Security Resource Center http://csrc.nist.gov/http://csrc.nist.gov/
  • 36. Testing your Web AppsTesting your Web Apps 10.10. Testing SecurityTesting Security Make sure to also performMake sure to also perform ongoing securityongoing security auditsaudits to ensure your web application remainsto ensure your web application remains secure over time as people and technology changesecure over time as people and technology change
  • 37. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 1.1. Goal is not to find errors but to understand theGoal is not to find errors but to understand the qualityquality of your offeringof your offering Does itDoes it workwork?? Does it functionDoes it function as expectedas expected?? Will it meet theWill it meet the needsneeds of your users, so that theyof your users, so that they come back again and again?come back again and again?
  • 38. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications The app download is often controlled by theThe app download is often controlled by the gate-gate- keeping app storekeeping app store, with mechanisms in place to, with mechanisms in place to charge potential consumerscharge potential consumers
  • 39. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications Needs to ascertain that the app can beNeeds to ascertain that the app can be successfullysuccessfully downloadeddownloaded to the device,to the device, executedexecuted on the device andon the device and interactinteract with the supporting back content infrastructurewith the supporting back content infrastructure When updates are made, you need to be sure that theWhen updates are made, you need to be sure that the application can beapplication can be pushed out topushed out to andand acceptedaccepted by theby the end userend user
  • 40. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications Tied to the hip with theTied to the hip with the hardwarehardware andand operatingoperating systemssystems for which they are writtenfor which they are written Test on theTest on the physical devicesphysical devices supported by yoursupported by your applicationapplication EnsureEnsure backward compatibilitybackward compatibility with each olderwith each older generation of the device you are expected to supportgeneration of the device you are expected to support
  • 41. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 2.2. Mobile Testing for Native ApplicationsMobile Testing for Native Applications Ensure that when issues are found with your nativeEnsure that when issues are found with your native apps, they can beapps, they can be quickly capturedquickly captured andand sharedshared with otherswith others
  • 42. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 3.3. Mobile Testing Challenges for Web ApplicationsMobile Testing Challenges for Web Applications Understand theUnderstand the globalglobal dynamicdynamic
  • 43. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge There areThere are potentially tens of thousands ofpotentially tens of thousands of different client devicesdifferent client devices that could be used tothat could be used to access your mobile app or website, and they mustaccess your mobile app or website, and they must therefore all be considered when testing your mobiletherefore all be considered when testing your mobile applicationsapplications
  • 44. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Can beCan be reducedreduced to an extent, but each time youto an extent, but each time you reduce the number of device types that you testreduce the number of device types that you test against, you are taking a chance that your applicationagainst, you are taking a chance that your application might not workmight not work on a device, locking out a number ofon a device, locking out a number of potential consumerspotential consumers
  • 45. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge 3 options:3 options: Test exclusively usingTest exclusively using realreal devicesdevices Test exclusively withTest exclusively with emulatedemulated devicesdevices Use aUse a combinationcombination of eachof each
  • 46. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Test exclusively usingTest exclusively using realreal devicesdevices Have the advantage of having all theHave the advantage of having all the limitationslimitations andand quirksquirks present in the actual client hardware andpresent in the actual client hardware and firmware combination in the hands of your targetfirmware combination in the hands of your target consumersconsumers Can beCan be expensiveexpensive
  • 47. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Test exclusively usingTest exclusively using realreal devicesdevices Can beCan be disorganizeddisorganized andand labor-intensivelabor-intensive if theif the testing environment is not conducive to creating,testing environment is not conducive to creating, collecting and reproducing results in a consistentcollecting and reproducing results in a consistent mannermanner
  • 48. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Test exclusively usingTest exclusively using emulatedemulated devicesdevices RelativelyRelatively easiereasier to manageto manage You can switch device types by simplyYou can switch device types by simply loading aloading a new device profilenew device profile 4.4. Run on moreRun on more powerful PCspowerful PCs andand serversservers
  • 49. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Test exclusively usingTest exclusively using emulatedemulated devicesdevices Were designed forWere designed for testingtesting in mindin mind TypicallyTypically fully instrumentedfully instrumented to capture detailedto capture detailed diagnostics about the protocols that go back and forthdiagnostics about the protocols that go back and forth between client and server at the various levels of thebetween client and server at the various levels of the application stackapplication stack
  • 50. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Test exclusively usingTest exclusively using emulatedemulated devicesdevices Cost effectiveCost effective because a single platform with frequentbecause a single platform with frequent updates of device profiles can be used to test every deviceupdates of device profiles can be used to test every device on the market both today and tomorrowon the market both today and tomorrow Big disadvantage is that they lack theBig disadvantage is that they lack the quirks, faultsquirks, faults andand characteristicscharacteristics that only the real device can providethat only the real device can provide
  • 51. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Test exclusively usingTest exclusively using emulatedemulated devicesdevices May not give theMay not give the pixel-perfect accurate renderingpixel-perfect accurate rendering that youthat you are assured to have with a real device solutionare assured to have with a real device solution Processing power of a local PC canProcessing power of a local PC can hidehide any issues that youany issues that you may have with themay have with the responsivenessresponsiveness of your web applicationof your web application Not sensitiveNot sensitive to theto the ambient conditionsambient conditions that can impact thethat can impact the behaviour of the devicebehaviour of the device
  • 52. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 4.4. Devices: The Biggest Mobile Testing ChallengeDevices: The Biggest Mobile Testing Challenge Use aUse a combinationcombination of eachof each Start testing in an emulated environment to take advantage of theStart testing in an emulated environment to take advantage of the speedspeed andand device diversitydevice diversity that an emulator can providethat an emulator can provide Add real devicesAdd real devices into your test plan later in the developmentinto your test plan later in the development cycle so you can validate the applications are functioning ascycle so you can validate the applications are functioning as expected and certify that all development requirements andexpected and certify that all development requirements and objectives have been metobjectives have been met
  • 53. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge Each mobile operator mayEach mobile operator may support multiple networksupport multiple network technologiestechnologies including LTE, CDMA, GSM, and some use lessincluding LTE, CDMA, GSM, and some use less common or local networking standards such as iDEN, FOMA,common or local networking standards such as iDEN, FOMA, and TD-SCDMAand TD-SCDMA Each network has a unique combination of networkEach network has a unique combination of network infrastructure thatinfrastructure that tunnels the packet-based protocolstunnels the packet-based protocols usedused by mobile networks into TCP-IP protocols used by the mobileby mobile networks into TCP-IP protocols used by the mobile WebWeb
  • 54. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge When implemented, canWhen implemented, can restrictrestrict the flow ofthe flow of information that travels between your server and theinformation that travels between your server and the test clienttest client Some limit the sites that can be accessed via a phoneSome limit the sites that can be accessed via a phone to only those approved by the operator (“to only those approved by the operator (“walledwalled gardengarden”)”)
  • 55. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge Others might use “Others might use “transcodingtranscoding” in an attempt to scale” in an attempt to scale down fixed Web content to better fit onto mobile phones,down fixed Web content to better fit onto mobile phones, thus expanding the number of mobile sites that can bethus expanding the number of mobile sites that can be seenseen SomeSome strip vital informationstrip vital information from the HTTP headersfrom the HTTP headers that your application might depend on to providethat your application might depend on to provide functionality or to provide device adaptationfunctionality or to provide device adaptation
  • 56. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge To fully test the full network stack on a particularTo fully test the full network stack on a particular operator’s network infrastructure, you must beoperator’s network infrastructure, you must be connected to the target networkconnected to the target network Traveling to every network operator that you need toTraveling to every network operator that you need to support can besupport can be very expensivevery expensive
  • 57. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge We canWe can bypassbypass the lower layers of the network andthe lower layers of the network and simply test over the Internet or LANsimply test over the Internet or LAN You useYou use TCP/IPTCP/IP to connect directly to the serverto connect directly to the server and youand you ignoreignore the GPRS tunnelling systems used bythe GPRS tunnelling systems used by network operatorsnetwork operators
  • 58. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge You will need to use aYou will need to use a device simulatordevice simulator to perform theto perform the bypassbypass Advantage is that you willAdvantage is that you will not need to usenot need to use andand thus pay forthus pay for airtimeairtime Disadvantages are that is that we oftenDisadvantages are that is that we often cannot emulatecannot emulate thethe effects and timing of the network and the various networkeffects and timing of the network and the various network elements such as proxieselements such as proxies
  • 59. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge We can use theWe can use the real networkreal network by using either phones orby using either phones or modemsmodems Many device emulatorsMany device emulators support modemssupport modems that allow youthat allow you to use your emulated devices on the local networkto use your emulated devices on the local network But again, there is the cost ofBut again, there is the cost of travelingtraveling into range of theinto range of the networknetwork
  • 60. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge One piece of useful test equipment is aOne piece of useful test equipment is a real device in thereal device in the cloudcloud Consists of aConsists of a physical handsetphysical handset mounted in a remote box withmounted in a remote box with aa remote control unitremote control unit and aand a remote antennaremote antenna The remote control unit is physically connected to theThe remote control unit is physically connected to the device’sdevice’s screen and keypad control circuitsscreen and keypad control circuits and is capable ofand is capable of pressing keys and collecting screen imagespressing keys and collecting screen images
  • 61. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 5.5. Network: A Regional ChallengeNetwork: A Regional Challenge Often have the ability toOften have the ability to record a testrecord a test for subsequentfor subsequent replayreplay Reduce theReduce the cost of travelcost of travel to foreign networksto foreign networks Most of the companies that make this type of equipmentMost of the companies that make this type of equipment offer the ability to “offer the ability to “rentrent” testing time on a resource that is” testing time on a resource that is shared with others and is managed for youshared with others and is managed for you
  • 62. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 6.6. Scripting: The Repeatability ChallengeScripting: The Repeatability Challenge The method that is actually used toThe method that is actually used to execute the test scriptexecute the test script Script execution can either beScript execution can either be manualmanual oror automatedautomated You either write down the scripts in a document or aYou either write down the scripts in a document or a spreadsheet, which is then used by a test engineer whospreadsheet, which is then used by a test engineer who manually enters keystrokesmanually enters keystrokes, or you, or you run automatedrun automated scriptsscripts that in turn evoke the keystrokes and record thethat in turn evoke the keystrokes and record the resultsresults
  • 63. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 6.6. Scripting: The Repeatability ChallengeScripting: The Repeatability Challenge Most emulators are capable of automating testMost emulators are capable of automating test execution using aexecution using a higher-level, abstract scriptinghigher-level, abstract scripting languagelanguage that is not device dependentthat is not device dependent Many automated scripting tools have a special abilityMany automated scripting tools have a special ability to “to “spiderspider” or “” or “crawlcrawl” a mobile Web site” a mobile Web site
  • 64. Testing Strategy and TacticsTesting Strategy and Tactics for Mobile Applicationsfor Mobile Applications 7.7. SummarySummary Invest in aInvest in a device emulatordevice emulator Take advantage ofTake advantage of remote real devices in theremote real devices in the cloudcloud AutomateAutomate wherever possiblewherever possible
  • 65. SummarySummary 7.7. SummarySummary Invest in aInvest in a device emulatordevice emulator Take advantage ofTake advantage of remote real devices in theremote real devices in the cloudcloud AutomateAutomate wherever possiblewherever possible
  • 66. SummarySummary The Testing PhaseThe Testing Phase Regression TestRegression Test Internal TestingInternal Testing Unit TestingUnit Testing Application TestingApplication Testing Stress TestingStress Testing
  • 67. SummarySummary Testing your Web AppsTesting your Web Apps ObjectivesObjectives Process and ReportingProcess and Reporting Tracking ResultsTracking Results Test EnvironmentTest Environment Usability TestingUsability Testing
  • 68. SummarySummary Testing your Web AppsTesting your Web Apps Unit TestingUnit Testing Verifying the HTMLVerifying the HTML Load TestingLoad Testing User Acceptance Test (UAT)User Acceptance Test (UAT) Testing SecurityTesting Security
  • 69. SummarySummary Testing Strategies and Tactics for Mobile ApplicationsTesting Strategies and Tactics for Mobile Applications ReferencesReferences
  • 70. ReferencesReferences The Testing PhaseThe Testing Phase http://infolab.stanford.edu/~burback/watersluice/node19.htmlhttp://infolab.stanford.edu/~burback/watersluice/node19.html 10 Tips for Testing Apps for the Real World10 Tips for Testing Apps for the Real World http://www.techrepublic.com/blog/10-things/10-tips-for-testing-apps-for-the-real-world/#http://www.techrepublic.com/blog/10-things/10-tips-for-testing-apps-for-the-real-world/# Testing your Web AppsTesting your Web Apps http://www.adminitrack.com/articles/TestingYourWebApps.aspxhttp://www.adminitrack.com/articles/TestingYourWebApps.aspx Web UsabilityWeb Usability "Don't Make Me Think! A Common Sense Approach to Web Usability" by Steve Krug and Roger Black"Don't Make Me Think! A Common Sense Approach to Web Usability" by Steve Krug and Roger Black Testing Strategies and Tactics for Mobile ApplicationsTesting Strategies and Tactics for Mobile Applications http://www.keynote.com/mobile-app-testing.htmlhttp://www.keynote.com/mobile-app-testing.html