Mengapa penguji dan programmer tidak saling menyukai? [Tutup]

18

Selama karir saya sebagai seorang programmer saya telah melihat berbagai programmer dan penguji, dan banyak dari mereka tidak / tidak saling menyukai. Maksud saya, programmer berpikir bahwa pekerjaan tester bukanlah pekerjaan "nyata", dan penguji berpikir bahwa programmer terlalu "bangga".

Apakah ini keputusan yang tepat yang saya buat, mengapa demikian, dan apa yang bisa kita lakukan untuk menghindari masalah-masalah semacam ini?

Dehumanizer
sumber
Komentator: komentar dimaksudkan untuk mencari klarifikasi, bukan untuk diskusi panjang. Jika Anda punya solusi, tinggalkan jawaban. Jika solusi Anda sudah diposting, harap perbarui. Jika Anda ingin mendiskusikan pertanyaan ini dengan orang lain, silakan gunakan obrolan . Lihat FAQ untuk informasi lebih lanjut.

Jawaban:

50

Saya pikir itu terlalu generalisasi dan penyederhanaan.

Saat ini saya seorang tester, saya menulis kode hampir sebanyak yang saya tulis sebagai dev (tergantung pada tahap pengujian) dan sahabat saya di perusahaan adalah dev dan kita semua rukun.

Anda mungkin ingin melihat budaya perusahaan dan cara tim bekerja sehubungan dengan satu sama lain untuk menemukan jawaban Anda. Dalam pengalaman saya, jika Anda memiliki alur kerja yang sangat reaksioner (mis. Devs "melempar build ke dinding untuk menguji" dan menguji "melempar bug kembali") alih-alih bekerja bersama , hanya dari titik fokus berbeda atau "vektor serangan" maka Anda ' Saya akan menemukan bahwa kedua departemen secara umum, akan saling membenci.

Di tempat saya bekerja, setiap tim fitur atau tim desain memiliki penguji hampir sama banyaknya dengan pengembang yang bekerja sama untuk menghasilkan output. Output itu adalah kode produksi yang memenuhi persyaratan yang ditetapkan oleh kode uji.

sunting

Perhatikan juga, bahwa saya pikir tanggung jawab ada pada tester lebih dari dev untuk mendukung hubungan antara keduanya.

Jauh lebih mudah bagi kita untuk menjadikan kehidupan dev lebih baik atau lebih buruk, tetapi tujuannya bukan untuk hanya "menemukan bug" tetapi juga untuk menemukan solusi potensial. Jika saya tidak bisa, maka saya tidak bisa, dan saya akan bekerja dengan siapa pun yang ditugaskan bug pada saat itu untuk menemukan solusi. Tetapi jika ini adalah solusi sederhana maka saya akan memberikan apa yang saya yakini sebagai perbaikan potensial yang akan memenuhi berbagai persyaratan dan tes regresi akhirnya yang akan saya tulis.

