65
HOW TO DESIGN YOUR MOBILE APPS HP HELSINKI 11 APRIL 2013 JULIAN HARTY Contact me: [email protected] Rev: 15 April 2013 Creative Commons License How to design your mobile apps by Julian Harty is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. http://creativecommons.org/licenses/by-sa/3.0/deed.en_US

HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

HOW TO DESIGN YOUR MOBILE APPS HP HELSINKI

11 APRIL 2013

JULIAN HARTY Contact me: [email protected] Rev: 15 April 2013

Creative Commons License How to design your mobile apps by Julian Harty is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. http://creativecommons.org/licenses/by-sa/3.0/deed.en_US

Page 2: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

SETTING THE CONTEXT

INTRODUCTION

Page 3: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

OUR CONTEXT Over 1,300,000 apps available for Android and iOS Selling apps is like a fickle lottery $$$ Billions in revenue Devices are ubiquitous

•  from babyhood to dotage Rich interfaces and capabilities 10+ smartphone platforms in use

Page 4: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

GOALS FOR OUR APPS What are the aims and purposes of the mobile apps?

•  Branding?

•  Presence?

•  Satisfy current users, who now use mobile devices?

•  New & Additional revenues?

•  New business models?

•  New forms of usage?

Page 5: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

http://www.howtogomo.com/en/d/test-your-site/#gomo-meter

Page 6: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

http://www.howtogomo.com/en/d/test-your-site/#gomo-meter

Page 7: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

PLATFORMS AND TECHNOLOGIES

•  iOS

•  Android

•  HTML5 & Web Apps

•  Others? (Windows Phone 8, BlackBerry 10, Nokia Ashi, etc)

Do we want cross-platform or separate apps?

Page 8: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

TYPE OF APP

DESIGN CONSIDERATIONS

Page 9: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

NATIVE APP

Platform

APP

The OS and the APP share a common

programming language

APIs are specific to the

platform

Native App

Page 10: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

WEB APP

Web App

Platform

APP

The APP is written in HTML, JavaScript,

CSS

APIs generally cross-browser

Web Browser

Page 11: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

HYBRID APP

Hybrid App

Platform

APP

The APP is written in HTML, JavaScript, CSS

WebView with Custom APIs Custom ‘native’ wrapper

WebView

Page 12: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

USER-CENTRIC DESIGN

REMEMBER

Page 13: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

USER-CENTRIC UI & UX Design apps that delight your users

With good engineering foundations

Beauty

User-journeys

Confusing ‘error’ message

https://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html

Cannot continue…

Page 14: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

USER-CENTRIC UI & UX Consider context-sensitive uses

•  On-the-move: walking, cycling, driving •  Varying connectivity

Single-Thumb Reach (left hand)

Page 15: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

USER-CENTRIC FEEDBACK

DATA DRIVEN

Page 16: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

USER-CENTRIC FEEDBACK Our primary conduits for feedback from users are:

•  Comments in App Stores •  Social media

Bad news hangs around…

Plan to respond effectively to user-feedback •  Nip problems ‘in-the-bud’

•  Solicit feedback in a positive setting

Page 17: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

QUALITY-IN-USE FEEDBACK

DATA DRIVEN

Page 18: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

QUALITY-IN-USE What qualities are relevant?

•  Visible qualities

•  Performance

•  Usability

•  Reliability

•  Invisible qualities

•  Security

•  Privacy

•  Robustness

•  etc

http://bits.blogs.nytimes.com/2012/06/27/facebook-plans-to-speedup-its-iphone-app/

Page 19: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

QUALITY-IN-USE FEEDBACK

Design-in:

•  Crash reporting

•  In-app feedback?

•  Mobile Analytics

Consider the privacy implications

http://android-developers.blogspot.co.uk/2010/05/google-feedback-for-android.html

Page 20: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

CRASH REPORTING SERVICES Options include:

•  Platform / App Store: integrated

•  Commercial offerings: from third-parties

•  Homebrew: most control & flexibility

Page 21: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

THE MOBILE LANDSCAPE Reliability of the platforms

•  iOS vs. Android vs. other platforms? Ways to diagnose reported crashes

• Look for correlation and causation • Clustering error reports e.g. By:

•  Platform version •  Device Model •  Versions of our app •  Other software installed?

http://www.pcworld.com/article/249356/whos_the_smartphone_os_crash_champion.html http://www.crittercism.com/

Page 22: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

USE MOBILE ANALYTICS

DATA DRIVEN

Page 23: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

An external service?

TOPOLOGY

Overview of Mobile Analytics Each step may be delayed

Dat

a C

olle

ctor

Database

Analytics WebServer

Business view

Filter(s)

