Что такое эвристики в тестировании программного обеспечения?

«Что такое эвристики в тестировании программного обеспечения?» — вопрос из категории Техники тест-дизайна, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Эвристики — это практические, основанные на опыте правила или методы, которые помогают принимать решения и находить решения проблем в условиях неполной информации. В тестировании они используются для эффективного выбора тестовых сценариев, когда полное тестирование невозможно или нецелесообразно.

Почему они важны: Эвристики экономят время и ресурсы, направляя усилия тестировщика в наиболее вероятные области дефектов, но не гарантируют их полное обнаружение.

Распространенные примеры эвристик в тестировании:

  • Правило 80/20 (Принцип Парето): Предполагает, что 80% дефектов содержится в 20% функционала.
  • CRUSSPIC STMPL: Мнемоническое правило для проверки атрибутов качества (Capability, Reliability, Usability, Security, Scalability, Performance, Installability, Compatibility, Supportability, Testability, Maintainability, Portability, Localizability).
  • Счастливый путь (Happy Path): Первоочередная проверка основного сценария использования без ошибок.
  • Анализ граничных значений (Boundary Value Analysis): Фокусировка на значениях на границах допустимых диапазонов.
// Пример эвристики: проверка граничных значений для поля ввода возраста
function validateAge(age) {
    // Эвристика: часто ошибки возникают на границах (0, 1, 17, 18, 19, 120, 121)
    if (age < 0 || age > 120) {
        return "Invalid age: out of acceptable range (0-120).";
    }
    if (age < 18) {
        return "Access denied: user is a minor.";
    }
    return "Access granted.";
}