Upgrade to Pro — share decks privately, control downloads, hide ads and more …

'Testing iOS app with external hardware' by Viacheslav Volodko

'Testing iOS app with external hardware' by Viacheslav Volodko

This talk was made for CocoaHeads Kyiv #13 which took place Dec 16 2017.

Db84cf61fdada06b63f43f310b68b462?s=128

CocoaHeads Ukraine

December 16, 2017
Tweet

More Decks by CocoaHeads Ukraine

Other Decks in Programming

Transcript

  1. None
  2. TESTING IOS APP WITH EXTERNAL HARDWARE VIACHESLAV VOLODKO IOS ENGINEER

    #cocoaheadsukraine
  3. TESTING IOS APP WITH EXTERNAL HARDWARE TL; DR WRITE F**KING

    TESTS
  4. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  5. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  6. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  7. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  8. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  9. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  10. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  11. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  12. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic JSON/XML
  13. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic JSON/XML HTTP
  14. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic JSON/XML HTTP TCP/IP
  15. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM JSON/XML HTTP

    TCP/IP Packetization Bluetooth LE WiFi Cable Connection Bluetooth Classic
  16. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  17. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  18. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Backend https

  19. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Backend https

    v.1.0.0 v.1.1.0 v.2.0.0 v.2.1.0
  20. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Backend https

    v.1.0.0 v.1.1.0 v.2.0.0 v.2.1.0 RESPONSIBLE FOR VERSIONING
  21. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM v.1.0.0 v.1.1.0

    v.2.0.0 v.2.1.0
  22. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM

  23. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  24. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic v.1.0.0 v.1.1.0 v.2.0.0 v.2.1.0 Firmware
  25. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic v.1.0.0 v.1.1.0 v.2.0.0 v.2.1.0 Firmware RESPONSIBLE FOR VERSIONING
  26. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic RESPONSIBLE FOR VERSIONING
  27. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  28. TESTING IOS APP WITH EXTERNAL HARDWARE THE PROBLEM Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  29. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION

  30. None
  31. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE

  32. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE

  33. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE Bluetooth LE

    WiFi Cable Connection Bluetooth Classic
  34. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE Connectivity Layer

    Bluetooth LE WiFi Cable Connection Bluetooth Classic • System layer, e.g. Core Bluetooth
  35. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE Connectivity Layer

    Bluetooth LE WiFi Cable Connection Bluetooth Classic Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth
  36. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE Connectivity Layer

    Bluetooth LE WiFi Cable Connection Bluetooth Classic Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Business Logic Layer • StateFULL layer • Device agnostic components
  37. TESTING IOS APP WITH EXTERNAL HARDWARE RESOLUTION: ARCHITECTURE Connectivity Layer

    Bluetooth LE WiFi Cable Connection Bluetooth Classic Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Business Logic Layer • StateFULL layer • Device agnostic components
  38. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING Connectivity Layer

    Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Business Logic Layer • StateFULL layer • Device agnostic components
  39. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING Connectivity Layer

    Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components Business Logic Layer • StateFULL layer • Device agnostic components Mock Connectivity Layer
  40. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING Connectivity Layer

    Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components Mock Connectivity Layer Unit Tests Cases
  41. Unit Tests Cases Mock Connectivity Layer TESTING IOS APP WITH

    EXTERNAL HARDWARE UNIT TESTING Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components
  42. Unit Tests Cases Mock Connectivity Layer TESTING IOS APP WITH

    EXTERNAL HARDWARE UNIT TESTING Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components Business Logic Layer • StateFULL layer • Device agnostic components
  43. Unit Tests Cases TESTING IOS APP WITH EXTERNAL HARDWARE UNIT

    TESTING Business Logic Layer • StateFULL layer • Device agnostic components Mock Transport Layer
  44. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING

  45. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING PROS CONS

  46. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases PROS CONS
  47. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases ▸ Increases code modularity PROS CONS
  48. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases ▸ Increases code modularity ▸ Decreases debugging time PROS CONS
  49. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases ▸ Increases code modularity ▸ Decreases debugging time ▸ Easily automated (CI) PROS CONS
  50. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases ▸ Increases code modularity ▸ Decreases debugging time ▸ Easily automated (CI) PROS ▸ Time consuming CONS
  51. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases ▸ Increases code modularity ▸ Decreases debugging time ▸ Easily automated (CI) PROS ▸ Time consuming ▸ Increases code complexity CONS
  52. TESTING IOS APP WITH EXTERNAL HARDWARE UNIT TESTING ▸ Easy

    to cover edge cases ▸ Increases code modularity ▸ Decreases debugging time ▸ Easily automated (CI) PROS ▸ Time consuming ▸ Increases code complexity ▸ No real device in chain CONS
  53. None
  54. None
  55. None
  56. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Business Logic Layer • StateFULL layer • Device agnostic components
  57. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Business Logic Layer • StateFULL layer • Device agnostic components Integration Tests
  58. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests
  59. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE
  60. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE PROS CONS
  61. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE ▸ Guarantee to work with Real device PROS CONS
  62. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE ▸ Guarantee to work with Real device ▸ Nothing to mock: 
 faster than Unit Tests PROS CONS
  63. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE ▸ Guarantee to work with Real device ▸ Nothing to mock: 
 faster than Unit Tests PROS ▸ Hard to cover corner cases CONS
  64. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE ▸ Guarantee to work with Real device ▸ Nothing to mock: 
 faster than Unit Tests PROS ▸ Hard to cover corner cases ▸ Not always stable CONS
  65. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE ▸ Guarantee to work with Real device ▸ Nothing to mock: 
 faster than Unit Tests PROS ▸ Hard to cover corner cases ▸ Not always stable ▸ Hard to automate (CI) CONS
  66. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH REAL

    DEVICE ▸ Guarantee to work with Real device ▸ Nothing to mock: 
 faster than Unit Tests PROS ▸ Hard to cover corner cases ▸ Not always stable ▸ Hard to automate (CI) ▸ Run takes more time CONS
  67. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests
  68. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests Simulator
  69. Raspberry Pi + Python app TESTING IOS APP WITH EXTERNAL

    HARDWARE INTEGRATION TESTING WITH DEVICE SIMULATOR Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests Simulator OSX app - BLE Peripheral Raspberry Pi + NodeJS app Arduino
  70. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR
  71. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR PROS CONS
  72. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR ▸ Limited guarantee to work with Real device PROS CONS
  73. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR ▸ Limited guarantee to work with Real device ▸ No device prototype needed PROS CONS
  74. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR ▸ Limited guarantee to work with Real device ▸ No device prototype needed ▸ Easy to cover edge cases PROS CONS
  75. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR ▸ Limited guarantee to work with Real device ▸ No device prototype needed ▸ Easy to cover edge cases PROS ▸ Need to follow specs very carefully CONS
  76. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR ▸ Limited guarantee to work with Real device ▸ No device prototype needed ▸ Easy to cover edge cases PROS ▸ Need to follow specs very carefully ▸ An additional codebase to support CONS
  77. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITH DEVICE

    SIMULATOR ▸ Limited guarantee to work with Real device ▸ No device prototype needed ▸ Easy to cover edge cases PROS ▸ Need to follow specs very carefully ▸ An additional codebase to support ▸ Codebase grows with new Firmware/ Devices CONS
  78. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests
  79. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests
  80. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests XCTest Bundle
  81. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS Connectivity Layer Connectivity Layer Abstraction Transport Layer • StateLESS layer • Request/Response • Device specific components • System layer, e.g. Core Bluetooth Integration Tests Test Harness iOS App
  82. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS
  83. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS PROS CONS
  84. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS ▸ Can share build with QA-, FW- Engineers PROS CONS
  85. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS ▸ Can share build with QA-, FW- Engineers ▸ Easier to test new firmware/hardware PROS CONS
  86. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS ▸ Can share build with QA-, FW- Engineers ▸ Easier to test new firmware/hardware ▸ Android: easy to test on exotic device PROS CONS
  87. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS ▸ Can share build with QA-, FW- Engineers ▸ Easier to test new firmware/hardware ▸ Android: easy to test on exotic device PROS ▸ Need to reimplement some XCTest tools CONS
  88. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS ▸ Can share build with QA-, FW- Engineers ▸ Easier to test new firmware/hardware ▸ Android: easy to test on exotic device PROS ▸ Need to reimplement some XCTest tools ▸ Need to keep transport layer in Framework CONS
  89. TESTING IOS APP WITH EXTERNAL HARDWARE INTEGRATION TESTING WITHIN TEST

    HARNESS ▸ Can share build with QA-, FW- Engineers ▸ Easier to test new firmware/hardware ▸ Android: easy to test on exotic device PROS ▸ Need to reimplement some XCTest tools ▸ Need to keep transport layer in Framework ▸ Need to support another codebase CONS
  90. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES

  91. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES ▸ Cover

    happy path + corner cases via Unit Tests
 CI - must-have
  92. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES ▸ Cover

    happy path + corner cases via Unit Tests
 CI - must-have ▸ Cover happy path ONLY via Integration Tests
 CI-optional
  93. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES ▸ Cover

    happy path + corner cases via Unit Tests
 CI - must-have ▸ Cover happy path ONLY via Integration Tests
 CI-optional ▸ No device - use Simulator
  94. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES

  95. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES ▸ Unstable

    connection - 
 MUST still cover with Integration Tests
 

  96. TESTING IOS APP WITH EXTERNAL HARDWARE BEST PRACTICES ▸ Unstable

    connection - 
 MUST still cover with Integration Tests
 
 ▸ When too many device/firmware versions - 
 use Integration Tests + Test Harness
  97. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASES

  98. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE
  99. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE
  100. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine
  101. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi
  102. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi
  103. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine
  104. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine
  105. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine
  106. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Hardware Unit Hardware Unit Hardware Unit Hardware Unit
  107. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Hardware Unit Hardware Unit Hardware Unit Hardware Unit USB
  108. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Hardware Unit Hardware Unit Hardware Unit Hardware Unit USB
  109. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi Hardware Hardware Hardware Hardware USB
  110. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi USB
  111. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi USB Simulator
  112. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi USB Simulator Arduino Uno
  113. Simulator TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE

    ROASTING MACHINE Coffee roasting machine Bluetooth LE WiFi USB Arduino Uno
  114. Simulator TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE

    ROASTING MACHINE Coffee roasting machine Bluetooth LE WiFi USB Arduino Uno Integration Tests
  115. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi USB Integration Tests
  116. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 1: COFFEE ROASTING

    MACHINE Coffee roasting machine Bluetooth LE WiFi USB Integration Tests 1 day
  117. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

  118. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    Bluetooth LE
  119. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    Data synchronization algorithm
  120. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    Data synchronization algorithm Mock Transport Layer Unit Tests Cases
  121. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    Data synchronization algorithm Transport Layer Integration Tests Cases Test Harness iOS App
  122. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

  123. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    ▸ 3 weeks of work
  124. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    ▸ 3 weeks of work ▸ 2 developers: 1 iOS, 1 Android
  125. TESTING IOS APP WITH EXTERNAL HARDWARE SHOWCASE 2: MEDICAL WEARABLE

    ▸ 3 weeks of work ▸ 2 developers: 1 iOS, 1 Android ▸ Reliable data synchronization
  126. TESTING IOS APP WITH EXTERNAL HARDWARE INSTEAD OF CONCLUSIONS

  127. TESTING IOS APP WITH EXTERNAL HARDWARE INSTEAD OF CONCLUSIONS ▸

    Don’t sell your customer auto tests - 
 Include those to estimates
  128. TESTING IOS APP WITH EXTERNAL HARDWARE INSTEAD OF CONCLUSIONS ▸

    Don’t sell your customer auto tests - 
 Include those to estimates ▸ 100% code coverage is never needed - 
 Find level needed by your app
  129. TESTING IOS APP WITH EXTERNAL HARDWARE INSTEAD OF CONCLUSIONS ▸

    Don’t sell your customer auto tests - 
 Include those to estimates ▸ 100% code coverage is never needed - 
 Find level needed by your app ▸ Try both sides of the force: 
 Both under-testing and over-testing
  130. TESTING IOS APP WITH EXTERNAL HARDWARE THANKS FOR ATTENTION Viacheslav

    Volodko skype: killobatt vvolodko@lohika.com killobatt@gmail.com #cocoaheadsukraine
  131. None