Bukan rahasia lagi bahwa perangkat lunak yang baik berbeda dari yang lain tidak dalam fungsionalitas, tetapi dalam kualitas fungsi yang dinyatakan. Lagi pula, tidak ada yang membutuhkan perangkat lunak yang kaya fungsionalitas jika tidak berfungsi. Tetapi bagaimana Anda bisa memberi tahu pengembang tepat waktu bahwa ada yang salah dengan proyek?
Hari ini kita akan berbicara sedikit tentang masalah komunikasi antara departemen dalam perusahaan, dan pada saat yang sama dengan contoh Uji IT kita akan melihat apa yang membantu kita untuk memahami Zen: tidak memihak, dengan hati batu dan jiwa dari algoritma - bot pada Bot Framework. Selamat datang di kucing!

Sudah lama diyakini bahwa dalam perang alat utama adalah komunikasi. Tanpa komunikasi, mustahil untuk mengoordinasikan pasukan Anda, mencari tahu berita dari ladang, memberikan dukungan dan mengikuti tindakan musuh. Dan apa pengembangan, jika bukan perang lokal dari beberapa departemen untuk suatu produk?
Dan jika pada zaman kuno mereka menggunakan kurir, kurir, dan kemudian telepon, untuk menyebarkan berita, maka pada ambang tahun 2020 akan aneh untuk menggunakan teknologi tersebut, terutama ketika pasukan Anda yang bekerja pada suatu produk dapat didistribusikan jauh melampaui batas-batas satu kantor. Inilah Insinyur QA kami dan mengajukan pertanyaan serupa.
Tentu saja, Anda dapat menulis detail tentang pengujian yang gagal dalam obrolan langsung. Tetapi ini akan membutuhkan waktu yang tidak ingin Anda habiskan untuk jenis notifikasi yang sama. Anda dapat menambahkan perintah ke portal
Test IT dan memaksa mereka untuk memeriksa status autotest. Dan ini juga akan menyelesaikan sebagian masalah, tetapi kebutuhan untuk terus berada di portal akan sangat mengganggu tim pengembangan. Kami membutuhkan sesuatu yang lebih sederhana, tanpa harus membuang waktu mengirimkan pemberitahuan sekali lagi.
Mengikuti logika ini, kami datang ke webhooks. Mereka akan mengotomatiskan pengiriman notifikasi dan log kritis dari sistem ke semua zat besi yang terhubung ke Internet.
Jadi, kami menyortir saluran komunikasi. Saatnya untuk memikirkan di mana webhook harus mengirim pemberitahuan. Idealnya, ini harus menjadi platform yang menggabungkan beberapa pengirim pesan instan dan email untuk pecinta klasik. Dan, seperti yang Anda tebak dari judul artikel, platform jatuh pada Kerangka Bot.
Kombinasi ini sepenuhnya memenuhi persyaratan untuk pemberitahuan mendesak, akan memperluas kemampuan bot tanpa mengganggu uji kasus dan platform. Dan bot itu sendiri akan menjadi asisten pengembangan kami, yang tanpa lelah akan membaca obrolan yang berfungsi dan memberi tahu kami tentang segala peristiwa yang menarik di TMS Test IT.
Pada artikel hari ini, kami akan mempertimbangkan contoh penggunaan bot di Telegram untuk mengirim pemberitahuan ke tim pengembangan dan pengujian dari platform Uji TI.
Buat proyek dan bot
Buka portal dan buat proyek baru:

Proyek ini mencakup test case, auto test, daftar periksa, webhooks dan banyak lagi.
Selanjutnya, buat rencana uji. Biarkan ia memiliki nama yang tidak rumit sama dengan nama proyek:

Lebih lanjut, Anda dapat menambahkan test case baru, tetapi kami akan langsung menuju pembuatan asisten cerdas kami. Jangan tutup portal, kami akan kembali ke sana untuk menyiapkan webhooks.
Pengembangan akan dilakukan pada Net Framework. (Yah, di mana tanpanya) menggunakan Azure. Sebenarnya, kita akan mulai dengan
Azure .
Pergi ke portal dan cari Bot Aplikasi Web:

Klik "Buat", isi bidang yang wajib diisi dan luaskan. Sebagai bagian dari artikel, kami awalnya akan menggunakan templat Echo Bot dan di masa mendatang kami akan membuatnya
Ketika bot berhasil digunakan, saatnya untuk terhubung ke saluran komunikasinya dengan bot. Daftar opsi messenger dan komunikasi yang sangat besar disajikan untuk pilihan pengembang, tetapi Telegram cukup untuk tujuan kita.
Untuk melakukan ini, tulis beberapa perintah yang baik ke bot
@BotFather dan buat bot baru. Untungnya, dia berkomunikasi dengan kami dengan sangat ramah, membantu menciptakan jenisnya sendiri. Bot Father diciptakan di Telegram untuk mengontrol bot lainnya. Ya, tidak heran namanya adalah bapak bot!
Pada akhir pendaftaran, Bot Father harus memberi kami kunci unik anak kami. Kami senang menyalinnya, berterima kasih kepada ayah dari keluarga aneh ini dan kembali ke portal Azure.
Sekarang kita perlu mengunduh kode sumber bot agar kita dapat bekerja dengannya langsung di IDE kita:

