Test nədir? Nə üçün yazırıq? Test növləri..

Novruz Jafarov
3 min readJul 11, 2022

--

Testing — yazdığımız proqramın gözlədiyimiz kimi işləyib-işləməməsini yoxlama prosesidir. Həmçinin, yazdığımız proqramda olan xətaları təyin etmək prosesi də demək olar. Proqramamımızın səhvsiz işləyə bilməsi üçün xətaların sayı minimum olmalıdır. Əgər test prosesimiz uğurlu nəticələr versə, xətalar aradan qaldırılacaqdır.

Nə üçün test etməliyik?

  • Proqramın, lazım olan tələblərə cavab verib-vermədiyini yoxlamaq.
  • Keyfiyyətin yoxlanılması. Müştəriyə keyfiyyətindən əmin olduğumuz bir proqram təqdim etməliyik.
  • Təhlükəsizlik. Sistemə ola biləcək hücümları və bu cür hücümlar qarşısında nə baş verdiyini yoxlamaq.
  • Performans. Məsələn, proqramın, istifadəçi sayı artıqda işləməsini, yəni, çöküb-çökmədiyini yoxlamaq.

Test növləri:

1.Unit testing

Unit test — Proqram arxitekturasının ən kiçik hissəsinin test olunması deməkdir. Ən kiçik parça dedikdə, bir metod, dövr və s. nəzərdə tutular bilər. Bu, əksər hallarda, istifadəçi tərəfindən girişlər zamanı proqramımızın müvafiq çıxışlarını test etməkdir. Məsələn:

  • Proqramımızda dövrlərin, metod və ya funkisyaların düzgün işləməsini yoxlamaq.
  • Aritmetik öncəliklər. (Vurma, toplama, ++ operatoru və s.)
  • Obyektlərin yanlış yaradılması.

Unit testə nümunə olaraq aşağıdakı sadə test blokunu göstərmək olar, növbəti məqalələrdə daha ətraflı danışacağıq.

2. İntegration test (İnteqrasiya testləri)

İnteqrasiya testləri — Bir-biri ilə bağlı olan modulların biryerdə işləməsini test etmə prosesidir. Buradakı məqsəd, metodlar unit testlərdən uğurla keçsədə, müxtəlif modullarda biryərdə işlədikdə xətalar ola bilər ki, o xətaları aradan qaldırmaqdır. Sadə bir inteqrasiya test bloku aşağıdakı kimi ola bilər. Burada android proqramlaşdırmada, sqlite bazasına insert və delete əməliyyatlarını test edirik.

@ExperimentalCoroutinesApi
@SmallTest
class UserSettingsDaoTest {

@get:Rule
var instantTaskExecutorRule = InstantTaskExecutorRule()

private lateinit var db: AppDatabase
private lateinit var dao: UserSettingsDao

@Before
fun setup() {
db = Room.inMemoryDatabaseBuilder(
ApplicationProvider.getApplicationContext(),
AppDatabase::class.java
).allowMainThreadQueries().build()

dao = db.getUserSettingsDao()
}

@After
fun tearDown() {
db.close()
}

@Test
fun insertUserTesting() = runBlocking {
val
exampleUser = UserSettings(
"Novruz",
"14",
"12/12/2021",
"20",
"1",
"4.00",
"AZN"
)

exampleUser.id = 12

dao.insertUserSettings(exampleUser)

val user = dao.getUserSettingsById(exampleUser.id)

Assert.assertEquals(user.name, exampleUser.name)
}

@Test
fun deleteUserTesting() = runBlocking {
val
exampleUser = UserSettings(
"Novruz",
"14",
"12/12/2021",
"20",
"1",
"4.00",
"AZN"
)

exampleUser.id = 12

dao.insertUserSettings(exampleUser)

dao.deleteUserSettings(exampleUser)

val user = dao.getUserSettingsById(exampleUser.id)

Assert.assertNull(user)

}

}

3.Regression test

Əvvəlki testlərdə baş verən xətaların aradan qaldırıldığını göstərmək məqsədi ilə tətbiq olunan test prosesidir. Həmçinin, işləyən kodlarımızın üzərinə edilən dəyişikliklərin yoxlanılması da deyə bilərik. Bunlara, yeni bir metod, hər-hansısa bir xətanın həlli və ya performans artımı üçün düzəlişlər aid ola bilər.

4. UI test

UI testi (İstifadəçi interfeysi) — proqramımızın ios, android, tablet, smartfonlar və ya müxtəlif brauzerlərdə (Məsələn:Safari, Crhome) işləməsini və interfeysdə baş verən dəyişiklikərə görə proqramda nələrin dəyişdiyini yoxlamaq üçün tətbiq olunan test prosesidir. Məslən android proqramlaşdırmadan bir misal çəksək, bir button-a klik etdikdə nə baş verdiyini, menyular arası keçidlərin, fragmentlərin testini misal çəkmək olar.

5. Performance test (Performans testi)

Performans testi —İnteqrasiya olunmuş sistemdə, proqram təminatının stabil işləmə müddətini, sürətini və effektivliyini yoxlamaq üçün tətbiq olunan test prosesidir. Buna load test (yüklənmə testi) də deyilir. Burada, sistemin verilən yükdə performansının necə olduğunu yoxlayırıq. Məsələn, proqramın çökmədən əvvəl, maksimum neçə istifadəçi sayını idarə edə bilməsini yoxlamaq.

Növbəti məqalədə Unit test haqqında danışacağıq.

--

--