Mobile Apps sending Analytics data

Page 24: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

TYPES OF EVENTS

Mobile app Analytics Library

Analytics Collector

1:1 App-initiated event

m:1 App-initiated event

Library-initiated event

E1

E

E4 …

L

E

Ea

L

E

Ea AnalyticsDatabase

Internet connection

Page 25: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

ANALYTICAL QUESTIONS

Engineering Activity, Benchmarking,

Testing

Trends, Defect Reports Extrapolation

Software quality models, bottleneck

analysis

Specification refinement, asset

reallocation

Failure prediction models

What’s Happened? (Reporting)

What’s Happened? (Alerts)

What will Happen? (Forecasting)

How and why did it happen?

(Factor analysis)

What is the next best action?

(Recommendation)

What’s the best / worst that can happen?

(Modeling / Simulation)

Information

Insight

Past Present Future

http://research.microsoft.com/pubs/136974/foser-2010-buse.pdf

Page 26: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

FISHBONES

Feasible Practical Useful

Page 27: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

SOFTWARE DEVELOPMENT LIFECYCLES

DEVELOPING AN APP

Page 28: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

LIFECYCLES OF TRADITIONAL SOFTWARE

Design

Test

CodeDesign

Test

Code

Software Development Life Cycle Software Usage Life Cycle

Installation

Conversion

Upgrade

Downgrade

Deinstallation

Configuration

ExistingData

Page 29: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

FROM CREATION TO USE PIE CHART

Note: The dimensions are indicative, rather than realistic

Page 30: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

MOBILE DEVELOPMENT FROM CREATION TO USE(I)

Design Implementation Code Build

Unit Tests Verification Internal Installation System Tests

Launch Pre-publication Publication

Page 31: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

MOBILE DEVELOPMENT FROM CREATION TO USE(II)

Search Engagement Trust Download

Validation

Installation

Payment Use Feedback

Page 32: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

FROM CREATION TO USE PIE CHART

Note: The dimensions are indicative, rather than realistic

5 phases

Page 33: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

ITERATIONS & UPDATES

Rejected: Testing

Rejected: Approval Launched: OK

Launched: OK

Page 34: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

TEAM COMPOSITION

WHO DOES WHAT?

Page 35: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

TEAM COMPOSITION •  In-house •  Outsourced

•  Development •  Design •  Testing

•  Hybrid arrangements •  Where are the people?

•  Co-located •  In-phase (same timezone) •  Out-of-phase (amount of overlap may vary)

Page 36: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

PLANS FOR GROWTH

SCALING YOUR APP

Page 37: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

PLANS FOR GROWTH Design considerations •  Globalization

•  Internationalization •  Localization

•  Integration with third-parties

•  Payment processing •  Social networking •  These may be specific to a country or region

m-pesa Orkut, Nimbuzz[1]

http://www.forbes.com/sites/parmyolson/2013/04/03/facebook-phone-faces-an-uphill-battle-in-emerging-markets/ [1]

Page 38: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

CLEAN CODE?

DESIGNING OUR APPS

Page 39: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

TANGLED SOURCE CODE?

P – Platform-Specific

A – Application U – User Interface

Is this how your application code appears to be constructed?

I – Input & Output

UP A

P

PPP

PPPP

P

AA

A

A

AA AUUU

U

UU

U

UI

I

I I I

I

I

Page 40: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

DISENTANGLING IS...

P – Platform-Specific

A – Application U – User Interface

So let’s aim to avoid this from the outset!

•  Hard •  Expensive •  Error-prone •  Unlikely

I – Input & Output

UP A

P

PPP

PPPP

P

AA

A

A

AA AUUU

U

U

U

U

U

I

I

I I I

I

I

http://en.wikipedia.org/wiki/Code_refactoring

http://martinfowler.com/books.html

Page 41: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

SEGMENTED DESIGN Apps include: •  User Interface code •  Input & Output code

•  Platform-specific code •  Core Logic code

UI

IO

Core Logic

Platform

Can we group and segment them?

Page 42: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

APIS

DESIGN CONSIDERATIONS

Page 43: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

APIS APIs – bi-directional conduits of information & services •  APIs for Servers & Services

•  Client-side APIs and Interfaces

Key design considerations •  Clean APIs

•  Robustness

•  Scalability

•  Privacy of data across APIs http://oredev.org/2012/sessions/api-usability-think-of-the-humans

Page 44: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

VERIFICATION & VALIDATION

TESTING OUR MOBILE APPS

Page 45: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

PERSPECTIVES OF VERIFICATION •  Developer- & Technology- centric automated tests

•  Business-centric testing

http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/

Page 46: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