Steve Evers
sumber
4
+1 Saya lebih suka orang tester (QA) menemukan lebih banyak bug daripada membuang waktu mencari tahu kode dan mencari solusi potensial. Itu sebabnya mereka dalam ujian dan kami dalam dev. Orang QA yang hebat bernilai sama seperti pengembang yang hebat, dan saya lebih suka masing-masing menghabiskan waktu di bidang kekuatan mereka. Yang mengatakan, apa yang benar-benar membantu dari QA adalah mengirimkan kembali laporan bug yang dapat dipahami yang menguraikan kondisi persis bug sehingga mudah direproduksi. Tidak ada yang lebih buruk daripada "X gagal", dan tidak ada yang lebih baik daripada "Dalam kondisi A, B, C dan D, X gagal dengan kesalahan Y"
unpythonic
3
@ Markus Mann: Saya pikir kami memiliki pandangan berbeda tentang waktu yang terbuang :) Dari sudut pandang QA, ini adalah situasi yang menarik untuk bertanggung jawab atas kualitas pekerjaan orang lain. Ketika saya menganggap bahwa kadang-kadang ada orang di QA yang dua kali pengembang dari beberapa orang di tim dev ... frustrasi bisa mengambil alih dan Anda akhirnya berpikir "tulis saja seperti ini, dan itu akan berhasil. Saya tidak ingin harus melalui masalah pengujian ini lagi, dan menaikkan kembali bug atau regresi yang sama. " Selain itu, jika saya dapat membantu mempermudah pekerjaan / hari seseorang, saya adalah pria yang bahagia.
Steven Evers
2
Masalah dan ketegangan muncul ketika (QA) tujuan proyek tidak jelas untuk semua orang di tim, dan manajemen proyek yang buruk memungkinkan QA atau Devs "memerintah" bertengger. Saya telah bekerja di tempat di mana QA menemukan cacat dan bertindak seperti pitbull dengan tulang, tidak akan membiarkannya pergi, membuat proyek terlambat melebihi anggaran, dan cacat secara signifikan tidak mungkin terjadi dan kecil dibandingkan dengan mereka yang memiliki belum ditemukan, atau fitur belum selesai. Tugas QA adalah memastikan produk terbaik dikirimkan dalam batasan bisnis, bukan untuk menemukan dan memperbaiki setiap cacat dengan mengorbankan proyek.
mattnz
28

Saya SUKA penguji saya - mereka membantu saya memecahkan masalah dan menemukan hal-hal yang saya tidak anggap sebagai masalah, tetapi pelanggan kami akan melakukannya. Dan yang paling penting bagi saya, mereka membantu saya memastikan saya tidak membunuh seseorang dengan kode yang buruk.

Mengapa masalah muncul?

  • Anda terus-menerus menilai bahwa satu sama lain berfungsi, dan beberapa orang tidak dapat menerima kritik apa pun
  • Melakukan pekerjaan yang buruk menghabiskan waktu lawan Anda
  • Anda berdua berada di bawah tekanan, pada saat yang sama, untuk hal yang sama dan tidak ada yang ingin menjadi orang yang mengangkat semuanya

Kombinasi dari hal di atas bersama dengan sifat posisi berarti sangat mudah untuk mengeluarkan kemarahan dan frustrasi Anda saat ini satu sama lain, jika Anda jatuh ke dalam perangkap itu, Anda berhenti bekerja sama dan mulai saling bekerja sama. Itu sulit untuk keluar dan itu tidak baik untuk siapa pun.

DKnight
sumber
6
Betapa frustrasinya mendapatkan perbaikan yang ditolak oleh penguji (QA) mungkin, jauh, jauh (apakah saya katakan jauh?) Lebih buruk mendapatkan laporan kesalahan dari pelanggan. Saya lebih suka departemen QA saya menunjukkan betapa bodohnya saya telah memperbaiki bug / mengimplementasikan fitur daripada memiliki seratus kasus pelanggan dibuka karena tidak tertangkap sebelum dirilis.
unpythonic
16

Saya kira itu terjadi karena pemrogram membuat program, dan mereka menganggap bahwa penguji kemudian mencoba menemukan kekurangan di dalamnya (meskipun penguji sebenarnya adalah bagian dari meningkatkan produk akhir). Setiap kali seseorang menemukan kekurangan dalam sesuatu yang Anda lakukan dengan banyak upaya, itu mungkin reaksi alami untuk bereaksi negatif terhadap mereka.

Cara untuk mengurangi ini adalah dengan membuat pengembang dan penguji memandang produk jadi sebagai hasil dari seluruh tim (termasuk penguji DAN pengembang) dan membuat mereka mengerti bahwa pengujian bukanlah misi pencarian kesalahan yang berdiri sendiri tetapi merupakan bagian penting dari yang pengembangan proses. Dan jika pengembang tidak menganggap pengujian itu pekerjaan nyata , atau mudah, suruh mereka menulis matriks tes, jalankan ratusan kasus uji, dokumentasikan setiap langkah dan setiap hasil.

