how test java applications tips with sample test cases
У цьому посібнику ми вивчимо компоненти, що беруть участь у програмі Java, та різні типи тестування, які потрібно провести, щоб забезпечити якісну програму без помилок.
Це трисекційна серія з тестування програм JAVA.
- У цій статті ми дізнаємося про компоненти J2EE та підхід до тестування вручну для програми J2EE.
- У другому, ми розглянемо Автоматизоване тестування підхід до тестування програм J2EE та
- У третьому ми розглянемо вичерпний перелік інструментів, доступних для тестування програм J2EE.
Що ви дізнаєтесь:
- Почнемо з огляду програм J2EE
- Тестування програми JAVA / J2EE
- Тестування програм Java вручну:
- Висновок
- Рекомендована література
Почнемо з огляду програм J2EE
ДО Java веб-додаток складається з декількох компонентів, кожен з яких виконує важливу мету. MVC , що розшифровується як Model View Controller, є найпопулярнішим і часто використовуваним шаблоном архітектурного дизайну.
Перш ніж навчитися тестувати, давайте коротко пройдемося через різні компоненти програми J2EE.
- Клієнт / браузер запитує веб-адресу з URL-адресою.
- JSP (Java Server Pages) - JSP - це технологія на стороні сервера, призначена для представлення даних користувачеві. Він підтримує відображення динамічного вмісту за допомогою спеціальних тегів, які називаються тегами JSP, які допомагають вставляти код Java на HTML-сторінки. (Статичний HTML завжди відображає однаковий вміст). Під час виконання JSP перетворюється на сервлет. Ділова логіка тут зазвичай не пишеться.
- JSF (Java Server Faces) - JSF - це компонент представлення для ефективного проектування інтерфейсу користувача.
- Javascript / Jquery - - це мови сценаріїв, що використовуються для перевірки вигляду / екрана на стороні клієнта.
- Сервлет - Сервлет перевіряє дані, отримані з входу, вибирає відповідний код бізнес-логіки та передає значення коду Bean.
- Підприємство Java Bean (EJB) - Тут зазвичай пишеться та обробляється вся бізнес-логіка. Потім компонент викликує код для читання, запису або оновлення бази даних. Після завершення операцій з базою даних відповідь передається назад до сервлету, який, у свою чергу, вибирає відповідний JSP для відображення результатів.
- WebServices - Веб-послуги - це компоненти програми, які працюють на окремому сервері та обмінюються даними за протоколом HTTP.
- База даних - зберігає всі дані програми.
Зверніть увагу, що не всі веб-програми відповідають JSP -> Сервлет -> EJB -> Модель бази даних . Більшість програм J2EE в даний час написані з фреймворком, таким як Struts, Spring або Hibernate. Дизайн додатків варіюється залежно від розміру програми, вартості, часу розробки, ресурсів та розміру команди.
Тестування програми JAVA / J2EE
Перейдемо до тестування цілої програми J2EE. Це робиться в кілька етапів.Наприклад, вважайте, що ми маємо три екрани:
- Екран входу
- Екран дисплея співробітників, на якому перераховані всі працівники організації
- Екран модифікації / додавання / видалення працівника.
Інтерфейс користувача (користувальницький інтерфейс) для цих трьох екранів розроблений за допомогою JSP / HTML та перевірок, що виконуються за допомогою JavaScript. Оскільки це зразок програми, логіка знаходиться в сервлеті та DAO (об’єкт доступу до даних). DAO - це клас для підключення до бази даних.
Нижче наведені зразки екранів:
Тестування програм Java вручну:
Під час ручного тестування JAVA тестер готує тестові кейси з детального проекту проекту та намагається охопити всі можливі сценарії та фрагменти коду.
# 1) ТЕСТУВАННЯ БЛОКУ JAVA
Одиничне тестування - це вид тестування де користувачеві потрібно протестувати найменший із фрагментів коду на точність, правильність та відповідність вимогам.
Давайте візьмемоприклад екрана входу. Екран входу має два текстових поля: ім’я користувача та пароль, а також дві кнопки: подати та скасувати.
Тестові приклади повинні охоплювати всі цикли та умовні оператори. Тести повинні відображати очікувані результати та дані тесту. Нижче наведено деякі загальні тестові випадки, які користувач міг виконати вручну на екрані входу. Потім результати фіксуються в документі тестування.
Нижче наведено зразок формату тесту для екрана входу.
S.No | Тестовий кейс | Очікуваний результат | Фактичний результат | Передача / Помилка |
---|---|---|---|---|
4 | Користувач вводить ім'я користувача більше 10 символів | Повідомлення про помилку Повинно бути відображено “Ім'я користувача не повинно бути більше 10 символів” | Повідомлення про помилку не відображається | ПОМИЛКА |
1 | Користувач перевіряє зовнішній вигляд міток Ім'я користувача, Пароль | Етикетки повинні бути правильно написані і відображатися шрифтом звичайного розміру | Ім'я користувача та пароль ярлика відображаються правильно | ПРОХОДИТИ |
два | Користувач перевіряє зовнішній вигляд кнопки Подати та скасувати | Кнопки повинні відображатися з правильним ім'ям | Кнопки Submit та Cancel відображаються правильно | ПРОХОДИТИ |
3 | Користувач перевіряє колір тла екрану | Форма для входу повинна бути в білій таблиці, а екран повинен мати сірий фон | Зовнішній вигляд екрана не відповідає вимогам. | ПОМИЛКА |
4 | Користувач залишає текстове поле імені користувача порожнім | Повинно відображатися повідомлення про помилку «Ім'я користувача не може бути порожнім» | З'являється повідомлення про помилку 'Ім'я користувача не може бути порожнім' | ПРОХОДИТИ |
5 | Користувач вводить якесь значення у текстове поле імені користувача, а поле пароля залишає пустим | Повинно відображатися повідомлення про помилку «Пароль не може бути порожнім» | З'являється повідомлення про помилку 'Пароль не може бути порожнім' | ПРОХОДИТИ |
6 | Користувач вводить ім'я користувача як 'abcd', а пароль як 'xxxx' | Повідомлення про помилку “Недійсне поєднання пароля імені користувача” має відображатися | Повідомлення про помилку “Недійсне поєднання пароля імені користувача” відображається | ПРОХОДИТИ |
5 | Користувач вводить ім'я користувача як 'testuser', а пароль як 'password' і натискає кнопку Submit | Користувач повинен мати можливість побачити 'Екран даних про працівника' | Відобразиться екран з даними про працівника | ПРОХОДИТИ |
Хоча в таблиці перелічені деякі тестові приклади, нижче наведено повний список:
- Перевірте наявність будь-яких винятків, включаючи виключення покажчика NULL
- Перевірте, чи заборонені значення NULL для імені користувача та пароля
- Перевірте, чи правильно вказано ім’я користувача / пароль
- Перевірте, чи не дозволені номери для імені користувача
- Перевірте, чи не допускаються спеціальні символи в Імені користувача
- Перевірте, чи правильно введено поєднання імені користувача та пароля, тоді програма переходить на наступний екран, тобто екран інформації про працівника
- Перевірте, чи правильно введене ім’я користувача
- Перевірте, чи допускає текстове поле імені користувача лише максимальну кількість символів, вказаних для цього поля
- Перевірте, чи під час введення поле пароля, якщо це зазначено у вимогах, відображається як *
- Перевірте, чи паролі чутливі до регістру
- Перевірте, чи не ім’я користувача чутливе до регістру
- Перевірте, чи сторінка входу не пам’ятає ім’я користувача чи пароль, навіть після виходу
- Перевірте, чи працює кнопка Надіслати та Скасувати відповідно до вимог
- Якщо ви вперше використовуєте програму, перевірте, чи має ім’я користувача дозвіл на вхід до програми
- Видаліть комбінацію імені користувача / пароля з бази даних і перевірте, чи не змогла ця комбінація ввійти знову
- У всіх вищезазначених випадках перевірте, чи відображаються відповідні повідомлення про помилки перевірки
- Перевірте, чи є ярлики та кнопки в потрібному місці на екрані та чи правильно вони відображають текст
- Перевірте, чи вигляд екрана відповідає вимогам
- Перевірте, чи обробляються винятки
- Перевірте, чи виконується реєстрація необхідних дій
Пройшовши тестові приклади, ви можете зрозуміти, що в основному маєте справу з тестуванням полів, кнопок, функціональності та перевірок певного екрану. Це точно, оскільки Unit Testing дуже чітко займається тестуванням кожного невеликого фрагмента коду та компонента. Для всіх екранів слід проводити однаковий тип тестування.
Зверніть увагу, що наведені вище є лише прикладами, а тестові кейси готуються на основі конкретного проекту та детального проектного документа.
Читайте також=> Зразок готовий до використання тестові приклади і тестові сценарії для тестування веб-додатків.
# 2) ТЕСТУВАННЯ ІНТЕГРАЦІЇ
При інтеграційному тестуванні окремі модулі інтегруються та перевіряються разом на правильність.
Запитання та відповідь на інтерв’ю для тестування програмного забезпечення для більш свіжої інформації
Нехай кожен із трьох екранів у наведеному вище прикладі розроблений трьома різними членами команди. Тепер, коли вони закінчили модульне тестування, настав час об’єднати весь код і перевірити, чи добре вони працюють разом. Тестування інтеграції проводиться для того, щоб переконатися, що дані або елементи керування передаються правильно з одного екрана на інший.
Ось кілька зразків тестових випадків інтеграції для прикладу Application Employee:
- Переконайтеся, що користувач увійшов у систему та сеанс однакові на всіх інших нових інтегрованих екранах
- Перевірте, чи інші модулі не оновлюють / видаляють / вставляють будь-який запис у базу даних без необхідності
- Нехай буде поле статусу працівника, на якому буде написано «Новий» при додаванні, «Оновлений» при зміні та «Видалено» при видаленні. Хоча два або три екрани можуть використовувати одне і те ж поле стану, важливо переконатися, що поле не неправильно оновлюється.
- Перевірте, чи відповідають заголовок, нижній колонтитул, розмір екрана та зовнішній вигляд вимогам після інтеграції
- Переконайтеся, що при натисканні на кнопки Надіслати елемент керування переноситься на наступний екран
- Переконайтеся, що при натисканні на кнопку Скасувати виконану дію скасовано
Крім того, загальними тестовими прикладами інтеграції для програми J2EE можуть бути:
- Перевірте потік даних, будь то Object, XML або Session від кінця до кінця. Перевірте правильність.
- Перевірте, чи правильно управляється сеансом кожен з модулів
- Якщо задіяні зовнішні програми (веб-служби), перевірте, чи може ваша програма здійснювати дзвінки та отримувати дані назад із програми
# 3) ТЕСТУВАННЯ СИСТЕМИ
Під час тестування системи вся програма перевіряється на функціональність та повноту з урахуванням вимог. Ймовірно, було б простіше запитати, коли виконується модульне тестування кожного компонента, а компоненти коду також поєднуються та тестуються разом під час тестування інтеграції, що може відрізнятися при тестуванні системи? Не недоречно стверджувати, що ідея тестування системи полягає в тому, щоб зламати додаток :)
Сценарій No1: Ви розробляєте нову програму для співробітників із фреймворком;наприклад, Розпірки. Також є кілька інших програм, що працюють на різних серверах у вашій організації. Однак усі вони телефонують до тієї самої існуючої веб-служби, щоб отримати адресу та номер телефону для будь-якої конкретної особи.
Під час тестування інтеграції ви б перевірили, чи зможе ваша програма здійснити дзвінок до веб-служби та чи зможете ви отримати відповідь. Але що, якщо у самій веб-службі є проблема? Або веб-служба не реагує на деякі рідкісні дані? У нашому випадку веб-служба може приймати лише кількість працівників, що не перевищує 6 символів. Або веб-служба видає винятки для певних форматів адрес під час повернення. Це зовнішнє, але воно також є частиною тестування системи.
Сценарій No2 : Ваша заявка на працівника заповнена. Ви додаєте працівника, і він генерує номер працівника # 1001. Ви модифікуєте, видаляєте, оновлюєте, додаєте, модифікуєте, видаляєте, додаєте, додаєте, додаєте, модифікуєте, видаляєте, а потім нарешті додаєте інший. Що робити, якщо новим номером працівника буде знову # 1001?
Сценарій No3 : Припустимо, що програму одночасно використовують два користувачі. Обидва вони починають працювати над одним працівником, один видаляє. Що робити, якщо інший користувач зможе продовжити модифікацію тих самих співробітників, які вони зберігаються в сеансі?
Нижче наведено кілька важливих аспектів тестування системи:
- Переконайтеся, що потік даних та контроль правильні кінець в кінець
- Забезпечити безпеку даних транзакції
- Переконайтеся, що додаток відповідає всім бізнес-функціоналам
- Перевірте, чи працює додаток добре як кінцевий продукт - перевірте непрацюючі посилання, управління сеансами, файли cookie, журналювання, обробку помилок, обробку винятків, перевірку та потік транзакцій.
# 4) ТЕСТУВАННЯ ВИКОНАННЯ
Цей тип тестування проводиться, коли в базі даних буде велика кількість користувачів, які використовують програму, чи великі обсяги даних, або обидва. Нижче наведено деякі випадки:
- Якщо одночасно входить кілька користувачів, перевірте, чи не зависають програми
- Якщо в базі даних доступний великий обсяг даних - переконайтеся, що сітки екрану пошуку не займають дуже багато часу для виконання запитів до часу очікування сеансу
- У багатопотоковому середовищі перевірте, чи зможе програма добре обробляти всі потоки
- У програмах, де створюється велика кількість об’єктів, перевірте, чи виділено достатньо пам’яті, чи обробляється збір сміття, і чи немає винятків, які не вистачає.
Висновок
У цій статті ми розглянули огляд програми J2EE. Ми також побачили, як вручну виконати модульне, інтеграційне, функціональне та системне тестування для кожного з компонентів програми на прикладі.
В наступна стаття , ми побачимо, як тестування автоматизації може бути корисним для великих програм J2EE.
Про автора: Це гостьова стаття Padmavaty S. Маючи загальний досвід тестування програмного забезпечення понад 7 років, вона має великий досвід тестування фреймворку Java, J2EE, MVC та Struts.
Повідомте нас, якщо ви працюєте над тестуванням програм JAVA. Поділіться своїм досвідом та запитаннями в коментарях нижче.
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- ISTQB Тестування Сертифікація Зразок запитальних робіт з відповідями
- Як виконати автоматичне тестування програм JAVA / J2EE (частина 2)
- Найкращі засоби тестування програмного забезпечення 2021 р. (Інструменти автоматизації тестування якості)
- Топ 20 практичних порад щодо тестування програмного забезпечення, які слід прочитати перед тестуванням будь-якого додатка
- Тестування програм охорони здоров’я - Поради та важливі сценарії тестування (Частина 2)
- Як знайти помилку в додатку? Поради та підказки
- Тестування баз даних за допомогою JMeter
- Віртуальна машина Java: як JVM допомагає у запуску програми Java