Menulis test case penerimaan

14

Kami mengintegrasikan proses pengujian dalam proses SCRUM kami. Peran baru saya adalah menulis tes penerimaan aplikasi web kami untuk mengotomatiskannya nanti. Saya telah membaca banyak tentang bagaimana tes kasus harus ditulis, tetapi tidak ada yang memberi saya saran praktis untuk menulis kasus uji untuk aplikasi web yang kompleks, dan sebaliknya mereka melemparkan prinsip-prinsip yang saling bertentangan yang saya rasa sulit untuk diterapkan:

  • Kasus uji harus pendek: Ambil contoh CMS. Kasing uji pendek mudah dipelihara dan untuk mengidentifikasi input dan output. Tetapi bagaimana jika saya ingin menguji serangkaian operasi yang panjang (mis. Menambahkan dokumen, mengirim pemberitahuan ke pengguna lain, balasan pengguna lain, status perubahan dokumen, pengguna mendapat pemberitahuan). Menurut saya agaknya kasus uji harus mewakili skenario lengkap. Tapi saya bisa melihat bagaimana ini akan menghasilkan dokumen uji yang terlalu rumit.

  • Tes harus mengidentifikasi input dan output:: Bagaimana jika saya memiliki bentuk panjang dengan banyak bidang yang berinteraksi, dengan perilaku yang berbeda. Apakah saya menulis satu tes untuk semuanya, atau satu untuk masing-masing?

  • Kasing uji harus independen: Tetapi bagaimana saya bisa menerapkannya jika menguji operasi pengunggahan mensyaratkan operasi sambungan berhasil? Dan bagaimana itu berlaku untuk menulis kasus uji? Haruskah saya menulis tes untuk setiap operasi, tetapi setiap tes menyatakan dependensinya, atau haruskah saya menulis ulang seluruh skenario untuk setiap tes?

  • Kasus uji harus didokumentasikan secara ringan: Prinsip ini khusus untuk proyek Agile. Jadi, apakah Anda punya saran tentang bagaimana menerapkan prinsip ini?

Meskipun saya berpikir bahwa menulis tes penerimaan akan menjadi sederhana, saya merasa kewalahan oleh setiap keputusan yang harus saya buat (FYI: Saya seorang pengembang dan bukan penguji profesional). Jadi pertanyaan utama saya adalah: Langkah atau saran apa yang Anda miliki untuk menulis kasus uji penerimaan yang dapat dipertahankan untuk aplikasi yang kompleks. Terima kasih.

Sunting : Untuk memperjelas pertanyaan saya: Saya sadar bahwa pengujian Penerimaan harus dimulai dari persyaratan dan menganggap keseluruhan aplikasi sebagai kotak hitam. Pertanyaan saya berkaitan dengan langkah-langkah praktis untuk menulis dokumen pengujian, mengidentifikasi kasus pengujian, menangani ketergantungan antar tes ... untuk aplikasi web yang kompleks

HH
sumber

Jawaban:

5

Dalam suite penerimaan saya, saya telah tinggal jauh dari menggunakan kontrol spesifik teknologi yaitu untuk aplikasi web tidak menggunakan css jangan gunakan elemen html jika Anda perlu mengisi formulir lakukan spesifik dalam langkah-langkah untuk mengatur SUT bukan tes penerimaan yang sebenarnya

Saya menggunakan mentimun untuk penerimaan saya dan memiliki yang berikut

Given A xxx 
And I am on the xxx page
And a clear email queue
And I should see "Total Payable xxxx"
And I supply my credit card details
When I the payment has been processed
Then my purchase should be complete
And I should receive an email
When I open the email with subject "xxx"
Then I should see the email delivered from "xx"
And there should be an attachment of type "application/pdf"
And attachment 1 should be named "xxxx"
And I should be on the xxx page
And I should see my receipt

contoh ini dikembalikan oleh aplikasi web tetapi saya masih dapat menggunakan tes untuk menguji terhadap aplikasi desktop karena langkah-langkah yang digunakan untuk mengatur SUT bukan tes penerimaan

tes ini duduk di akhir pembelian yang berjalan

Hasilkan -> Konfirmasi -> Pembayaran -> Tanda Terima Cetak

tes di atas adalah untuk langkah pembayaran, langkah-langkah lain diatur dalam tes lain karena aplikasi dapat mengatur ke negara-negara ini dengan data atau tindakan http dalam hal ini pembayaran telah diberikan yang melakukan langkah-langkah konfirmasi dan konfirmasi melakukan menghasilkan langkah-langkah sehingga mereka sedikit rapuh saat ini

ssmithstone
sumber
2

Pertama, Anda perlu mendefinisikan Pengujian Penerimaan .

Apa yang Anda uraikan adalah integrasi atau pengujian sistem .

Jadi, walaupun saya tidak 100% setuju dengan definisi wikipedia, mereka sebagian besar masih valid.

