SlideShare a Scribd company logo
1 of 64
Software testing banking
applications for mobile platforms
                    Christian Ramírez
Context
Design Considerations   Agenda
Test Design
To work
Presentation
Presentation
•   My name is Christian Ramírez
•   Computer Engineer
•   QA & testing Architect
•   Over 8 years of experience in QA and software
    testing




                    Presentation
Context
Context
• Mobile Banking
  – provision and availment of banking- and financial
    services
  – help of mobile telecommunication devices
  – Services
     • Facilities to conduct bank and stock market transactions
     • Administer accounts
     • Access customised information.




                                               Context
Context

• The first mobile phone-based banking service
  was launched in 1997 by Merita Bank of
  Finland, using SMS.




                                   Context
Context

• The mobile banking market has grown
  significantly




                                 Context
Context

• Mobile Banking includes a wide range of
  services.
  – These services may be categorised as following
     • Mobile Accounting
     • Mobile Brokerage
     • Mobile Financial Information




                                        Context
Context

• What is the challenge?
  – Today's banking applications are being used on
    smartphones
     • Web
     • Native
  – Manual testing is inefficient and doesn't scale
  – All platforms are different




                                          Context
Design Considerations
Design Considerations
• We need look beyond of the evident




Sword of omens,
give me sight beyond sight



                    Design Considerations
Design Considerations
• You don’t need to reinvent the wheel

  – Same domain same rules
  – Reuse




                    Design Considerations
Design Considerations

           Features




             Test
Devices                Locations
          Complexity




            Carriers




          Design Considerations
Design Considerations




      Design Considerations
Design Considerations
• Round 1
  – Traditional apps    VS   Mobile Apps




                       Design Considerations
Design Considerations
• Round 2
  Native Apps   vs   Web Apps




                Design Considerations
Design Considerations
• Manual testing is
  inefficient, but
  necessary.


• Test automation is logical
  solution.
  – Use test automation
    correctly



                      Design Considerations
Design Considerations
• Effective Test automation
  – Automate as much as possible
  – Focus in solve real problems
  – Think different, this kind of applications are very
    sensitive to external factors
  – Be a pioneer




                       Design Considerations
Test Design
Test Design
• Testing Framework
             Test Logic
             • Business Logic
             • Verification and Validation logic

             Dsl Application Driver
             • API


             Technical Driver
             • API
             • Access to technical data storage

             Software Under Test
             • Web
             • Native


                                            Test Design
Test Design
• Divide and conquer
  – Separate all parts as much as possible

                         Test Data




                                           • Reliability
                                           • Flexibility
                              Test Logic   • Maintainability
                                           • Clarity
                                           • Stability




                        Application
                          Driver




                                           Test Design
Test Design
• Promote the reuse
  – Design for reuse
  – Design with reuse
  – Improve your productivity
  – Reuse among platforms and domains
     • Business logic




                                 Test Design
Test Design
• Testability
  – The solution to all problems
     • the quality of a software design that allows for automated
       testing in a cost-effective manner.

                     Repeatable




          Easy to                   Easy to
           write    Testability   understand




                        Fast
                                         Test Design
Test Design
• TDD
  – Is the strategy of starting the development process by
    the test cases and then provide the software that
    satisfies these tests

             Red -> Green -> Refactor

  Red: Create an automated test. Run it. It should fail
  Green: Create the code to pass the tests
  Refactor: Clean up the code


                                   Test Design
Test Design
• TDD
  – Unit tests
     • Written by programmers
     • For programmers
     • In a programming language




                                   Test Design
Test Design
• BDD




                 Test Design
Test Design
• BDD
   – Beer Driven Development???




                            Test Design
Test Design
• BDD
  – Evolution in the thinking behind TDD
  – Common vocabulary between business, programmers
    and testers
  – BDD helps to achivement to increse the testability
  – Use a DSL(Domain Specific Language) to explain the
    behavior of the applications
  – Useful to write acceptance tests
    • A lot of tools
    • A lot of DSLs


                                Test Design
Test Design
• BDD
  – Use text scenarios
     • Given
     • When
     • Then


  – Defining steps




                              Test Design
