Bagaimana Cara Mengatasi Pola Pikir "Otomatisasi itu Mudah"?


12

Judulnya mengatakan itu semua. Beberapa karyawan di perusahaan kami percaya bahwa tes otomatis "mudah" dan bahwa "perlu waktu sehari" untuk menulis suite tes COM dan UI. Apa yang bisa dilakukan untuk mengatasi ini?

Catatan: Saya tidak bertanya tentang cara mempromosikan otomatisasi. Bukan itu masalahnya. Pengujian dan proses otomatis sedang dipromosikan dan diminta sepanjang waktu di sini. Masalahnya adalah bahwa beberapa orang tidak mengerti bahwa otomasi itu tidak "mudah" juga bukan "cepat".


25
Apakah ada di antara orang-orang ini yang diundang untuk membuktikan pernyataan mereka?
Blrfl

2
Persepsi semacam ini ada di banyak industri, dan mereka tidak dapat diubah. Sementara banyak yang mungkin menjawab pendekatan untuk mendidik karyawan, satu-satunya jawaban yang benar adalah bekerja di tempat lain. Orang yang memiliki nilai persepsi rendah tentang pekerjaan orang lain tidak pernah merupakan hal yang baik.
Reactgular

7
kemungkinan terkait: Efek Dunning Kruger
Simon Bergot

3
Katakan padanya: "bung, jika kamu pikir itu bisa dilakukan dalam satu waktu, duduklah dan tunjukkan padaku bagaimana kamu menerapkan ini, jadi aku bisa belajar dari kamu bagaimana menulis tes begitu cepat, karena aku tidak tahu bagaimana menyelesaikannya ini".
Doc Brown

Jawaban:


5

Lain kali Anda mendapatkan permintaan, cobalah untuk memecah sebanyak mungkin proses otomatisasi menjadi beberapa bagian waktu. Saya pikir ketika mereka menyadari bahwa dibutuhkan 5 menit per bidang teks atau tombol, mereka mulai menyadari berapa lama.

Sebagai contoh, mungkin mengapa butuh begitu lama adalah bahwa mereka mulai memperkenalkan saling ketergantungan antara bidang: misalnya hanya memungkinkan mereka untuk melanjutkan jika ini diisi tetapi tidak jika ini tidak, kecuali ketika ....

Cobalah untuk mendidik mereka tentang MENGAPA butuh begitu lama, tetapi tidak sebanyak Anda kehilangan mereka melalui proses "belajar".


4

Dalam peran saya, saya telah menemukan banyak orang "x mudah" terutama pada proyek-proyek pembangunan. Dalam pikiran saya ada tiga alasan untuk ini:

1) Mereka benar-benar tidak mengerti apa yang mereka bicarakan tetapi sangat suka terdengar seperti mereka.

2) Mereka telah membaca beberapa buku dan berpikir mereka tahu apa yang mereka bicarakan

3) Terakhir orang berasumsi karena komputer melakukan pengujian dengan cepat, karena komputer cepat.

Satu-satunya cara yang pasti untuk memerangi hal ini adalah dengan melibatkan pengguna secara teratur, strategi komunikasi untuk proyek adalah kunci, tentu saja menjelaskan seluk beluk pengujian otomatis kepada pengguna non teknis akan sia-sia tetapi membuat mereka sadar akan proses yang terlibat dapat bermanfaat. Anda dapat melakukan ini baik melalui dokumentasi, lokakarya atau sekadar obrolan ramah di lain waktu saat Anda melewatinya.

Saya bahkan pernah melihat seorang BA memilih yang paling keras dari orang-orang "x ini mudah" dan cukup mengundang mereka selama sehari di departemen, dengan pemikiran mereka akan berjalan pergi untuk memahami lebih banyak tentang apa yang Anda lakukan ATAU mereka akan sederhana datang berpikir "Tuhan aku benar-benar tidak tahu apa yang saya bicarakan, saya pikir saya salah".


2

Perangkat lunak adalah bisnis otomatisasi.