FrustratedWithFormsDesigner
sumber
2
Sepakat. Juga menjadikan penguji bagian dari pengembangan sejak hari pertama (membuat tes selama perencanaan dan desain) membantu menghindari banyak gesekan.
Martin Wickman
3
Kuncinya adalah mengubah cara bersikap dari menemukan kekurangan menjadi membantu menemukan cara untuk memperbaiki program . Sebagai seorang penguji, mudah terjebak dalam gagasan bahwa menemukan cacat adalah tujuan utama Anda.
edA-qa mort-ora-y
@ edA-qa mort-ora-y: Poin bagus!
FrustratedWithFormsDesigner
"beause" -> "karena"
Peter Mortensen
8

Saya tahu programmer dan penguji tertentu yang tidak suka satu sama lain, tetapi bukan karena alasan yang Anda nyatakan tetapi karena mereka membuat pekerjaan untuk satu sama lain.

Itu sifat binatang itu. Beberapa penguji tertentu yang saya kenal yang tidak peduli dengan pemrogram tertentu karena mereka merasa kode mereka rentan terhadap kesalahan melalui kecerobohan / kemalasan / dll. Beberapa coders tertentu yang saya tahu yang tidak peduli dengan penguji tertentu merasa mereka menggunakan kondisi tes yang dibuat-buat secara konyol (memilih nits) atau akan meminta revisi kode berdasarkan gaya.

Saya pikir menjaga kepribadian dari itu, dan fokus pada tugas yang ada jauh untuk mengurangi ketegangan. Jika sebuah organisasi cukup besar, pengujian double blind adalah ide bagus.

Penguji yang dapat dengan jelas mengungkapkan masalah, dan pembuat kode yang dengan jelas mengimplementasikan solusi adalah tim yang hebat.

Stephen
sumber
5

Di tim-tim di mana saya telah bekerja erat dengan para penguji, kami berteman akrab. Penguji memahami keputusan yang masuk ke berbagai keputusan yang dibuat, mereka tahu seperti apa jadwal dev, dan hubungan dibangun antara kedua kelompok.

Dalam tim di mana tes merupakan entitas amorf di luar negeri, ini belum terjadi. Hasil penguji kurang relevan karena mereka tidak tahu banyak tentang apa yang terjadi, para devs mulai takut banjir apa yang mereka anggap sebagai rincian ngawur yang ada di bagian-bagian dari program yang belum tersentuh dalam dua berbulan-bulan, tim pengujian menjadi kesal karena tidak ada bug yang diajukan diperbaiki (karena jadwal kacau dan devs sibuk bersiap-siap untuk demo atau menambahkan fitur yang diminta, dll), dan secara umum kedua kelompok melihat satu sama lain sebagai antagonis "orang lain" sebagai lawan anggota tim.

Bekerjalah dengan cermat dan semuanya akan baik-baik saja. Seseorang harus memastikan kedua tim terkoordinasi dan berada di halaman yang sama. Pengalaman terbaik saya, tim pengujian diundang ke pertemuan tingkat tinggi yang diundang oleh tim pengembang (semua dari mereka) dan kami semua tahu jadwalnya, kami memiliki daftar prioritas terpadu, dan pengembang dan pengujian keduanya memiliki hasil yang sama (up- dokumen persyaratan). Pengalaman terburuk saya (selain tanpa tes) pada dasarnya kami mengemas barang-barang kami, mengirimkannya ke luar negeri untuk dilihat, kemudian mendapatkan semuanya kembali sebulan kemudian dengan hal-hal yang ditandai sebagai salah yang bahkan bukan milik kami (plugin pihak ke-3 yang memenuhi yang baru) persyaratan, tetapi bukan harapan tim uji).