Segera kita bisa mendapatkan emulator untuk debugging lokal. Jika bot Anda akan memiliki sedikit lebih banyak logika daripada output dari "Hello world", lebih baik untuk mendapatkan alat untuk debug dan menguji anggota tim baru Anda.
Langsung di portal, kami hanya perlu membuka bot baru kami, pergi ke tab "Saluran", tambahkan saluran Telegram dan berikan kunci, silakan ditinggalkan oleh ayah bot. Juga, untuk mencegah bot agar tidak menabrak untuk waktu yang lama tidak aktif, disarankan untuk beralih ke layanan aplikasi (namanya mirip dengan nama bot kami di portal) -> konfigurasi -> parameter umum dan di kolom "Selalu Aktif" pilih status "Diaktifkan". Kalau tidak, bot Anda mungkin tertidur, dan butuh waktu berharga bagi pengguna akhir untuk meluncurkannya.

Juga, karena kita masih di portal Azure, kami akan menggunakan database kecil untuk bot ini. Berguna untuk menyimpan daftar indeks grup dan kunci rahasia mereka. Anda dapat membaca lebih lanjut tentang penyebaran basis data di
sini .
Jadi, jika, ketika mengakses bot kami di Telegram, ia mengembalikan pesan kami, itu berarti kami melakukan segalanya dengan benar dan tab dengan Azure dapat ditunda hingga waktu yang lebih baik. Sekarang Anda dapat mulai mengerjakan logika asisten kami.
Kami mengarahkan otak bot

Bagi mereka yang memiliki pengalaman dengan ASP.NET Core, tidak ada hal baru yang akan datang selanjutnya. Sisanya akan meninggalkan manual singkat tentang apa yang harus dilakukan selanjutnya:
- Untuk mengajarkan aplikasi agar bekerja dengan Entity Framework dan untuk mengikat basis data. Penting bagi bot untuk dapat menyimpan komunikasi ChatID, status mengabaikan obrolan dan "secretKeyBot" dari entitas yang masuk dalam database. Ini akan memungkinkan penggunaan bot tidak hanya dalam kerangka proyek ini dan perusahaan secara keseluruhan, tetapi juga dengan bebas menambahkannya ke grup untuk semua orang;
- Tambahkan model data dan pengontrol API. Dalam aplikasi kami, harus ada beberapa titik masuk eksternal di mana Anda dapat mengakses bot dan mengirimkan badan permintaan. Model data adalah representasi dari tubuh permintaan, dan pengontrol harus bekerja dengan panggilan eksternal;
- Tulis teka-teki dan tim layanan. Jika semuanya jelas dengan kruds, maka layanan perintah adalah logika bisnis kami untuk memproses pesan obrolan. Awalnya, kami ingin menghilangkan pemberitahuan dari bot dalam obrolan tertentu. Salah satu opsi untuk melakukan ini adalah langsung dengan perintah obrolan, yang harus diproses bot dan hanya diingat untuk obrolan ini.
- Uji bot di lingkungan lokal menggunakan emulator. Terutama orang yang berpengalaman dapat mengunggah bot langsung ke Azure dan menonton perilakunya melalui obrolan di Telegram, tetapi dalam kasus ini bot tidak akan mengembalikan Anda deskripsi terperinci tentang kesalahan tersebut. Ya, dan breakpoints (alat debugging favorit) tidak dapat ditempatkan. Ngomong-ngomong, fitur kecil dari Kerangka Bot adalah bahwa ia benar-benar tidak suka mengembalikan deskripsi kesalahan yang terperinci. Jadi kami berkembang dengan hati-hati dan lebih sering berkomitmen!
- Terbitkan ke Azure. Di antara folder proyek, Anda dapat menemukannya dengan nama yang tidak rumit "PostDeployScripts". Ini berisi satu file penting bagi kita dengan ekstensi .PublishSettings. Data tentang menghubungkan ke penyimpanan bot di Azure ada di sana. Dan bagi mereka yang menggunakan Visual Studio, file ini adalah kunci suci untuk mempublikasikan proyek: impor saat penerbitan, dan IDE akan mengambil semua data yang diperlukan dari itu.
Tambahkan webhook
Sebenarnya, bot itu dibuat. Saatnya untuk menjatuhkan webhook dari portal TestIT. Kami senang bahwa kami tidak menutup tab di browser, dan pergi ke sana:

Kami masuk ke pengaturan proyek, tab "Webhooks" dan menambahkan yang baru:

Sekarang mari kita coba mengubah status paket tes dan melihat bagaimana bot akan merespons.

Sebenarnya, di sinilah kami berakhir dengan contoh kecil membuat bot asisten. Bot kami dapat dilihat
di GitHub .
Mulai sekarang, tim pengembang dan penguji dapat dengan aman terlibat dalam pengembangan produk, dan teman pintar baru kami tanpa lelah akan menunggu berita dari bidang pengujian dan membagikannya dengan cepat.
Penting untuk dipahami bahwa kemampuan bot hampir tidak terbatas: ia dapat memproses permintaan apa pun dari luar. Dan ini berarti Anda dapat mempelajari banyak hal: memfilter pesan obrolan, pemberitahuan pembangunan tim, mini-game di waktu luang Anda. Jika Anda mencoba dan menunjukkan sedikit imajinasi, Anda dapat mengajarinya cara memesan pizza, membuat kalender kantor, mengenali dokumen atau bahkan meneruskan pesan email masuk Anda ke pengirim pesan instan.