Test Design
• BDD
  – DSL
     • Almost programming language dedicated to a particular
       problem domain
  – In banking apps is very useful to create acceptance
    tests
     • High level – tests are in the language of product
       management, at the user level
     • Readable – product management can understand them
     • Writeable - easy for developer or QA to write new test
     • Extendible – tests base is able to grow with DSL


                                     Test Design
To Work
To Work
• Test Automation
  – Almost always is possible automate all tests of a
    mobile banking application

     UI


     System


     Module


     Code(unit)
                                  To Work
To Work
• Test Strategy
  – Unit Test
        – Internal logic
  – Gui Test
        – Usability
        – Navigation
        – Always consider varied end user expectations




                                          To Work
To Work
• Test Strategy
  – Separate generic from specific
     • Many mobile applications include algorithms, etc
       unrelated to the mobile platform or technology
     • These should be separated from platform / technology
       specific code
     • Use 'desktop' test automation to test generic code
     • Consider platform-specific test automation once the
       generic code has good automated tests




                                     To Work
To Work
• Data collection
  – Screenshots
     • DDMS for Android
  – Logs
     • adb shell for Android




                                To Work
To Work
• Test Strategy




 Emulators                       Real devices
 • Android SDK                   in real
                  Real Devices   network
 • iOS SDK
                   in the lab
                                 • Carrier
                                 • Network




                             To Work
To Work
• Test Strategy for client applications
  – Unit testing
  – System testing when practical
  – Manual testing on devices
  – Use emulators with network analyzers
  – Custom clients help: Diagnose client capabilities
  – Identify and isolate the cause of problems
  – Model-based testing helps drive the client




                                  To Work
To Work
• Testing on android platform
  – SDK integrates a testing framework
  – It’s based on junit3
  – Supports
     •   Unit tests
     •   Functional tests
     •   Activity tests
     •   Mocks




                                  To Work
To Work
• Testing on android platform
  – Functional testing in native apps
     • You can use activities
          –   Pieces of code executables
          –   Interact with user
          –   Get data
          –   etc
     •   Activity can be manipulated
     •   You can use sendKeys() to simulate user interaction
     •   Is possible do isolated testing of a single activity
     •   Tests can be annotated with @UiThreadTest



                                           To Work
To Work
• Testing on android platform
  – Test application in controlled enviroment
  – Basic lifecycle
     • onCreate() called after createApplication()
     • tearDown() calls onDestroy()
  – Mock context can be injected
  – Application can be terminated with
     • terminateApplication()




                                       To Work
To Work
• Testing on android platform
  – Some methods should be avoided and will throw
    exceptions if called




                                To Work
To Work
• Testing on android platform
  – Framework support to test Services
  – Lifecycle
     • onCreated() called after startService() or bindService()
     • Depending on how was started tearDown() calls
       appropiate method
  – Mock object can be injected by
     • setApplication()
     • setContext()




                                       To Work
To Work
• Testing on android platform
     • Base class that can be extended to support different
       requirements
     • You can use this if you need
        – Test customs Views
        – Test permissions
        – Access Resources




                                      To Work
To Work
• Testing on android platform
  – Assertions View
     •   Aligned in several ways
     •   View agrouped
     •   Is on screen
     •   Has specific screen coordinates




                                           To Work
To Work
• Testing on android platform
  – Simulate complex user behavior
  – Use the methods to generate touch events
     •   clickView() to simulate touching
     •   dragX() to touch and drag
     •   longClick() for touching and holding
     •   scrollX()to simulate scrolling
     •   tapView() to touch and release quickly




                                        To Work
To Work
• Testing on android platform
  – Mocks
  – All classes has non functional methods
     •   MockApplication
     •   MockContentResolver
     •   MockContext
     •   MockDialogInterface
     •   MockPackageManager
     •   MockResources




                                 To Work
To Work
• Testing strategy for browser applications in
  both platforms(iOS and Android)
  – The content is easy to test automatically
  – Use pattern-matching to check responses
  – Use complex assertions
  – Use Xpath o css selectors to locate elements
  – Newer Mobile Web Browsers support Scripting &
    AJAX




                               To Work