Pada dasarnya tujuan pengujian penerimaan adalah untuk memverifikasi bahwa proses 'bisnis' yang menggunakan perangkat lunak yang Anda buat benar-benar berfungsi sebagaimana mestinya dan sesuai untuk tujuan - dengan data kehidupan nyata. Jadi dengan demikian Anda tidak membangun kotak uji seperti Anda melakukan unit test atau yang lainnya. Seharusnya tidak direkayasa dengan cara yang sama.

Pertanyaan yang harus ditanyakan adalah "bagaimana sistem yang digunakan?". Jadi mari kita mengujinya dengan cara yang seharusnya digunakan. Tentu saja sekarang Anda mengenakan topi teknik Anda kembali dan pergi melalui persyaratan bisnis secara agama untuk menurunkan kasus pengujian Anda. Itu mengasumsikan bahwa Anda memiliki persyaratan bisnis yang ditulis dengan baik.

Jika tidak, belum terlambat, Anda harus duduk bersama pengguna atau perwakilan mereka (dan analis bisnis dan personel desain teknis) dan menuliskan apa yang mereka harapkan dari perangkat lunak untuk disampaikan dalam istilah bisnis ( dengan peringatan yang jelas bahwa ini terlalu sedikit terlambat, tetapi lebih baik untuk memulai terlambat daripada tidak pernah - dan tentu saja tidak memperkenalkan fitur baru). Inilah yang akan menjadi kasus uji Anda.

Cara lain untuk melakukannya (lagi-lagi jika Anda memiliki dokumen seperti itu) adalah melalui manual pengguna. Meskipun ini adalah satu langkah dihapus dari persyaratan bisnis yang sebenarnya jadi hanya untuk digunakan jika semuanya gagal.

Ketika Anda pergi membeli mobil, biasanya Anda tidak masuk terlalu dalam (kecuali Anda adalah mekanik mobil). Anda hanya duduk di belakang kemudi dan memeriksa kenyamanan, kegunaan, penampilan, suara ... yaitu hal-hal umum. Anda umumnya percaya bahwa jika mobil harus berada di tangan Anda di tempat pertama (setidaknya untuk mobil baru), umumnya aman dan dibangun dengan baik (ada garansi, Anda telah melakukan pekerjaan rumah Anda dan melihat spesifikasi ...). Jadi sekarang Anda memeriksa apakah ini mobil yang ingin Anda kendarai selama beberapa tahun ke depan.

Sama dengan perangkat lunak.

pindahkan
sumber
5
Ada berbagai jenis tes penerimaan. Yang dijelaskan oleh pos ini adalah tes "penerimaan pengguna". Saya pikir OP bertanya tentang tes penerimaan dalam metode Agile yang memastikan cerita pengguna telah selesai. Tes-tes ini perlu sedikit lebih dalam "di bawah kap", karena mereka adalah bentuk utama dari pengujian fungsional untuk beberapa tim Agile. Penerimaan dalam hal ini bukan "pelanggan menerima perangkat lunak", tetapi "tim menerima bahwa cerita pengguna selesai".
Ethel Evans
Bisakah Anda mengomentari ini ? Saya suka poin ini: Pertanyaan yang diajukan adalah "bagaimana sistem yang digunakan?"
user1787812
@ user1787812 maaf, saya bukan ahli alat. Pendekatan Anda tampaknya masuk akal pada pandangan pertama. Dan tidak seperti kata komentator pertama Anda, OAT adalah istilah umum.
asoundmove
1

Informasi yang bertentangan dapat membuat frustrasi, dan sulit untuk digeneralisasi dan diterapkan pada situasi spesifik Anda. Ergo, Anda mungkin harus melakukan yang terbaik dalam konteks Anda.

Saya bukan penggemar berat dokumen uji panjang, dan telah menggunakan visual cukup efektif untuk beberapa proyek kecil. Coba itu? Seperti diagram alir (atau diagram UML lainnya seperti diagram keadaan, dll) alih-alih hanya menggunakan teks? Tunjukkan input, output, kondisi, loop, jalur, status, interaksi dengan komponen lain dll, dan kemudian tunjukkan jika mereka berhasil, gagal, ditransfer, lainnya (?) Berdasarkan kriteria Anda.

Mungkin sedikit kerja di awal, tetapi mungkin membantu Anda tetap waras dalam jangka panjang. Apapun metode yang Anda pilih, semakin banyak Anda bekerja dengannya, semakin baik Anda mendapatkannya.

HTH, dan semoga berhasil!

KM

KM.
sumber
0

Saya pikir Anda sudah menemukan beberapa kriteria bagus. Poin kedua Anda adalah cara yang baik untuk mendefinisikan cakupan untuk pengujian Anda, dan saya sarankan juga menguji untuk kondisi kesalahan dan perbaikan (saya menganjurkan bahwa setiap perbaikan bug datang dengan setidaknya satu tes unit baru). Ini mungkin tampak luar biasa sekarang, tetapi cukup menyelam, dan setelah mendapatkan sedikit pengalaman, mengenali apa yang membuat tes yang baik akan menjadi lebih mudah.

smithco
sumber