Dev atau tes tidak akan berhasil tanpa yang lain. Jika Anda bekerja seperti dua bagian dari mesin yang sama dan menghormati sisi lain sebanyak Anda menghormati anggota tim yang lebih langsung, semuanya akan baik-baik saja. Berperilaku seperti dua mesin terpisah dan menganggap mesin Anda lebih baik, semuanya akan mengerikan.

PeterL
sumber
5

Ketika programmer dan penguji tidak saling menyukai, seringkali itu karena mereka secara keliru membayangkan bahwa tujuan mereka bertentangan.

Dale Emery
sumber
3

Saya telah menemukan bahwa masalah ini sangat diredakan ketika penguji dan pengembang berada di tim yang sama, daripada "tim uji" dan "tim pengembangan". Saya pikir inilah sebabnya, sebagai seorang tester, saya lebih suka bekerja pada tim Agile daripada pengembangan air terjun. Ada lebih banyak komunikasi, turn-around lebih cepat, dan pengembang memiliki apresiasi yang lebih besar untuk waktu dan bakat yang masuk ke pengujian ketika pekerjaan itu lebih transparan.

Secara individual, ada banyak hal yang dapat dilakukan juga. Sebagai seorang penguji, saya menemukan saya dapat mengurangi gesekan ini dengan memberikan umpan balik positif serta menemukan bug. Saya belum menguji seorang dev yang tidak bisa mengajari saya banyak , dan saya menemukan pengembang menghargai seorang tester yang benar-benar bekerja untuk memahami kode. Pengembang yang bangga, seperti yang baik pengrajin. Penting untuk memberi tahu mereka bahwa memiliki bug tidak membuat mereka kurang mengagumkan

Para pengembang yang saya temukan paling mudah untuk bekerja dengan menghargai kualitas yang baik, dan mendemonstrasikannya dengan membuat upaya untuk menulis kode berkualitas tinggi sebelum penguji melihatnya, termasuk melakukan pengujian pendahuluan (terutama pengujian unit otomatis dan pengujian asap manual). Pengembang ini juga meminta tes untuk melakukan tinjauan kode untuk testabilitas, dan memasukkan penguji dalam proses sesegera mungkin, termasuk menyajikan desain kepada mereka sejak awal (yang memungkinkan penguji memulai perencanaan strategi pengujian awal, ketika tes memiliki beban yang lebih ringan). Pengembang dapat membantu penguji menemukan area yang lemah dalam kode mereka dengan memberi tahu mereka area mana yang dikembangkan dengan terburu-buru, atau area mana yang sulit untuk disatukan. Secara umum, apa pun yang dapat dilakukan pengembang untuk membuat pekerjaan penguji lebih mudah dihargai, dan menunjukkan bahwa mereka menghargai waktu penguji serta milik mereka. Ketika pengembang melakukan ini,

Ethel Evans
sumber
3

Masalah lain adalah bahwa QA sering kali dipikirkan oleh banyak perusahaan. Banyak kali dikatakan tentang proyek pada menit terakhir dan sangat kekurangan staf dibandingkan dengan tim pengembangan. Di beberapa tempat, jalan menuju pengembang adalah dukungan teknis, QA, dan kemudian pengembang. Jadi kadang-kadang staf dengan orang-orang yang berharap mereka adalah pengembang ... Dan kemudian ketika mereka menemukan cacat sikap mereka adalah bagaimana orang itu bisa menjadi pengembang dan bukan saya, saya tidak akan pernah membuat kesalahan seperti itu, dll ...

Secara keseluruhan saya akan menyukai tim QA. Saya juga berpikir bahwa pengujian unit harus menjadi bagian penting dari pengembangan perangkat lunak yang terpisah dari QA. Jadi ketika QA menemukan bug, unit test diubah untuk menguji hal itu. Selain itu saya pikir pengembang yang menguji unit dapat lebih memahami apa yang ditemukan QA.