To Work
• Testing strategy for browser applications in
  both platforms(iOS and Android)
  – Testing using HTTP calls is inefficient
  – To automate, use tools such as:
     • WebDriver (with custom HTTP headers)
     • Selenium RC
  – On-device testing is possible but not ideal (yet)




                                    To Work
To Work
• Testing strategy for browser applications in
  both platforms(iOS and Android)
  – Use selenium/webdriver
     • Native keyboard & mouse events
     • Same Origin Policy / XSS / HTTP(S)
     • Pop-ups, dialogs
        – Basic Authentication
        – Self-signed certificates
        – File upload/download




                                      To Work
To Work
• Use selenium/webdriver
  – Clean API
  – You can use your prefered language
     •   Python
     •   Ruby
     •   Java
     •   C#
  – You need change one line to change of platform




                                To Work
To Work
• Testing strategy for browser applications in
  both platforms(iOS and Android)
  – PageObject pattern
  – Encapsulate Objects on a page
  – Provide useful functions e.g. searchFor
  – Separate things that change from business logic




                                 To Work
To Work
• Best Practice
  – Use Oracle Testing
     • Mobile applications are
       derivated from web or
       client applications
     • All mobile banking
       applications consume
       services supplied by
       existing applications




                                 To Work
To Work
• Best Practice
  – Use Rule-based testing
     • can be coded to detect ‘good’ and ‘bad’ content
     • Detect incompatible content
     • Create rules from bug reports, server logs, etc
     • Use manual testing to verify rules, if unsure
     • Helps developers of new applications to deliver good
     quality content quickly




                                      To Work
To Work
• Best Practice
  – Model your application
  – You can use Model Based Testing
     • Utilizes formal models that model the SUT from the
       perspective of testing usually at a high level of
       abstraction




                                     To Work
To Work
• Best Practice
  – Consider testing manually
     • When working with legacy / external development
     • When testing the UI and UX (User Experience)
     • To complement Automated Tests




                                    To Work
To Work
• Best Practice
  – Continuous integration and Continuous testing
     • Execute your test frequently
     • Use pipelines in your CI server




                                         To Work
To Work
• Best Practice
  – Continuous integration and Continuous testing
     •   Each code submission automatically built
     •   Automated tests can run and report results
     •   Teams share a view of project status
     •   Changes are routinely integrated
     •   Fewer & smaller 'merge' conflicts




                                       To Work
To Work
• Best Practice
  – Use code analizers
     •   Devices have limited memory
     •   Clients use all the available memory
     •   Little memory left for code coverage
     •   Inclusion patterns up to method level




                                        To Work
To Work
• Best Practice
  – Use code analizers
  – Detects faults in
     • Event handler / event listeners
     • Missing / incorrect GUI elements
  – Long running tests exposing memory leaks
  – Code coverage
     • also for Unit tests




                                      To Work
To work
• General tips
     • Test code should be of Production quality
     • Import only those classes that you need. Avoid import
       abc.*
     • Use xPaths with caution. Do NOT use indexes.
     • Keep test data separate from test scripts.
     • Use private / protected member variables / methods.
       Make them public only when absolutely essential.
     • Keep test intent separate from implementation.
     • Do not simply copy / paste code from other sources
       without understanding it completely.
     • Duplicating CODE is NOT OK.

                                      To work
To work
• Next steps
  – The cloud
     • Very useful when you have a lot of tests
     • Private cloud
     • Cross-browser testing
        – Service for selenium is available
        – Execute your tests in the cloud or in your test enviroment




                                            To work
Thats All folks
Contact
• Christian Ramírez
  – chramirez@certum.com
  – @chrix2
  – www.certum.com
  – Mail Address
     • Rodolfo Gaona 86-f,
     Lomas de Sotelo CP 11200
     Miguel Hidalgo
     México DF
     México



                                Contact

More Related Content

What's hot

Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentationCarl Bruiners
 
Chapter 3 - Common Test Types and Test Process for Mobile Applications
Chapter 3 - Common Test Types and Test Process for Mobile ApplicationsChapter 3 - Common Test Types and Test Process for Mobile Applications
Chapter 3 - Common Test Types and Test Process for Mobile ApplicationsNeeraj Kumar Singh
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
Niyati_Manual_Testing_ISTQB_Certified_Resume
Niyati_Manual_Testing_ISTQB_Certified_ResumeNiyati_Manual_Testing_ISTQB_Certified_Resume
Niyati_Manual_Testing_ISTQB_Certified_ResumeNiyati Madad
 