Kami menulis perangkat lunak untuk mempermudah tugas yang membosankan, berulang, dan padat karya. Kami menulis perangkat lunak untuk secara otomatis membuat laporan, mengumpulkan data, berkomunikasi dengan orang lain, dll. Menulis tes otomatis benar-benar hanya menulis perangkat lunak untuk memastikan perangkat lunak kami yang lain berfungsi seperti yang kami harapkan.

Jika rekan kerja Anda memahami bahwa menulis perangkat lunak itu sulit dan membutuhkan waktu, itu seharusnya cukup mudah untuk menunjukkan kepada mereka bahwa menulis lebih banyak perangkat lunak harus sulit dan membutuhkan waktu. Akan menyenangkan untuk mendapatkan semua manfaat dari otomatisasi secara gratis, tetapi, seperti biasa, kita perlu menempatkan pekerjaan di depan untuk mendapatkan manfaatnya nanti.

Jika mereka tidak memahaminya, Anda perlu mengajari mereka atau mengerjakan memoles resume Anda.


2
writing software is hard and takes time. Menulis aplikasi baris perintah kecil cepat. Menulis skynet IA itu sulit. Memberitahu pernyataan umum seperti itu tidak akan meyakinkan siapa pun.
Simon Bergot

3
@Simon - Itu pernyataan yang cukup adil. Tidak semua perangkat lunak yang pernah ditulis pasti sulit. Saya lebih memikirkan bahwa sebagian besar perangkat lunak yang kami bayar untuk menulis adalah untuk hal-hal yang tidak sepele. Bahkan sesuatu seperti aplikasi CRUD sederhana membutuhkan waktu dan upaya untuk memastikan mereka memiliki validasi yang tepat, penanganan kesalahan, mungkin keamanan, pelaporan, dll. Ketika saya menulis ini, saya juga menyadari bahwa saya membingkai respons saya dengan berpikir bahwa rekan kerja di OP tidak -teknik / manajemen orang. Itu mungkin tidak benar dan mempengaruhi bagaimana "keras", "mudah" dan "cepat" semua harus ditafsirkan.
Becuzz

Memprogram komputer itu sulit dan memakan waktu, Anda bisa tahu karena harganya mahal
Chris McCall

2

Sebagian besar karyawan menghabiskan waktu mereka di bagian "depan" (klien-bos-pemangku kepentingan) dari perusahaan atau "belakang," (di mana pekerjaan "nyata" dilakukan). Kedua fungsi ini berbeda, hampir berlawanan. (Dan sangat sedikit orang yang bekerja di keduanya). Akibatnya, sering terjadi kesalahpahaman antara kedua kelompok.

Cara terbaik untuk mendidik misalnya orang "depan", adalah memiliki satu atau beberapa dari mereka menghabiskan satu hari di "belakang." Jika mereka menyelesaikan "Sehari dalam kehidupan ...," mereka akan memiliki gagasan yang lebih realistis tentang apa yang dapat dilakukan dalam sehari, dan mengapa diperlukan lebih banyak waktu dan upaya untuk menjalankan tes otomatis. Demikian juga, "kembali" orang bisa mendapat manfaat dari satu atau dua hari di "depan."

Dalam "How to be Rich," John Paul Getty (seorang taipan pada masanya) menganjurkan "pelatihan silang" semacam itu. Dalam pandangannya, seorang salesman yang menghabiskan waktu di jalur perakitan di mana produk itu diproduksi akan melakukan pekerjaan penjualan yang jauh lebih baik, dan juga seorang insinyur yang menghabiskan satu hari dengan klien akan melakukan pekerjaan yang lebih baik "debugging."


2

Masalahnya adalah bahwa beberapa orang tidak mengerti bahwa otomasi itu tidak "mudah" juga bukan "cepat".

Saya tidak setuju dengan premis Anda di sini.