Selain itu banyak tim QA harus melakukan hal-hal secara manual, dalam hal ini adalah pekerjaan yang BENAR-BENAR membosankan. Di beberapa tempat QA menulis skrip dan menggunakan program otomasi yang bahkan memungkinkan skrip GUI (melalui semacam pengenalan gambar pada layar untuk tombol / dll.). Maka masih sulit ketika perubahan besar terjadi pada awalnya, tetapi kemudian semuanya otomatis dan tampaknya lebih menyenangkan ...

Juga beberapa pengembang memandang rendah QA. Masih saya lebih suka QA menemukan cacat daripada pelanggan ....

Cervo
sumber
2

Kami mencintai penguji kami di sini, tetapi kemudian banyak dari kita yang ingat bagaimana rasanya sebelum kita memilikinya. Adalah jauh lebih baik untuk meminta penguji menemukan masalah daripada meminta klien menemukannya setelah Anda berproduksi. Tidak ada pengembang yang hidup yang belum membuat bug atau salah menafsirkan persyaratan.

Kuncinya adalah memperlakukan semua profesional dengan sopan dan menghormati apakah mereka melakukan apa yang Anda lakukan atau tidak. Begitu Anda mulai berpikir pekerjaan Anda lebih baik atau lebih penting daripada pekerjaan mereka, maka Anda telah kehilangan.

Berdasarkan pertanyaan ini: Teknik atau Kategori Pengujian Perangkat Lunak, saya kira Anda memerlukan penyesuaian sikap terhadap penguji dan pengujian secara umum.

HLGEM
sumber
2

Sebagai pengembang, saya mengalami ketegangan dengan penguji.

Dalam satu pekerjaan, para penguji jarang akan menguji "hal yang benar". Saya akan mengimplementasikan fitur baru untuk server produk kami, dan penguji akan melaporkan banyak kesalahan tentang antarmuka pengguna. Karena, dalam produk itu, antarmuka pengguna dikonfigurasikan bukan kode , keberadaan (atau tidak) masalah dalam pengembangan UI kami sama sekali tidak memiliki tautan ke apakah pengguna akhir akan memiliki UI dengan masalah yang sama. Para penguji mengetahui hal ini, namun tetap melakukan logging bug tentang area-area asing.

Yang mengatakan, penguji yang baik bernilai emas - saya akan menjual pengembang yang buruk untuk penguji yang baik dalam sekejap. Penguji yang baik adalah mitra dalam memberikan produk yang berkualitas.

Saya juga tahu beberapa pengembang yang memperlakukan penguji sebagai musuh - seolah-olah penguji memperkenalkan kesalahan. Penting bagi pengembang untuk menyadari bahwa penguji tidak pernah memperkenalkan kesalahan - mereka hanya mengungkapnya.

Bevan
sumber
1

Bagaimana cara menghindari masalah ini? Bagaimana kalau bersikap baik satu sama lain? Yang satu membutuhkan yang lain untuk mendapatkan aplikasi perangkat lunak yang berkualitas, jadi mengapa tidak menghormati apa yang harus dilakukan masing-masing pihak untuk mencapai ini? Kenali apa yang dilakukan masing-masing pihak dan Anda mungkin benar-benar menghargai pekerjaan yang terlibat.

Bernard
sumber
1

Keras kepala di kedua sisi dari apa interpretasi yang benar dari suatu persyaratan adalah di mana saya cenderung melihat konflik antara pengembang dan penguji pada umumnya. Meskipun mungkin ada penampilan keangkuhan atau kesombongan, hanya saja masing-masing pihak menempel pada senjata mereka dan ingin menjadi yang benar.

Cara yang baik untuk menghindari masalah ini adalah memiliki 3 pihak, pengembang, penguji, dan beberapa mediator, baik analis bisnis atau manajer proyek, bekerja melalui cara penanganan berbagai kasus perbatasan. Sesuatu yang perlu dipertimbangkan adalah jenis ego apa yang mungkin muncul ketika ada ketidaksepakatan antara pengembang dan penguji.

