yoza aprilio - we must design
TRANSCRIPT
![Page 1: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/1.jpg)
We (Must) Design @ TDDAdrianus Yoza Aprilio | CIO – Dicoding IndonesiaID Android Techtalk – Malang, April 2016
![Page 2: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/2.jpg)
Coding Behavior• Outline• Tech Spec• Requirements• Business Process• Scenario• Best/Worst case(s)• Code• Test• Repeat
![Page 3: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/3.jpg)
Ngoding-in-Reality• Outline• Tech Spec• Requirements Coding• Business Process Coding• Scenario Coding• Best/Worst case(s)Bug• Code Bug, and more bug• Test Bug, and much more bug• Repeat MUTUNG
![Page 4: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/4.jpg)
What’s Wrong
![Page 5: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/5.jpg)
MINDSET, MINDSET, MINDSET• Architecture is King, Scenarios are Kong!
• Act Locally, Think Globally
• Create a Testable Code
• Do Testable Hacks / Patch
• Never commit code before test commits.
![Page 6: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/6.jpg)
MINDSET, MINDSET, MINDSET
!! NEVER CREATE CODE-ORIENTED TEST !!
![Page 7: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/7.jpg)
No matter what you are writing; … you have to
DESIGN.(Uncle Bob Martin)
![Page 8: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/8.jpg)
Design, Y U No?
TDD can't even be begun until we know the shape of the system that is to be created.
Architect/Scenario/case First, Test Second, CODE LAST
![Page 9: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/9.jpg)
1.Business impact2.Mockup3.Correct Implementation4.Maintainable Code
![Page 10: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/10.jpg)
Menggali skenario/skema•Saya ingin [komponen A] dapat melakukan [x]•Saya TIDAK INGIN pada [komponen B] terjadi [y]
•Ketika user melakukan [aktivitas C], pastikan [z] bernilai [W]•Berikan batasan ketika sistem melakukan [aktivitas D]
•Tipe data yang bisa diterima oleh [komponen E]•Tipe data yang dihasilkan oleh [komponen F] atau [aktivitas G]
•Apa yang diasosiasikan [entitas H] tentang [proses bisnis I] •Skema UI/UX
![Page 11: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/11.jpg)
Contoh
Business case:Saya ingin membuat aplikasi menambahkan dua angka.
taken from Modul1 - Belajar Membuat Aplikasi Android dengan Android Studio Bagian I
https://www.dicoding.com/academies/2
Hasil
![Page 12: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/12.jpg)
Menggali skenario/skema dari contoh•Define “tambah”•Define tipe data (integer, float)•Apakah yang terjadi ketika user klik hitung
•Ketika kedua field kosong•Ketika kedua field terisi tidak sesuai tipe data yang diharapkan•Ketika salah satu saja terisi sesuai dengan harapan•Ketika keduanya terisi sesuai dengan ekspektasi (mis. integer)•Apakah yang terjadi ketika user mengisikan string?
•Contoh nama deskriptif: ketika_user_mengklik_button_lakukan_tambah()
when_button_clicked_but_empty_field_then_except()
![Page 13: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/13.jpg)
Mengantisipasi (negasi)•Exception
•Validation
•Message Box
•Vibrate
•Back to Previous Menu
•Close
![Page 14: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/14.jpg)
Contoh Pengujian•Buka Aplikasi, langsung klik tombol
•Buka Aplikasi, klik field, apakah yang muncul adalah keyboard numerik atau alpha-numeric?
•Buka Aplikasi, isi 1 field, klik tombol
•Buka Aplikasi, isi 2 field dengan titik (dot), klik tombol
•Test aplikasi dengan asumsi skema sebenarnya
![Page 15: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/15.jpg)
Android TDD• Unit Testing (jUnit/ espresso)
• Functional/Integration Testing (Appium / Robotium)
• User Acceptance Testing (Nasi Pecel)
http://bit.ly/androidTDD
![Page 16: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/16.jpg)
http://bit.ly/espressoDocs
![Page 17: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/17.jpg)
Dicoding menerapkan TDD dalam:•Platform Development
•UI/UX
•Academy Submission Testing / Feedback
•Challenge App Testing / Feedback
![Page 18: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/18.jpg)
DECODE IDEAS DISCOVER POTENTIAL
![Page 19: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/19.jpg)
![Page 20: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/20.jpg)
![Page 21: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/21.jpg)
Our Developer Journey
events
academy
challenge
partners
public challenge
private challenge
getjobs
entrepreneur
upgrading skill api & sdk adoption
getideas
get support startup
![Page 22: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/22.jpg)
![Page 23: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/23.jpg)
![Page 24: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/24.jpg)
Memberikan tuntunan belajar teknologi terbaru yang mudah dan disesuaikan dengan kurikulum globalDibuat dan diverifikasi oleh para ahli tersertifikasi, kode/tugas diperiksa oleh ahli dan diberikan umpan balikKurikulum menggunakan pendekatan terbaik dan berbasis praktek
DICODING
ACADEMY
PLATFORM
3.100+ StudentsMaret 2016
CASE STUDY
App Academy1.350+ students
Android NDK Academy
400+ apps powered by NDK
4.100 CODE SUBMISSION
![Page 25: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/25.jpg)
![Page 26: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/26.jpg)
![Page 27: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/27.jpg)
![Page 28: Yoza Aprilio - We must design](https://reader036.vdocument.in/reader036/viewer/2022070516/587541d71a28abb8208b5323/html5/thumbnails/28.jpg)
Adrianus Yoza Aprilio [email protected] | +62 857 3160 3055
www.dicoding.com
Contacts
28
facebook.com/dicodingDicoding Indonesia
@dicoding
https://plus.google.com/112297462024647355499 Dicoding Indonesia