Saya adalah pendukung besar pengujian otomatis, tidak peduli apakah itu pengujian unit, pengujian integrasi atau pengujian UI. Ada banyak alat hebat yang tersedia untuk mengimplementasikan tes otomatis.

Mari kita bandingkan pengujian otomatis vs pengujian manual berdasarkan contoh berikut:

Dalam aplikasi web, uji fungsionalitas "Ubah Kata Sandi" dari pengguna yang ada menggunakan browser.

Pengujian manual :

  • Mulai aplikasi web
  • Buka browser
  • Sial, ada kesalahan. Mengapa? Oh, saya lupa memulai database!
  • Oke, matikan aplikasi web
  • Mulai database
  • Mulai aplikasi web
  • Refresh browser
  • Hmm, apa kata sandi pengguna uji kami lagi?
  • Melihat database
  • Oh, tabel pengguna kosong! Saya harus membuat pengguna baru.
  • Daftarkan pengguna baru di aplikasi web: Memasukkan nama pengguna, kata sandi, alamat email
  • Mengapa saya tidak bisa masuk dengan pengguna baru saya? Oh, saya perlu mengklik tautan konfirmasi di email!
  • Yah, saya telah memberi pengguna email seperti "test@example.com". Mari kita pergi ke database dan mengatur kolom "aktif" ke "Ya".
  • Gabung. Kali ini berhasil!
  • Hmm, apa yang ingin saya uji lagi ...?

Mudah? Tidak juga. Ada banyak kemungkinan jebakan dalam proses ini.

Cepat? Tidak. Pekerjaan manual membutuhkan waktu.

Sekarang, mari kita coba menulis tes otomatis :

  • Kita perlu menemukan alat untuk bahasa pemrograman kita untuk secara otomatis memulai database dan server web. Penelitian dan implementasi membutuhkan waktu.
  • Basis data harus dalam keadaan bersih saat tes dimulai. Membuat skrip membutuhkan waktu.
  • Kita perlu menulis ujian. Karena kami membutuhkan pengguna, kami juga harus mendaftarkan yang baru untuk pengujian kami. Butuh waktu.
  • Akhirnya, kita dapat menulis apa yang ingin kita uji: Mengubah kata sandi pengguna. Dengan alat pengujian Browser kami, ini dilakukan cukup cepat dibandingkan dengan tugas sebelumnya.

Mudah? Tidak! Kami perlu meneliti alat, mengimplementasikannya, memperbaiki beberapa bug dalam pengujian kami.

Cepat? Tidak! Bahkan lebih lama daripada melakukan tes manual.

Tapi, ada perbedaan besar di sini: Untuk tes di masa depan, Anda hanya perlu menulis tes itu sendiri , poin terakhir dalam daftar - yang dilakukan dengan cepat sebanding. Semua penelitian dan skrip init tidak perlu dilakukan untuk pengujian lebih lanjut.

Dan setelah Anda menulis tes, Anda bisa memulainya dengan mudah. Dalam beberapa detik (atau mungkin beberapa menit, jika mulai dari database dan aplikasi web membutuhkan waktu lama) Anda melihat apakah rutin "Ubah kata sandi" berfungsi atau tidak. Jika ada bug, perbaiki, dan jalankan tes lagi - Anda akan segera melihat apakah bug sudah diperbaiki. Cepat dan mudah .

Menulis tes otomatis tidak mudah atau cepat di tempat pertama, tetapi melaksanakannya.

Dan inilah titik di mana waktu yang diinvestasikan kembali.


Pos yang bagus, tetapi masalah besar: apa yang terjadi setelah Anda masuk? Sebagian besar logika ini mulai benar-benar serpihan.
joshin4colours

0

Menguji secara umum tidaklah mudah, dan juga tidak seharusnya demikian. Jika Boeing atau Mercedes tidak menguji produk mereka dengan keras seperti yang mereka lakukan maka mereka akan bangkrut karena gugatan hukum atau gulung tikar karena menjual barang-barang berkualitas buruk. Apakah Anda mengendarai mobil dengan kecepatan 70 mil per jam dengan mengetahui bahwa setir mungkin akan hancur?