PERSPECTIVES OF VALIDATION Are we providing the right product?

•  Are we meeting the business goals?

•  Is this app one that people are happy with?

•  Remember the human aspects

Page 47: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

INTERACTIVE TESTING Learn to do it well

• Test things that will affect the application e.g.

•  Rotation, network connectivity, locales

Learn utilities and tools e.g.

• adb logcat

Page 48: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

REAL & VIRTUAL DEVICES

Testing on devices is essential

•  Capture the rich interactions and behaviours

•  Find bugs related to devices bugs, performance, usability

•  More realistic representation of reality

Testing on virtual devices

•  Early prototyping e.g. can test new screen sizes quickly

•  Sometimes necessary for business, practical & other reasons

“In theory, theory and practice are the same. In practice, they are not.”

How do we test rich interactive apps unless you have the device in your hand?

A device in your hand is worth 2 in the cloud, and 100 virtual devices.

Page 49: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

EXTENDING YOUR REACH Remote Devices Remote Test Execution Lunch out: testing a mobile video app

Page 50: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

TESTABILITY & MAINTAINABILITY

GOOD DESIGN

Page 51: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

SCALES OF TESTABILITY

There are at least 2 dimensions of Testability:

•  ease of interfacing •  transparency into the state & behaviour of the software being tested.

easy

transparency

inte

rfaci

ng

challenging

trans

pare

nt

opaq

ue

Page 52: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

MAINTAINABILITY

•  Corrective: fix problems & bugs

•  Adaptive: work better with other software and devices

•  Perfective: improving the app

•  Preventative: address potential problems pre-emptively

http://www.csse.monash.edu.au/~jonmc/CSE2305/Topics/13.25.SWEng4/html/text.html

Page 53: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

DESIGNING FOR TESTABILITY: HOOKS

Programmatic Hooks

To connect test automation easily

Consider whether to leave them in situ

Page 54: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

DESIGNING FOR TESTABILITY: VISIBILITY

“Eyes into the Soul of the machine...” Expose internal data and state

• Makes some checks easier to confirm • e.g. Error recovery mechanisms cleaned up the

app’s internal state Beware:

• Non-test code might start using the data •  If so, consider formalising the access in an API

Page 55: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the Segmented Design topic)

Ideal to be able to automate the testing of each layer or component independently

Then testing of the composite software can focus on testing the composite aspects

Beware of emergent behaviour

• Test the qualities: non-functional-testing (NFT)

Page 56: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

GOOD DESIGN: SEPARATION OF CONCERNS

Separate generic and platform-specific code Generic code:

• Application logic: What the app does, functionality Platform-specific code:

• User Interface • Threading • Calls to platform-specific APIs

Page 57: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

GOOD DESIGN: ISOLATE COMPLEX CODE

Try encapsulating & isolating complex code • Provide an interface* • Have excellent automated tests exercise it • Warn casual developers (and testers) not to tamper

with it • Now the rest of our code is easier to understand &

manage In parallel consider ways to replace complex code with simpler code

* e.g. See the Facade design pattern

Page 58: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

FULL LIFECYCLE COSTS

SPENDING WISELY?

Page 59: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

SPEND MONEY ON TESTING?

WHERE AND WHEN TO

Page 60: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

NOVODA Costs 60% more money to ‘add’ test automation to Android projects •  Who’s willing to sign off on it?

Where and when does the ROI start? •  After 2nd Release: 1/3rd elapsed testing effort

Page 61: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

GOOD DESIGN: THINGS TO CONSIDER

How long do your code bases ‘last’?

Who pays for ‘maintenance’?

Where is the expertise to maintain the code?

Active apps need ongoing nurture & investments even if you’re not changing the functionality

Page 62: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

FURTHER CONSIDERATIONS

Intellectual Property (IP)

•  Copyright

•  Licenses •  Open Source and Free Software

•  IP assignments

•  Copy & Paste development practices?

Page 63: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

SOME FURTHER READINGS

http://www.wipconnector.com/download/GuideToTheParallelUniverse_3rdEdition.pdf

http://www.enough.de/fileadmin/uploads/dev_guide_pdfs/Guide_12thEdition_WEB.pdf

Testing and Test Automation for Mobile Apps

Julian Harty

Summer 2013 CRC Press

Page 64: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

IF YOU WANT THE DRAFT BOOK Draft book available for review & feedback Email me [email protected] •  Agree not to share or distribute •  Comment to get the next available draft

Page 65: HOW TO DESIGN YOUR MOBILE APPS - better software testingblog.bettersoftwaretesting.com/wp...to-Design-your... · GOOD DESIGN: LAYERING OF CODE (Already covered some aspects in the

Q & A ?