Manual Testing
Manual TestingManual Testing
Manual TestingG.C Reddy
 
Chapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing TasksChapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing TasksNeeraj Kumar Singh
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-pptatish90
 
Chapter 5 - Automating the Test Execution
Chapter 5 - Automating the Test ExecutionChapter 5 - Automating the Test Execution
Chapter 5 - Automating the Test ExecutionNeeraj Kumar Singh
 
Quality assurance k.meenakshi
Quality assurance   k.meenakshiQuality assurance   k.meenakshi
Quality assurance k.meenakshiMeenakshiK19
 
Agile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrAgile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrXBOSoft
 
What is Test Plan? Edureka
What is Test Plan? EdurekaWhat is Test Plan? Edureka
What is Test Plan? EdurekaEdureka!
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobiGnosis
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSWAAM Tech
 

What's hot (20)

Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentation
 
Chapter 3 - Common Test Types and Test Process for Mobile Applications
Chapter 3 - Common Test Types and Test Process for Mobile ApplicationsChapter 3 - Common Test Types and Test Process for Mobile Applications
Chapter 3 - Common Test Types and Test Process for Mobile Applications
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
Mobile App Testing
Mobile App TestingMobile App Testing
Mobile App Testing
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Niyati_Manual_Testing_ISTQB_Certified_Resume
Niyati_Manual_Testing_ISTQB_Certified_ResumeNiyati_Manual_Testing_ISTQB_Certified_Resume
Niyati_Manual_Testing_ISTQB_Certified_Resume
 
Manual Testing
Manual TestingManual Testing
Manual Testing
 
Sandeep qa resume
Sandeep qa resume Sandeep qa resume
Sandeep qa resume
 
Chapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing TasksChapter 4 - Performance Testing Tasks
Chapter 4 - Performance Testing Tasks
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-ppt
 
Chapter 5 - Automating the Test Execution
Chapter 5 - Automating the Test ExecutionChapter 5 - Automating the Test Execution
Chapter 5 - Automating the Test Execution
 
Chapter 2 - Test Management
Chapter 2 - Test ManagementChapter 2 - Test Management
Chapter 2 - Test Management
 
Quality assurance k.meenakshi
Quality assurance   k.meenakshiQuality assurance   k.meenakshi
Quality assurance k.meenakshi
 
Agile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and ZephyrAgile Test Management Using Jira and Zephyr
Agile Test Management Using Jira and Zephyr
 
Fundamentals OF UAT
Fundamentals OF UATFundamentals OF UAT
Fundamentals OF UAT
 
What is Test Plan? Edureka
What is Test Plan? EdurekaWhat is Test Plan? Edureka
What is Test Plan? Edureka
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training Presentation
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 

Viewers also liked

Case study on Banking Software Testing - FINACLE : UAT
Case study on Banking Software Testing - FINACLE : UATCase study on Banking Software Testing - FINACLE : UAT
Case study on Banking Software Testing - FINACLE : UATOAK Systems Pvt Ltd
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECHPravinsinh
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)Usersnap
 
UAT - Cards Migration (Whitepaper)
UAT - Cards Migration (Whitepaper)UAT - Cards Migration (Whitepaper)
UAT - Cards Migration (Whitepaper)Thinksoft Global
 
Banking domain presentation
Banking domain presentationBanking domain presentation
Banking domain presentationYogesh Tompe
 
Manual QA Testing Interview Questions From H2KInfosys
Manual QA Testing Interview Questions From H2KInfosysManual QA Testing Interview Questions From H2KInfosys
Manual QA Testing Interview Questions From H2KInfosysH2kInfosys
 
UAT Kickoff Presentation 10 29 09
UAT Kickoff Presentation 10 29 09UAT Kickoff Presentation 10 29 09
UAT Kickoff Presentation 10 29 09goozer65
 
GL_Web application testing using selenium
GL_Web application testing using seleniumGL_Web application testing using selenium
GL_Web application testing using seleniumPragya Rastogi
 