Sangat sulit untuk menyarankan cara untuk mengatasi pola pikir tanpa memahami siapa orang-orang itu, atau alasan mereka. Sebagian besar manajer dan direktur memikirkan biaya dan dinilai berdasarkan apa yang dihasilkan. Menggunakan kriteria ini membuatnya sangat sulit bagi mereka untuk membenarkan menghabiskan waktu untuk ujian. Jika demikian halnya dengan Anda, maka Anda perlu menemukan cara untuk menyajikan tugas ini sebagai manfaat dalam jangka panjang, yang tentu saja itu.

Hanya karena perangkat lunak tidak berwujud tidak berarti kita dapat pergi tanpa memikirkan implikasi dari sistem yang kita bangun tidak berfungsi. Saya bertaruh Amazon memiliki tes otomatis dan saya bertaruh ada orang di sana yang tahu betul implikasi biaya dari situs web / layanan mereka gagal.


0

2 +2 = 4 adalah salah satu bagian kode paling sederhana yang dipahami semua orang; Dan Anda bisa melihat betapa mudahnya memahami. Tapi ini tidak berarti itu persamaan “mudah”. Tingkat abstraksi yang dibutuhkan untuk mencapai persamaan sederhana cukup kompleks. Hal yang sama terjadi dengan perangkat lunak dan metodologi pengujian perangkat lunak. Tingkat abstraksi yang membutuhkan potongan kode membutuhkan banyak pekerjaan.

Memang benar bahwa praktik yang baik mengarah pada penggunaan kembali kelas dan objek tetapi sama, untuk mencapai keadaan ini diperlukan untuk menginvestasikan waktu dan upaya .


ini tidak menjawab pertanyaan yang diajukan
nyamuk

0

Ada dua sisi dari pertanyaan ini.

Di pihak Anda, Anda tampaknya berpikir bahwa Anda melakukan pekerjaan dengan baik, dan bahwa kelompok "Otomasi itu mudah" tidak tahu apa yang mereka bicarakan.

Di pihak mereka, dari apa yang Anda katakan, mereka melihat tes otomatis mengambil (dalam pandangan mereka) waktu yang lama untuk menghasilkan.

Dari jarak ini, dengan sedikit hal yang harus kita jalani, kita tidak tahu siapa yang "benar", atau apakah ada yang "benar".

Cara menangani otomatisasi adalah pola pikir yang mudah

Bicaralah pada mereka. Jujur tanyakan ide-ide mereka tentang bagaimana hal itu bisa dilakukan dengan lebih baik. Buat mereka terlibat dan terlibat. Ini satu-satunya cara untuk mengetahui apakah mereka benar-benar memiliki sesuatu yang positif untuk ditawarkan. Mungkin mereka memang memiliki kontribusi berharga untuk dilakukan, dan Anda dapat mencapai win-win.

Jika mereka tidak memiliki ide nyata bagaimana pemrograman dan pengujian otomatis bekerja, atau ide realistis untuk bagaimana meningkatkan produktivitas, maka dengan melibatkan mereka secara positif Anda dapat menunjukkan bagaimana hal itu dilakukan dan ke mana waktu berjalan. Bersikaplah rendah hati dan positif, berterima kasih atas masukan / ide mereka. Pikirkan tentang apa yang mereka katakan: mungkin saran mereka akan memicu cara berpikir yang berbeda untuk Anda. Jika demikian, beri mereka umpan balik itu. Dengan menjadi rendah hati dan positif Anda dapat membuatnya menang / menang juga.

Sebelum Anda berbicara dengan mereka, pikirkan bagaimana Anda membangun, menjalankan, dan mengelola tes Anda. Kerangka apa yang Anda gunakan? Apakah ada orang lain yang bisa lebih baik? Apakah Anda memiliki pelat standar "standar" yang Anda sesuaikan? Bisakah membangun tes menjadi lebih otomatis? Apa yang menahanmu?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.