Перше враження: Rational RobotJ 1.0, Різне, Програмування, статті

Зміст



Введення


Компанія Rational Software попросила мене поділитися враженнями про їх новий продукт – Rational RobotJ. Вони зробили це з двох причин. Найбільш очевидна з них полягає в тому, що я тривалий час приймаю участь в проектах автоматизації систем тестування, і часто спостерігав за методами, що використалися в подібних прикладних програмах, у тому числі і неправильними. Друга причина в тому, що я ніколи не використовував Rational Robot або його моделі Test Manager. Володіючи досвідом в області автоматизації, я зможу свіжим поглядом оцінити рішення, застосовувані Rational для автоматизації тестування програмного забезпечення.


Отримавши бета-копію Rational RobotJ, я горів бажанням скоріше приступити до з’ясування, що нового цей продукт Rational привніс в методи тестування програмного забезпечення. Як автор сценаріїв автоматизації Rational Visual Test з багаторічним досвідом, я хотів бачити, як поведе себе цей програмний пакет при тестуванні додатків, заснованих на веб-технологіях.


Після кількох хвилин, потребовавшихся на установку пакета, попереднього знайомства з інтерфейсом і звичайних в таких випадках спроб з’ясувати “що є що”, я вирішив почати серйозне вивчення і натиснув кнопку Record new RobotJ script (Записати новий сценарій RobotJ) на панелі інструментів. “А що, – подумав я про себе. – Давай подивимося, наскільки великий сценарій створює ця програма, якщо вона намагається не тільки точно записувати мої дії, але і синхронізувати їх між собою для забезпечення коректної роботи при відтворенні “. Я був трохи цинічний, коли приступав до вивчення інструментарію записи і відтворення.


Мною рухало бажання дізнатися більше про можливості цього програмного пакета, навіть незважаючи на те, що сам я був прихильником старого доброго методу кодування “на швидку руку”. Тим не менш, застосування реєстратора – один з кращих способів вивчати системи автоматизації та оптимальні методи їх використання. Виявилося, як ви скоро побачите, що використання реєстратора було (і залишається) не просто чудовим способом отримання додаткової інформації про RobotJ. Це інструмент, яким за припущеннями Rational Software більшість розробників будуть створювати свої сценарії тестування. І з цим завданням він також справляється чудово.


Передумови


До мене дійшли чутки, що циркулювали серед колег, що займаються автоматизованим тестуванням, що Rational Software готувалася до випуску нового продукту, орієнтованого на тестування веб-додатків на основі HTML і Java. До того ж Java використовувався там як мова програмування, дозволяючи використовувати звичайні переваги об’єктно-орієнтованого програмування. Мені хотілося побачити результати роботи цієї програми як можна швидше. Тому я не міг дочекатися того моменту, коли ця нова програмно-орієнтована “іграшка” потрапить до мене в руки.


Довгий час в роботі з автоматизації тестування програмного забезпечення та опису цього процесу моєї улюбленої програмою був пакет Rational Visual Test. Схожий на Visual Basic мову програмування цієї програми робив сам процес програмування простим, а розширені можливості роботи з покажчиками для складних структур даних створювали додаткові зручності в роботі. До того ж, починаючи з версії 6, в Visual Test була додана функція тестування веб-сторінок. Ця можливість працювала чудово і зараз працює, але вона добавлена ​​до інструмента тестування, який спочатку спроектований тільки для тестування програм Microsoft Windows. Visual Test створювався як повне, комплексне засіб автоматизації тестування програмного забезпечення, і будьте впевнені, він залишиться таким на довгі роки.


Я до сих пір використовую VT, навіть для вирішення нетестовими завдань. Але коли в той момент готувався до випуску нове програмне рішення, орієнтоване виключно на тестування веб-додатків, мені дійсно захотілося ознайомитися з його можливостями, і виник справжній інтерес до того, як мова Java використовується для написання сценаріїв


Я завжди намагався навчати своїх студентів і клієнтів передовим методам програмування, а також принципам створення об’єктно-орієнтованих сценаріїв, обмеження доступу до даних, інкапсуляції і простих форм спадкування, реалізованих навіть не в такому об’єктно-орієнтованої мови. Ці методи хороші, але використання об’єктно-орієнтованої мови не просто дає можливість їх застосування, а змушує їх використовувати. Ось чому я задоволений тим, що в RobotJ в якості мови програмування використовується Java.


Тестування


Я припускав, що почну з чогось нескладного: клацну кілька посилань, перевірю працездатність лінійки прокрутки вікна браузера, доступність посилань, що знаходяться поза екраном і час затримки між завантаженнями сторінок. Але потім мої думки пішли іншим шляхом: якщо проводиться тест-драйв нового автомобіля, для якого обіцяно потужний двигун і спортивна підвіска, то чи буду я, сівши в машину, перевіряти роботу покажчиків повороту і налаштовувати на приймачі національний радіоканал? Ну, припустимо, так воно і є. Але, крім того, я виразно повинен захотіти проїхати на цій машині і знайти безліч способів випробувати її можливості, навіть слухаючи при цьому програму “Про що говорить країна” на національному державному каналі.


Ймовірно, я не став отримувати дуже багато відомостей при першому запуску, оскільки мені не хотілося, щоб “машина врізалася в стіну”. Я тільки хотів, щоб записаний мною сценарій дійсно запрацював, і був налаштований трохи скептично щодо працездатності записаного сценарію без додаткової коректування. Отже, я натиснув кнопку “запис” і виконав наступні операції.



  1. Запустив браузер, встановлений за умовчанням (Microsoft Internet Explorer 6.0).
  2. Назвав тест “First_one” (ви побачите згадка про нього в коді).
  3. Запустив додаток, вказавши URL (www.xtenddev.com).
  4. Натиснув посилання переходу на сторінку пошукової машини Xtend Development.
  5. Вказав в рядку пошуку, яку інформацію необхідно знайти (“Rational”).
  6. Перейшов по посиланнях до необхідного товару (“VT6 InDepth Videos” – відеокурс “VT6 InDepth”).
  7. Додав товар в корзину (картинка “buy.gif”).
  8. Натиснув кнопку “Check Out” (“Оформити угоду”) для здійснення угоди.
  9. Заповнив форму, необхідну для виписки рахунку.
  10. Підтвердив замовлення товару на власному сервері транзакцій.
  11. Вийшов з браузера.

Очікувані результати


Я, як програміст автоматизованих систем тестування, мав упереджена думка про те, що можна очікувати від роботи з реєстратором RobotJ. Ця точка зору сформувалася в процесі роботи з Visual Test та іншими автоматизованими системами тестування. Я чекав виникнення деяких проблем, а саме.



Фактичні результати


Отримані результати, проти очікування, були приємним сюрпризом.