Future of Mobile Banking System
Future of Mobile Banking SystemFuture of Mobile Banking System
Future of Mobile Banking SystemSyed Shujat Ali
 
Software Testing Project: Testing csmap program
Software Testing Project: Testing csmap programSoftware Testing Project: Testing csmap program
Software Testing Project: Testing csmap programDrake Huang
 
UAT for a Major US Banking Conglomerate
UAT for a Major US Banking ConglomerateUAT for a Major US Banking Conglomerate
UAT for a Major US Banking ConglomerateThinksoft Global
 
5 Tips For Making Linked In Work For You
5 Tips For Making Linked In Work For You5 Tips For Making Linked In Work For You
5 Tips For Making Linked In Work For Youmarkkley
 
Trabajo terminado copia
Trabajo terminado   copiaTrabajo terminado   copia
Trabajo terminado copiasergio medina
 
Non-fiction book design portfolio from SWATT Books
Non-fiction book design portfolio from SWATT BooksNon-fiction book design portfolio from SWATT Books
Non-fiction book design portfolio from SWATT BooksSamantha Pearce
 
Día de andalucía ceip emilio carmona
Día de andalucía  ceip emilio carmonaDía de andalucía  ceip emilio carmona
Día de andalucía ceip emilio carmonadgarzon1
 
Devi radhe maa jagran in delhi
Devi radhe maa jagran in delhiDevi radhe maa jagran in delhi
Devi radhe maa jagran in delhiglobal0395
 

Viewers also liked (17)

Case study on Banking Software Testing - FINACLE : UAT
Case study on Banking Software Testing - FINACLE : UATCase study on Banking Software Testing - FINACLE : UAT
Case study on Banking Software Testing - FINACLE : UAT
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)
 
UAT - Cards Migration (Whitepaper)
UAT - Cards Migration (Whitepaper)UAT - Cards Migration (Whitepaper)
UAT - Cards Migration (Whitepaper)
 
Banking domain presentation
Banking domain presentationBanking domain presentation
Banking domain presentation
 
Manual QA Testing Interview Questions From H2KInfosys
Manual QA Testing Interview Questions From H2KInfosysManual QA Testing Interview Questions From H2KInfosys
Manual QA Testing Interview Questions From H2KInfosys
 
UAT Kickoff Presentation 10 29 09
UAT Kickoff Presentation 10 29 09UAT Kickoff Presentation 10 29 09
UAT Kickoff Presentation 10 29 09
 
GL_Web application testing using selenium
GL_Web application testing using seleniumGL_Web application testing using selenium
GL_Web application testing using selenium
 
Mobile Banking
Mobile BankingMobile Banking
Mobile Banking
 
Future of Mobile Banking System
Future of Mobile Banking SystemFuture of Mobile Banking System
Future of Mobile Banking System
 
Software Testing Project: Testing csmap program
Software Testing Project: Testing csmap programSoftware Testing Project: Testing csmap program
Software Testing Project: Testing csmap program
 
UAT for a Major US Banking Conglomerate
UAT for a Major US Banking ConglomerateUAT for a Major US Banking Conglomerate
UAT for a Major US Banking Conglomerate
 
5 Tips For Making Linked In Work For You
5 Tips For Making Linked In Work For You5 Tips For Making Linked In Work For You
5 Tips For Making Linked In Work For You
 
Trabajo terminado copia
Trabajo terminado   copiaTrabajo terminado   copia
Trabajo terminado copia
 
Non-fiction book design portfolio from SWATT Books
Non-fiction book design portfolio from SWATT BooksNon-fiction book design portfolio from SWATT Books
Non-fiction book design portfolio from SWATT Books
 
Día de andalucía ceip emilio carmona
Día de andalucía  ceip emilio carmonaDía de andalucía  ceip emilio carmona
Día de andalucía ceip emilio carmona
 
Devi radhe maa jagran in delhi
Devi radhe maa jagran in delhiDevi radhe maa jagran in delhi
Devi radhe maa jagran in delhi
 

Similar to Testing banking apps

Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile DeveloperBSGAfrica
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Delta-N
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Agile product development and management
Agile product development and managementAgile product development and management
Agile product development and managementAshwinee Kumar
 
Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02Cognizant
 
Aligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development PracticesAligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development PracticesAspire Systems
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Imaginet
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Imaginet
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Imaginet
 
Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder Parshad
 
End to End Testing with Quality Enthusiasts: SDET Technologies
End to End Testing with Quality Enthusiasts: SDET TechnologiesEnd to End Testing with Quality Enthusiasts: SDET Technologies
End to End Testing with Quality Enthusiasts: SDET Technologiessdettech
 
Streamlining Testing with Visual Studio 2012
Streamlining Testing with Visual Studio 2012Streamlining Testing with Visual Studio 2012
Streamlining Testing with Visual Studio 2012Imaginet
 
Microsoft ALM Platform Overview
Microsoft ALM Platform OverviewMicrosoft ALM Platform Overview
Microsoft ALM Platform OverviewSteve Lange
 
DevOps for AI Apps
DevOps for AI AppsDevOps for AI Apps
DevOps for AI AppsRichin Jain
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 

Similar to Testing banking apps (20)

Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Agile product development and management
Agile product development and managementAgile product development and management
Agile product development and management
 
Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02Agileproductdevelopmentandmanagement 120420040535-phpapp02
Agileproductdevelopmentandmanagement 120420040535-phpapp02
 
Aligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development PracticesAligning Software Testing With Modern Age Development Practices
Aligning Software Testing With Modern Age Development Practices
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012
 
Kku2011
Kku2011Kku2011
Kku2011
 
Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software Testing
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
End to End Testing with Quality Enthusiasts: SDET Technologies
End to End Testing with Quality Enthusiasts: SDET TechnologiesEnd to End Testing with Quality Enthusiasts: SDET Technologies
End to End Testing with Quality Enthusiasts: SDET Technologies
 
Streamlining Testing with Visual Studio 2012
Streamlining Testing with Visual Studio 2012Streamlining Testing with Visual Studio 2012
Streamlining Testing with Visual Studio 2012
 
Microsoft ALM Platform Overview
Microsoft ALM Platform OverviewMicrosoft ALM Platform Overview
Microsoft ALM Platform Overview
 
DevOps for AI Apps
DevOps for AI AppsDevOps for AI Apps
DevOps for AI Apps
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

