Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Приемочное тестирование и немного матана

Приемочное тестирование и немного матана

Презентация с "Fall Saint P Ruby Meetup" (23.11.2017)

Makar Ermokhin

November 23, 2017
Tweet

More Decks by Makar Ermokhin

Other Decks in Programming

Transcript

  1. МАТЧАСТЬ Интеграционное тестирование — одна из фаз тестирования программного обеспечения,

    при которой отдельные программные модули объединяются и тестируются в группе
  2. PHANTOM JS •Прост в установке •Устаревший движок JS var a

    = function() {}.bind(this); TypeError: 'undefined' is not a function
  3. scenario "updates profile" do visit edit_profile_path fill_in "Name", with: "Ivan"

    click_on "Save" expect(page).to_not have_content("Makar") expect(page).to have_content("Ivan") end DOM
  4. ВОЛШЕБНЫЙ ХЕЛПЕР def wait_js(command, timeout = 10) step = 0

    loop do step += 0.5 return if page.evaluate_script(command) raise( RSpec!::Expectations!::ExpectationNotMetError, "JS never evals to true: !#{command}") if step > timeout sleep 0.5 end end
  5. # Плохо el = find('.selector') expect(el).to have_content('Some') # Хорошо within

    '.selector' do expect(page).to have_content('Some') end НЕОДНОЗНАЧНОСТЬ
  6. НЕМНОГО САТАНА Отношение эквивалентности — функция двух аргументов c булевым

    значением с условиями: •r(x, x) !== true •r(x, y) !== r(y, x) •r(x, y) !== r(y, z) !== true !=> r(x, z) !== true
  7. НЕМНОГО АТАНА Отношение эквивалентности — функция двух аргументов c булевым

    значением с условиями: •r(x, x) !== true •r(x, y) !== r(y, x) •r(x, y) !== r(y, z) !== true !=> r(x, z) !== true М
  8. Метрика — функция двух аргументов на векторном пространстве, такая что:

    •F(x, y) !== 0 !!<=> x !== y •F(x, y) !== F(y, x) •F(x, z) !<= F(x, y) + F(y, z) НЕМНОГО МАТАНА ЛИНАЛА
  9. НАЗАД К КАРТИНКАМ Изображение — это набор векторов. Описанный алгоритм

    использует дискретную метрику и обычное отношение эквивалентности.
  10. ПРОБЛЕМЫ •Танцы с бубном на CI •Даже в при сравнении

    в обычном режиме довольно медленно