Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Можно ли прикрутить нечеткий логический вывод к тестированию

8.499 Aufrufe

Veröffentlicht am

Доклад Алсу Басыровой на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Можно ли прикрутить нечеткий логический вывод к тестированию

  1. 1. Copiright В профессии больше 3 лет. Кратко обо мне: студент, препод, работяга, лентяй. Хей! Меня зовут Алсу. Я из ICL Services, Казань
  2. 2. Alsu Basyrova Можно ли прикрутить нечеткий логический вывод к тестированию
  3. 3. Copiright Что такое fuzzy logic? Высота дома Высокий – 15 этажей Средний – 5 этажей Низкий – 1 этаж
  4. 4. Copiright Что такое fuzzy logic? Возьмем 3 формулировки: Низкий дом Средний дома Высокий дом Нечеткое множество х – высота дома u(x) – принадлежность высоты дома к множеству
  5. 5. Copiright Что такое fuzzy logic? 𝜇1 𝑥 – степень принадлежности высоты дома к множеству «Низкий дом» 𝜇2 𝑥 – степень принадлежности высоты дома к множеству «Средний дом» 𝜇3 𝑥 – степень принадлежности высоты дома к множеству «Высокий дом» 0 ≤ 𝜇 𝑥 ≤ 1
  6. 6. Copiright Множество «Низкий дом» Функция принадлежности множества «Низкий дом» Где x – высота дома u(x) – степень принадлежности к множеству
  7. 7. Copiright Множество «Средний дом» Функция принадлежности множества «Средний дом» Где x – высота дома u(x) – степень принадлежности к множеству
  8. 8. Copiright Множество «Высокий дом» Функция принадлежности множества «Высокий дом» Где x – высота дома u(x) – степень принадлежности к множеству
  9. 9. Copiright Все вместе Где x – высота дома u(x) – степень принадлежности к множеству
  10. 10. Copiright Критерии для тест-кейсов - Затрагивает тест-кейс измененный модуль или нет - Приоритет у тест-кейса высокий или низкий - Количество багов в этом модуле за все время высокое или низкое - Времени на прогон этого тест-кейса нужно много или мало > В какую очередь прогонять тест-кейс?
  11. 11. Copiright Супер формально Задачей нечеткого вывода является определение четкого значения выходной переменной T – приоритета критерия, выраженный в лингвистических единицах «очень высокий», «высокий», «средний» и «низкий», и который зависит от факторов (лингвистических переменных) 𝐾𝑞: 𝑇 = 𝑇(𝐾1, 𝐾2, … , 𝐾 𝑛)
  12. 12. Copiright Определим понятия Имя функции – приоритет критерия Значения функции – очень высокий, высокий, средний и низкий Аргумент функции – критерии (затрагивает модуль, какой приоритет у тест-кейса, сколько багов и т.д.) Значения аргументов – затрагивает/не затрагивает, высокий/низкий, много/мало и т.д. y(x)=x+1
  13. 13. Copiright Шаг 1 Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции 1 Затрагивает измененный модуль Затрагивает 2 Не затрагивает 3 Приоритет сценария Высокий 4 Низкий 5 Количество дефектов в модуле Много 6 Мало 7 Время проведения сценария Быстро 8 Долго Лингвистическое имя функции Лингвистическое имя значения функции 1 Приоритет критерия Очень высокий 2 Высокий 3 Средний 4 Низкий
  14. 14. Copiright Шаг 1. Комбинации Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 Затрагивает измененный модуль Затрагивает Y Y Y Y Y Y Y Y 2 Не затрагивает Y Y Y Y Y Y Y Y 3 Приоритет сценария Высокий Y Y Y Y Y Y Y Y 4 Низкий Y Y Y Y Y Y Y Y 5 Количество дефектов в модуле Много Y Y Y Y Y Y Y Y 6 Мало Y Y Y Y Y Y Y Y 7 Время проведения сценария Быстро Y Y Y Y Y Y Y Y 8 Долго Y Y Y Y Y Y Y Y
  15. 15. Copiright Шаг 2. Оценки Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 1 Затрагивает измененный модуль Затрагивает Y 2 Не затрагивает 3 Приоритет сценария Высокий Y 4 Низкий 5 Количество дефектов в модуле Много Y 6 Мало 7 Время проведения сценария Быстро Y 8 Долго Лингвистическое имя функции Лингвистическое имя значения функции Баллы истинности правил 1 Приоритет критерия Очень высокий 2 Высокий 3 Средний 4 Низкий
  16. 16. Copiright Шаг 2. А как оценивать? Баллы Название значения Оценка истинности правила Баллы Название значения Оценка истинности правила 0 Никогда 0 5 И часто и редко 0,5 1 Очень редко 0,01 6 Часто 0,6 2 Не очень редко 0,05 7 Не очень часто 0,7 3 Редко 0,1 8 Очень часто 0,8 4 Время от времени 0,3 9 Почти всегда 0,9 5 Нередко и нечасто 0,5 10 Всегда 1
  17. 17. Copiright Шаг 2. А вот так Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 1 Затрагивает измененный модуль Затрагивает Y 2 Не затрагивает 3 Приоритет сценария Высокий Y 4 Низкий 5 Количество дефектов в модуле Много Y 6 Мало 7 Время проведения сценария Быстро Y 8 Долго Лингвистическое имя функции Лингвистическое имя значения функции Баллы истинности правил 1 Приоритет критерия Очень высокий 10 2 Высокий 2 3 Средний 1 4 Низкий 0
  18. 18. Copiright Шаг 2уаааа! Все оценим! Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 Затрагивает измененный модуль Затрагивает Y Y Y Y Y Y Y Y 2 Не затрагивает Y Y Y Y Y Y Y Y 3 Приоритет сценария Высокий Y Y Y Y Y Y Y Y 4 Низкий Y Y Y Y Y Y Y Y 5 Количество дефектов в модуле Много Y Y Y Y Y Y Y Y 6 Мало Y Y Y Y Y Y Y Y 7 Время проведения сценария Быстро Y Y Y Y Y Y Y Y 8 Долго Y Y Y Y Y Y Y Y Лингвистическое имя функции Лингвистическое имя значения функции Баллы истинности правил 1 Приоритет критерия Очень высокий 10 10 8 2 1 1 1 0 10 10 8 4 2 1 1 0 2 Высокий 2 9 8 4 3 3 1 1 2 3 8 6 4 1 1 1 3 Средний 1 5 4 8 8 5 2 1 1 1 4 10 10 2 1 1 4 Низкий 0 1 1 2 7 10 10 10 0 1 1 2 6 9 10 10
  19. 19. Copiright Шаг 3. Функции для аргументов Затрагивает/не затрагивает измененный модуль Лингвистическое имя аргумента функции Лингвистическое имя значения функции Нечеткое множество Функция принадлежности 1 Затрагивает измененный модуль Затрагивает 𝑀11 = {< 𝜇11 𝑥1 , 𝑥1 >/𝑥1 ∈ 𝑋1} m11(x1)=0.01x1 2 Затрагивает измененный модуль Не затрагивает 𝑀21 = {< 𝜇21 𝑥1 , 𝑥1 >/𝑥1 ∈ 𝑋1} m21(x1)=-0.01x1+1
  20. 20. Copiright Шаг 3. Функции для аргументов Приоритет тест-кейса высокий/низкий Лингвистическое имя аргумента функции Лингвистическое имя значения функции Нечеткое множество Функция принадлежности 3 Приоритет сценария Высокий 𝑀12 = {< 𝜇12 𝑥2 , 𝑥2 >/𝑥2 ∈ 𝑋2} m12(x2)=-0.33x2+1.33 4 Приоритет сценария Низкий 𝑀22 = {< 𝜇22 𝑥2 , 𝑥2 >/𝑥2 ∈ 𝑋2} m22(x2)=0.33x2-0.33
  21. 21. Copiright Шаг 3. Функции для аргументов Багов много/мало Лингвистическое имя аргумента функции Лингвистическое имя значения функции Нечеткое множество Функция принадлежности 5 Количество дефектов в модуле Много 𝑀13 = {< 𝜇13 𝑥3 , 𝑥3 >/𝑥3 ∈ 𝑋3} m13(x3)=0.05x3 6 Количество дефектов в модуле Мало 𝑀23 = {< 𝜇23 𝑥3 , 𝑥3 >/𝑥3 ∈ 𝑋3} m23(x3)=-0.05x3+1
  22. 22. Copiright Шаг 3. Функции для аргументов Тест-кейс прогонять долго/недолго Лингвистическое имя аргумента функции Лингвистическое имя значения функции Нечеткое множество Функция принадлежности 7 Время проведения сценария Быстро 𝑀14 = {< 𝜇14 𝑥4 , 𝑥4 >/𝑥4 ∈ 𝑋4} m14(x4)=-0.11x4+1.11 8 Время проведения сценария Долго 𝑀24 = {< 𝜇24 𝑥4 , 𝑥4 >/𝑥4 ∈ 𝑋4} m24(x4)=0.11x4-0.11
  23. 23. Copiright Фаззификация Фаззификация – нахождения значения функций принадлежности - затрагивает изменённый модуль на полностью, а частично еще и другой модуль, оценим это по шкале от 0 до 100 на 80; - имеет приоритет 2; - количество дефектов в модуле 3; - время проведения сценария 3 минуты.
  24. 24. Copiright Результат фаззификации Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции 1 Затрагивает измененный модуль Затрагивает 0.8 2 Не затрагивает 0.2 3 Приоритет сценария Высокий 0.67 4 Низкий 0.33 5 Количество дефектов в модуле Много 0.15 6 Мало 0.85 7 Время проведения сценария Быстро 0.78 8 Долго 0.22
  25. 25. Copiright Агрегирование Агрегирование позволяет определить степень истинности посылки. Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 1 2 1 Затрагивает измененный модуль Затрагивает 0.8 Y Y 2 Не затрагивает 0.2 3 Приоритет сценария Высокий 0.67 Y Y 4 Низкий 0.33 5 Количество дефектов в модуле Много 0.15 Y Y 6 Мало 0.85 7 Время проведения сценария Быстро 0.78 Y 8 Долго 0.22 Y Способы агрегации Определение произведения 0,06 0,02 Определение минимума 0,15 0,15
  26. 26. Copiright Активизация Активизация – нахождение степени истинности посылки Входные данные: - Степень истинности посылки - Степень истинности правила - Функция принадлежности правила
  27. 27. Copiright Функции принадлежности для правила Очень высокий приоритет критерия (𝜇10(𝑦)) 𝜇10(𝑦) = −0,33𝑦 + 1,33 Где y – приоритет критерия u(x) – степень принадлежности к множеству «Очень высокий приоритет»
  28. 28. Copiright Функции принадлежности для правила Высокий приоритет критерия (𝜇20(𝑦)) 𝜇20(𝑦) = 𝑦 − 1, если 𝑦 ≤ 2 −0,5𝑦 + 2, если 𝑦 > 2 Где y – приоритет критерия u(x) – степень принадлежности к множеству «Высокий приоритет»
  29. 29. Copiright Функции принадлежности для правила Средний приоритет критерия (𝜇30(𝑦)) 𝜇30(𝑦) = 0,5𝑦 − 0,5, если 𝑦 ≤ 3 −𝑦 + 4, если 𝑦 > 3 Где y – приоритет критерия u(x) – степень принадлежности к множеству «Средний приоритет»
  30. 30. Copiright Функции принадлежности для правила Низкий приоритет критерия (𝜇40(𝑦)) 𝜇40 𝑦 = 0,33𝑦 − 0,33 Где y – приоритет критерия u(x) – степень принадлежности к множеству «Низкий приоритет»
  31. 31. Copiright Степень истинности посылки Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 1 1 Затрагивает измененный модуль Затрагивает 0.8 Y 2 Не затрагивает 0.2 3 Приоритет сценария Высокий 0.67 Y 4 Низкий 0.33 5 Количество дефектов в модуле Много 0.15 Y 6 Мало 0.85 7 Время проведения сценария Быстро 0.78 Y 8 Долго 0.22 Определение минимума 0,15
  32. 32. Copiright Степень истинности правила Лингвистическое имя аргумента функции Лингвистическое значение аргумента функции Посылки 1 Затрагивает измененный модуль Затрагивает Y 2 Не затрагивает 3 Приоритет сценария Высокий Y 4 Низкий 5 Количество дефектов в модуле Много Y 6 Мало 7 Время проведения сценария Быстро Y 8 Долго Лингвистическое имя функции Лингвистическое имя значения функции Степени истинности правил 1 Приоритет критерия Очень высокий 10 => 1 2 Высокий 2 => 0,05 3 Средний 1 => 0,01 4 Низкий 0
  33. 33. Copiright Активизация для первой посылки Очень высокий приоритет критерия: Степень истинности посылки 0,15 Степень истинности правила 1 Умножить Умножить 𝜇∗ 10(𝑦) = −0,05𝑦 + 0,2 𝜇10(𝑦) = −0,33𝑦 + 1,33
  34. 34. Copiright Активизация для первой посылки Высокий приоритет критерия: Степень истинности посылки 0,15 Степень истинности правила 0,05 Умножить Умножить 𝜇∗ 20(𝑦) = 0,01𝑦 − 0,01, если 𝑦 ≤ 2 0,02, если 𝑦 > 2 𝜇20(𝑦) = 𝑦 − 1, если 𝑦 ≤ 2 −0,5𝑦 + 2, если 𝑦 > 2
  35. 35. Copiright Активизация для первой посылки Средний приоритет критерия: Степень истинности посылки 0,15 Степень истинности правила 0,01 Умножить Умножить 𝜇∗ 30(𝑦) = 0, если 𝑦 ≤ 3 0,01, если 𝑦 > 3 𝜇30(𝑦) = 0,5𝑦 − 0,5, если 𝑦 ≤ 3 −𝑦 + 4, если 𝑦 > 3
  36. 36. Copiright Активизация для первой посылки Низкий приоритет критерия: Степень истинности посылки 0,15 Степень истинности правила 0 Умножить Умножить 𝜇∗ 40 𝑦 = 0 𝜇40 𝑦 = 0,33𝑦 − 0,33
  37. 37. Copiright Аккумуляция Цель аккумуляции – объединить все степени истинности заключений для получения степени истинности для выходных лингвистических переменных.
  38. 38. Copiright Результат аккумуляции
  39. 39. Copiright Дефаззифицация Цель дефаззификации заключается в том, чтобы, используя результат аккумуляции, получить количественное значение выходной переменной.
  40. 40. Copiright Результат дефаззификации Оптимальное значение – 2,19. Округлим – 2.
  41. 41. Copiright Выводы Если тест-кейс - затрагивает изменённый модуль не полностью, а частично еще и другой модуль, оценим это по шкале от 0 до 100 на 80; - имеет приоритет 2; - количество дефектов в модуле 3; - время проведения сценария 3 минуты; То по всему критерию получает оценку 2.
  42. 42. Copiright Дальнейшая работа Что нужно делать вручную: - Определить критерии - Оценить их - Определить для них функции принадлежности - Определить функции принадлежности для конечных множеств
  43. 43. Copiright Дальнейшая работа Что можно автоматизировать - Все остальное 
  44. 44. Со мной можно связаться: Email: jascorp@mail.ru Skype: aljass251 Telegram: @jasonbe

×