4. с целью получения информации
процесс исследования программного обеспечения
о качестве продукта
5. *используемые при разработке сервера SkyForge
В сумме несколько сотен тестов
Пишут все программисты
Перед коммитом изменения проверяются самим программистом
После коммита изменения проверяются автоматизированной системой сборки
Все счастливы
6. *используемые при разработке сервера SkyForge
Целый десяток
Пишутся одним единственным программистом
Проверяют, что после сборки сервер запускается, и что аватар может убить моба
7. *используемые при разработке сервера SkyForge
Проверяют, выдерживает ли сервер заявленное число пользователей
Создаваемая нагрузка должна быть релевантной
Выявление наиболее популярных и редких багов
16. public void testLogin(@NotNull String url, @NotNull String username, @NotNull String password) {
WebDriver driver = new HtmlUnitDriver(true);
// Find the text input element by its name
WebElement element = driver.findElement(By.name(“userName"));
element.sendKeys(username);
// Now submit the form.
// WebDriver will find the form for us from the element
element.submit();
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
@Override
@NotNull
public Boolean apply(@NotNull WebDriver d) {
final int id = d.findElement(By.name(“id”));
return id != 0;
}
});
17. моделирование
ожидаемого использования приложения
с помощью эмуляции работы нескольких пользователей одновременно
1. Потребление CPU, %
2. Диск (iowait)
3. Сеть, Mb/s
4. Использование памяти, МБ
5. Время отклика, ms
6. CCU, users
18. Формируется список активностей гейммеханики
Формируются параметры игрового дизайна
Реализуется бот
Проводится испытание
Анализируются результаты
19. Формируется список активностей гейммеханики
Танк должен ехать вправо/влево/вниз/вверх
Танк должен стрелять
Танк должен умирать
20. Формируются параметры игрового дизайна
Танк должен ехать 4 секунды из 5
Танк должен стрелять раз в 5 секунд
Танк должен умирать раз в 10 секунд
Танк НЕ обязан делать это осознанно
21. Начать игру
Ехать в любую
доступную
сторону
Остановиться
ВыстрелитьПодождать
Умереть
22. Реализуется бот
public void testLogin(…)
public void moveRandom(…)
public void stop(…)
public void shoot(…)
public void wait(…)
public void suicide(…)
23. Варианты для ленивых и на попробовать:
http://loadimpact.com/
http://loadstorm.com/
Минусы:
• 100% random
• Сервер должен быть поднят в Интернете
24. 1. Потребление CPU, %
4. Использование памяти, МБ
2. Сеть, Mb/s
3. Диск (iowait)
5. Время отклика, ms
6. CCU, users
https://github.com/jezhumble/javasysmontop
long free = Runtime.getRuntime().freeMemory();
long max = Runtime.getRuntime().maxMemory();
Так же не доступны из Java
private Map<Integer, Avatar> avatars = new HashMap<Integer, Avatar>();
public final int getTotalAvatars() {
return avatars.size();
}