Testing banking apps

  • 1. Software testing banking applications for mobile platforms Christian Ramírez
  • 2. Context Design Considerations Agenda Test Design To work
  • 4. Presentation • My name is Christian Ramírez • Computer Engineer • QA & testing Architect • Over 8 years of experience in QA and software testing Presentation
  • 6. Context • Mobile Banking – provision and availment of banking- and financial services – help of mobile telecommunication devices – Services • Facilities to conduct bank and stock market transactions • Administer accounts • Access customised information. Context
  • 7. Context • The first mobile phone-based banking service was launched in 1997 by Merita Bank of Finland, using SMS. Context
  • 8. Context • The mobile banking market has grown significantly Context
  • 9. Context • Mobile Banking includes a wide range of services. – These services may be categorised as following • Mobile Accounting • Mobile Brokerage • Mobile Financial Information Context
  • 10. Context • What is the challenge? – Today's banking applications are being used on smartphones • Web • Native – Manual testing is inefficient and doesn't scale – All platforms are different Context
  • 12. Design Considerations • We need look beyond of the evident Sword of omens, give me sight beyond sight Design Considerations
  • 13. Design Considerations • You don’t need to reinvent the wheel – Same domain same rules – Reuse Design Considerations
  • 14. Design Considerations Features Test Devices Locations Complexity Carriers Design Considerations
  • 15. Design Considerations Design Considerations
  • 16. Design Considerations • Round 1 – Traditional apps VS Mobile Apps Design Considerations
  • 17. Design Considerations • Round 2 Native Apps vs Web Apps Design Considerations
  • 18. Design Considerations • Manual testing is inefficient, but necessary. • Test automation is logical solution. – Use test automation correctly Design Considerations
  • 19. Design Considerations • Effective Test automation – Automate as much as possible – Focus in solve real problems – Think different, this kind of applications are very sensitive to external factors – Be a pioneer Design Considerations
  • 21. Test Design • Testing Framework Test Logic • Business Logic • Verification and Validation logic Dsl Application Driver • API Technical Driver • API • Access to technical data storage Software Under Test • Web • Native Test Design
  • 22. Test Design • Divide and conquer – Separate all parts as much as possible Test Data • Reliability • Flexibility Test Logic • Maintainability • Clarity • Stability Application Driver Test Design
  • 23. Test Design • Promote the reuse – Design for reuse – Design with reuse – Improve your productivity – Reuse among platforms and domains • Business logic Test Design
  • 24. Test Design • Testability – The solution to all problems • the quality of a software design that allows for automated testing in a cost-effective manner. Repeatable Easy to Easy to write Testability understand Fast Test Design
  • 25. Test Design • TDD – Is the strategy of starting the development process by the test cases and then provide the software that satisfies these tests Red -> Green -> Refactor Red: Create an automated test. Run it. It should fail Green: Create the code to pass the tests Refactor: Clean up the code Test Design
  • 26. Test Design • TDD – Unit tests • Written by programmers • For programmers • In a programming language Test Design
  • 27. Test Design • BDD Test Design
  • 28. Test Design • BDD – Beer Driven Development??? Test Design
  • 29. Test Design • BDD – Evolution in the thinking behind TDD – Common vocabulary between business, programmers and testers – BDD helps to achivement to increse the testability – Use a DSL(Domain Specific Language) to explain the behavior of the applications – Useful to write acceptance tests • A lot of tools • A lot of DSLs Test Design
  • 30. Test Design • BDD – Use text scenarios • Given • When • Then – Defining steps Test Design
  • 31. Test Design • BDD – DSL • Almost programming language dedicated to a particular problem domain – In banking apps is very useful to create acceptance tests • High level – tests are in the language of product management, at the user level • Readable – product management can understand them • Writeable - easy for developer or QA to write new test • Extendible – tests base is able to grow with DSL Test Design
  • 33. To Work • Test Automation – Almost always is possible automate all tests of a mobile banking application UI System Module Code(unit) To Work
  • 34. To Work • Test Strategy – Unit Test – Internal logic – Gui Test – Usability – Navigation – Always consider varied end user expectations To Work
  • 35. To Work • Test Strategy – Separate generic from specific • Many mobile applications include algorithms, etc unrelated to the mobile platform or technology • These should be separated from platform / technology specific code • Use 'desktop' test automation to test generic code • Consider platform-specific test automation once the generic code has good automated tests To Work
  • 36. To Work • Data collection – Screenshots • DDMS for Android – Logs • adb shell for Android To Work
  • 37. To Work • Test Strategy Emulators Real devices • Android SDK in real Real Devices network • iOS SDK in the lab • Carrier • Network To Work
  • 38. To Work • Test Strategy for client applications – Unit testing – System testing when practical – Manual testing on devices – Use emulators with network analyzers – Custom clients help: Diagnose client capabilities – Identify and isolate the cause of problems – Model-based testing helps drive the client To Work
  • 39. To Work • Testing on android platform – SDK integrates a testing framework – It’s based on junit3 – Supports • Unit tests • Functional tests • Activity tests • Mocks To Work
  • 40. To Work • Testing on android platform – Functional testing in native apps • You can use activities – Pieces of code executables – Interact with user – Get data – etc • Activity can be manipulated • You can use sendKeys() to simulate user interaction • Is possible do isolated testing of a single activity • Tests can be annotated with @UiThreadTest To Work
  • 41. To Work • Testing on android platform – Test application in controlled enviroment – Basic lifecycle • onCreate() called after createApplication() • tearDown() calls onDestroy() – Mock context can be injected – Application can be terminated with • terminateApplication() To Work
  • 42. To Work • Testing on android platform – Some methods should be avoided and will throw exceptions if called To Work
  • 43. To Work • Testing on android platform – Framework support to test Services – Lifecycle • onCreated() called after startService() or bindService() • Depending on how was started tearDown() calls appropiate method – Mock object can be injected by • setApplication() • setContext() To Work
  • 44. To Work • Testing on android platform • Base class that can be extended to support different requirements • You can use this if you need – Test customs Views – Test permissions – Access Resources To Work
  • 45. To Work • Testing on android platform – Assertions View • Aligned in several ways • View agrouped • Is on screen • Has specific screen coordinates To Work
  • 46. To Work • Testing on android platform – Simulate complex user behavior – Use the methods to generate touch events • clickView() to simulate touching • dragX() to touch and drag • longClick() for touching and holding • scrollX()to simulate scrolling • tapView() to touch and release quickly To Work
  • 47. To Work • Testing on android platform – Mocks – All classes has non functional methods • MockApplication • MockContentResolver • MockContext • MockDialogInterface • MockPackageManager • MockResources To Work
  • 48. To Work • Testing strategy for browser applications in both platforms(iOS and Android) – The content is easy to test automatically – Use pattern-matching to check responses – Use complex assertions – Use Xpath o css selectors to locate elements – Newer Mobile Web Browsers support Scripting & AJAX To Work
  • 49. To Work • Testing strategy for browser applications in both platforms(iOS and Android) – Testing using HTTP calls is inefficient – To automate, use tools such as: • WebDriver (with custom HTTP headers) • Selenium RC – On-device testing is possible but not ideal (yet) To Work
  • 50. To Work • Testing strategy for browser applications in both platforms(iOS and Android) – Use selenium/webdriver • Native keyboard & mouse events • Same Origin Policy / XSS / HTTP(S) • Pop-ups, dialogs – Basic Authentication – Self-signed certificates – File upload/download To Work
  • 51. To Work • Use selenium/webdriver – Clean API – You can use your prefered language • Python • Ruby • Java • C# – You need change one line to change of platform To Work
  • 52. To Work • Testing strategy for browser applications in both platforms(iOS and Android) – PageObject pattern – Encapsulate Objects on a page – Provide useful functions e.g. searchFor – Separate things that change from business logic To Work
  • 53. To Work • Best Practice – Use Oracle Testing • Mobile applications are derivated from web or client applications • All mobile banking applications consume services supplied by existing applications To Work
  • 54. To Work • Best Practice – Use Rule-based testing • can be coded to detect ‘good’ and ‘bad’ content • Detect incompatible content • Create rules from bug reports, server logs, etc • Use manual testing to verify rules, if unsure • Helps developers of new applications to deliver good quality content quickly To Work
  • 55. To Work • Best Practice – Model your application – You can use Model Based Testing • Utilizes formal models that model the SUT from the perspective of testing usually at a high level of abstraction To Work
  • 56. To Work • Best Practice – Consider testing manually • When working with legacy / external development • When testing the UI and UX (User Experience) • To complement Automated Tests To Work
  • 57. To Work • Best Practice – Continuous integration and Continuous testing • Execute your test frequently • Use pipelines in your CI server To Work
  • 58. To Work • Best Practice – Continuous integration and Continuous testing • Each code submission automatically built • Automated tests can run and report results • Teams share a view of project status • Changes are routinely integrated • Fewer & smaller 'merge' conflicts To Work
  • 59. To Work • Best Practice – Use code analizers • Devices have limited memory • Clients use all the available memory • Little memory left for code coverage • Inclusion patterns up to method level To Work
  • 60. To Work • Best Practice – Use code analizers – Detects faults in • Event handler / event listeners • Missing / incorrect GUI elements – Long running tests exposing memory leaks – Code coverage • also for Unit tests To Work
  • 61. To work • General tips • Test code should be of Production quality • Import only those classes that you need. Avoid import abc.* • Use xPaths with caution. Do NOT use indexes. • Keep test data separate from test scripts. • Use private / protected member variables / methods. Make them public only when absolutely essential. • Keep test intent separate from implementation. • Do not simply copy / paste code from other sources without understanding it completely. • Duplicating CODE is NOT OK. To work
  • 62. To work • Next steps – The cloud • Very useful when you have a lot of tests • Private cloud • Cross-browser testing – Service for selenium is available – Execute your tests in the cloud or in your test enviroment To work
  • 64. Contact • Christian Ramírez – chramirez@certum.com – @chrix2 – www.certum.com – Mail Address • Rodolfo Gaona 86-f, Lomas de Sotelo CP 11200 Miguel Hidalgo México DF México Contact