Тестировщики должны уметь исследовать свободным поиском так же хорошо, как ходить по шагам тест-кейсов. Но исследовательское тестирование – это вовсе не неорганизованная беготня как попало, как кажется некоторым. Об этом и поговорим.
Я уже говорил о ремесле тестирования и о том, что в тестировании есть элементы, делающие его искусством. Я верю, что ремесло и искусство наиболее сильно проявляются в эффективном, результативном и изящном исследовательском тестировании.
В большинстве случаев исследовательское тестирование – это тест-дизайн, происходящий одновременно с выполнением тестов и изучением продукта. В основном оно сводится к исследованию проблематики, которая зачастую довольно широкая, сложная и имеет динамическую структуру благодаря взаимозависимостям между своими составвляющими.
Джеймс Бах неоднократно писал об исследовательском тестировании, и он мыслит куда лучше меня, поэтому почитайте его блог на эту тему. Вне зависимости от того, согласен я с Джеймсом или нет, его слова заставляют меня задуматься.
Тут стоит отметить, что именно в исследовательском тестировании подход "задеть лампу", как правило, наиболее эффективен (см. примечание в конце статьи). Недавно я убедился в этом, тестируя Star Wars: The Old Republic (сокращенно SWTOR) для Bioware Austin. Приведу пример.
Что должно быть в $using и $value я вообще не понимаю, что туда надо передать? объясните пожалуйста. на документацию не отсылать я ее читал по этому поводу так и не понял нехрина.
Весь скрипт теста целиком:
<?php
require_once(dirname(__FILE__) . '/../PHPWebDriver/WebDriver.php');
class DeleteWindowTest extends PHPUnit_Framework_TestCase {
protected static $driver;
public function setUp() {
self::$driver = new PHPWebDriver_WebDriver();
}
public function testDeleteWindow() {
$ass = $this->session = self::$driver->session('chrome');
$this->session->open("http://example.com/");
sleep(10);
$this->session->element($using, $value)->click("id=capilibity_link");
$this->session->deleteWindow();
sleep(3);
$this->assertEquals(count($this->session->window_handles()), 0);
}
}
?>
Буду очень благодарен если мне ктонибуть прояснит эту ситуевину....
Пытаюсь установить plugin постоянно выскакивает ошибка:
java.io.IOException: Failed to dynamically deploy this plugin
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1867)
at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1624)
at java.util.concurrent.Executors$RunnableAdapter.call(java.base@9-internal/Executors.java:514)
at java.util.concurrent.FutureTask.run(java.base@9-internal/FutureTask.java:266)
at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:110)
at java.lang.Thread.run(java.base@9-internal/Thread.java:804)
Caused by: java.io.IOException: Failed to install ruby-runtime plugin
at hudson.PluginManager.dynamicLoad(PluginManager.java:834)
at hudson.PluginManager.dynamicLoad(PluginManager.java:775)
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1863)
... 5 more
Кто то может подсказать как подключить jenkins и GitLab?
Только-только начала изучать SoapUI, до этого работала только с Jmeter.
Cтолкнулась с проблемой - не знаю как в SoapUI работать с регулярными выражениями. Гугл ничего толкового не выдал, либо я плохо ищу.
Из ответа который приходит с сервера нужно вытащить значение статуса. И далее циклить до тех пор пока этот статус не изменится.