JB King
sumber
1

Perasaan tidak enak biasanya merupakan hasil dari komunikasi yang buruk, yang biasanya merupakan hasil dari programer dan penguji memiliki sudut pandang yang berbeda dari kode. Programmer tahu bit yang dia kerjakan secara intim, tetapi mungkin tidak tahu bagaimana mereka masuk ke dalam sistem keseluruhan (di luar apa spesifikasi mengatakan kepadanya). Penguji melihat gambaran besar, tetapi tidak tahu kode secara detail. Kelompok dapat menggunakan terminologi dan prosedur berbeda untuk hal yang sama.

Hal ini dapat menyebabkan cacat diajukan terhadap komponen yang salah (karena komponen merespons kegagalan di bagian hulu), atau pengembang menutup cacat yang sah karena mereka tidak dapat mereproduksi masalah di lingkungan mereka (karena mereka tidak benar-benar mengerti cara mereproduksi masalah dengan benar). Jika ini sering terjadi, ini bisa membuat hubungan antar kelompok menjadi tegang.

Lalu ada sukacita mendapatkan sejumlah cacat pada jam ke-11; tenggat waktu menjulang, tekanan datang pada Anda dari manajer langsung Anda di atas rantai, dan Anda mendapatkan batch baru cacat pada masalah yang Anda tahu Anda sudah perbaiki dan Anda benar-benar tidak ingin harus mengambil waktu untuk pergi melalui proses untuk membuktikannya.

Salah satu cara yang sangat baik untuk mengecewakan tim QA Anda adalah dengan meringkas beberapa ratus cacat yang sah tetapi prioritas rendah (terutama diajukan terhadap UI yang jelek atau tidak konsisten yang berfungsi) dengan alasan bahwa simpanan cacat prioritas tinggi Anda terlalu besar sehingga " kita tidak akan pernah sampai ke sana. " Anda beralih dari merah ke hijau pada spreadsheet manajer program dan mendapatkan attaboy dari manajemen yang lebih tinggi, sementara tim QA mengambil hit pada metrik mereka untuk mengajukan banyak cacat palsu.

Juju buruk.

John Bode
sumber
1

Ini sering muncul dari tiga faktor -

  • Pertanyaan seperti ini menunjukkan keberadaan 'cerita rakyat' di industri yang tidak disukai oleh pengembang dan penguji. Orang-orang berusaha menemukan aspek yang memperkuat ini, bahkan ketika perasaan seperti itu mungkin tidak ada di tim mereka.
  • Manajer proyek tidak kompeten mengukur kemajuan dengan metrik seperti jumlah bug yang dicatat.
  • Tim yang disfungsional (dan kurangnya pemimpin yang cukup peduli untuk memperbaikinya).
talonx
sumber
1

Saya suka penguji, tetapi dua kasus saya menemukan konflik.

  1. Ketika manajemen bermain penguji dan saling memuja.

  2. Ketika masalah terus-menerus disampaikan yang kurang detail, yaitu "Layar x tidak berfungsi".

Craig
sumber
0

Saya pikir jika ini benar-benar terjadi, itu adalah tanda ketidakdewasaan. Terkadang Anda mungkin membicarakannya sebagai lelucon. Tetapi jika Anda (pengembang dan penguji yang mengerjakan proyek yang sama) tidak merasa seperti tim, hasilnya akan menjadi bencana.

Pengujian adalah bagian yang cukup penting dari siklus hidup pengembangan perangkat lunak (baik gesit atau tidak). Jadi Anda tidak boleh menganggap penguji sebagai orang yang hidup mengganggu Anda dengan bug, melainkan sebagai rekan tim yang membantu Anda mengirimkan perangkat lunak berkualitas.

Shady M. Najib
sumber