Sobes.tech
Junior

Τι είναι η δοκιμή καπνού;

sobes.tech AI

Απάντηση από AI

Η δοκιμή καπνού (δοκιμή καπνού) είναι ένας τύπος δοκιμής λογισμικού που πραγματοποιείται μετά τη δημιουργία μιας νέας έκδοσης για γρήγορο έλεγχο της βασικής λειτουργικότητας και σταθερότητας. Ο στόχος είναι να αποφασιστεί αν αξίζει να συνεχιστούν περαιτέρω, πιο βαθιές δοκιμές.

Χαρακτηριστικά:

  • Επιφανειακή: Ελέγχονται μόνο οι πιο σημαντικές και κρίσιμες λειτουργίες της εφαρμογής.
  • Γρήγορη: Εκτελείται σε σύντομο χρονικό διάστημα, συνήθως όχι περισσότερο από 30-60 λεπτά.
  • Κρίσιμη: Εστιάζει στον εντοπισμό σοβαρών ελαττωμάτων που καθιστούν τις περαιτέρω δοκιμές άσκοπες.
  • Gatekeeper: Αν η δοκιμή καπνού αποτύχει, η κατασκευή απορρίπτεται και δεν πραγματοποιείται πλήρης κύκλος δοκιμών.

Σεναρία χρήσης:

  1. Κάθε νέα κατασκευή: Ελέγχεται μετά από κάθε ανάπτυξη μιας νέας έκδοσης της εφαρμογής.
  2. Πριν από την κυκλοφορία: Τελευταίος γρήγορος έλεγχος πριν από την κυκλοφορία στην παραγωγή.
  3. Μετά από αλλαγές: Ελέγχεται για να διασφαλιστεί ότι οι πρόσφατες αλλαγές δεν έχουν σπάσει τις βασικές λειτουργίες.

Παράδειγμα ελέγχου (για μια web εφαρμογή):

  • Επιτυχής φόρτωση της αρχικής σελίδας.
  • Δυνατότητα σύνδεσης.
  • Λειτουργία των βασικών τμημάτων (π.χ., προβολή λίστας προϊόντων).
  • Ορθός αποσύνδεση από το σύστημα.

Οι δοκιμές καπνού μπορούν να είναι χειροκίνητες ή αυτοματοποιημένες. Ο αυτοματισμός των δοκιμών καπνού επιταχύνει σημαντικά τη διαδικασία και διασφαλίζει τη σταθερότητα των ελέγχων.

# Παράδειγμα απλής αυτοματοποιημένης δοκιμής καπνού με Selenium
from selenium import webdriver
from selenium.webdriver.common.by import By

def smoke_test_login(url, username, password):
    driver = webdriver.Chrome()
    try:
        driver.get(url)
        # Έλεγχος αν υπάρχει πεδίο εισαγωγής login
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Το πεδίο login δεν εμφανίζεται"

        # Έλεγχος αν υπάρχει πεδίο εισαγωγής κωδικού
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Το πεδίο κωδικού δεν εμφανίζεται"

        # Έλεγχος αν υπάρχει το κουμπί σύνδεσης
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Το κουμπί σύνδεσης δεν εμφανίζεται"

        # Προσπάθεια σύνδεσης (προαιρετικά, εξαρτάται από το εύρος της δοκιμής καπνού)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Έλεγχος ανακατεύθυνσης

        print("Δοκιμή καπνού: Τα βασικά στοιχεία σύνδεσης υπάρχουν.")
        return True
    except Exception as e:
        print(f"Αποτυχία δοκιμής καπνού: {e}")
        return False
    finally:
        driver.quit()

# Παράδειγμα κλήσης
# smoke_test_login("http://example.com/login", "testuser", "password123")