SpecFlowMaster: Cara Meningkatkan Kualitas Tes

Melakukan hal yang benar


Perkembangan modern tidak dapat ada tanpa tes otomatis. Tes dapat ditulis dengan sangat cepat bahkan oleh orang awam. Jadi, kami punya tes, semuanya baik-baik saja. Bisakah kita mempercayai tes semacam itu? Apa kualitas alat kontrol kualitas kami? Mari kita lihat tes Specflow yang dapat ditulis dalam bahasa manusia.

Feature: SpecFlowFeature In order to avoid silly mistakes As a math idiot I want to be told the sum of two numbers Scenario: Add two numbers Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then the result should be 120 on the screen 

Tes ini terdiri dari tiga bagian standar yang disebut pengaturan, tindakan, dan verifikasi. Semuanya terlihat bagus. Tetapi apa yang terjadi ketika seseorang menambahkan langkah ekstra untuk tes ini?

 Feature: SpecFlowFeature In order to avoid silly mistakes As a math idiot I want to be told the sum of two numbers Scenario: Add two numbers Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add And I press memorize Then the result should be 120 on the screen 

Penghafalan adalah operasi umum dalam kalkulator untuk menulis nomor saat ini ke dalam memori. Jika kami menjalankan tes ini, masih akan berwarna hijau. Ini bukan tes yang baik sekarang, karena tidak ada yang memeriksa bagaimana langkah baru dalam tes mempengaruhi seluruh sistem.

Jenis tes ini dapat muncul sebagai hasil dari banyak refactoring atau perubahan signifikan dalam kerangka acuan. Ini berarti bahwa kita akan memiliki semua tes hijau, tetapi mereka tidak memeriksa kinerja sistem dengan sangat baik. Tes yang ditunjukkan di atas dapat diperbaiki dengan dua cara: hapus langkah yang ditambahkan ini "Dan saya tekan menghafal" atau tambahkan satu langkah lagi di akhir tes untuk memeriksa status memori "Kemudian nilai yang disimpan dalam memori adalah 120".

Plugin SpecFlowMaster


Plugin ini untuk Specflow memungkinkan Anda menemukan tes semacam itu dan garis tes yang mencurigakan. Bagaimana cara kerjanya? Untuk setiap baris fitur Specflow, ini menghasilkan tes khusus yang menjalankan tes yang sama, tetapi tanpa baris ini. Jika pelaksanaan pengujian mengarah ke kesalahan, maka ini adalah perilaku yang diharapkan dan semuanya baik-baik saja di sini. Jika tes seperti itu berhasil, maka ada sesuatu yang salah dengan garis tes dalam tes ini dan sistem menentukan garis ini sebagai mencurigakan. Yaitu tes yang dihasilkan baru akan berwarna merah.

Kasus yang lebih kompleks untuk langkah-langkah latar belakang atau skenario dengan beberapa set data juga diperiksa. Untuk langkah-langkah awal, plugin melakukan semua tes dari file, tetapi tanpa garis uji. Untuk pengujian dengan set data, plugin menghasilkan eksekusi tes untuk semua set data.

Catatan teknis

  1. C #, VB
  2. SpecFlow 3.0 atau lebih tinggi
  3. .NET Framework 4.7.1 atau lebih baru, .NET Core 2.0 atau lebih baru

Apa yang direncanakan akan dilakukan di masa depan?

  1. Dukungan untuk atribut Sebelum dan Setelah
  2. Plugin serupa untuk Java dan Node.js

Referensi

  1. Plugin dapat ditemukan di github
  2. Kirim umpan balik ke arskiev@gmail.com

Source: https://habr.com/ru/post/id473320/


All Articles