Школа тест-менеджеров стала доступной, даже если у вас ещё нет своей команды!
“Школа тест-менеджеров” - высокопрактичный курс по управлению тестированием. Во время его прохождения ученики выполняют полезные домашние задания, связанные с опросами заказчика, поиском сотрудников в команду, планированием, сбором метрик и т.д. Раньше мы рекомендовали нашим ученикам не записываться на курс, если у них не было команды и проекта, на котором можно было бы отрабатывать практические задания. Теперь всё поменялось! Школа Тест-Менеджеров сотрудничает с проектом “Хомячки”. Со следующего запуска Школы все желающие смогут пройти курс в новом, более практическом формате.
Если у тебя пока что нет своей команды, но ты хочешь развиваться в направлении тест-менеджмента, то это прекрасная возможность прокачать скиллы и получить бесценный опыт управления командой.
В чём суть?
Проект Хомячки соединяет начинающих тестировщиков, желающих приобрести практический опыт, с заказчиками, желающими протестировать свой продукт, но не имеющими штатных специалистов. Теперь, ты можешь совместить обучение на Школе Тест-Менеджеров с практикой в роли тест-лида на проекте “Хомячки”
Во время прохождения курса ты получишь теоретические знания и практические задания от гуру тест-менеджмента Натальи Руколь, а так же возможность отработать эти задания на реальном проекте с командой “Хомячков”!
Мы предоставим:
список тестировщиков, из которых ты наберешь команду (при необходимости, мы поможем в этом);
проект для тестирования: сайт или мобильное приложение;
связь с заказчиком тестирования;
набор инструментов для тестирования;
нашу поддержку по вопросам взаимодействия с командой и заказчиком.
При выборе такого формата прохождения Школы тебя ждёт поддержка по домашним заданиям не только от тренеров ШТМ, но и дополнительная помощь и консультации от экспертов проекта “Хомячки” - Ольги Ермолаевой и Василия Касимова.
Работал с JMeter 2.13 и все было хорошо. Сейчас перешел на JMeter 3 и возникла проблемма с View Results Tree.
Суть проблемы. Для отправки запросов использую HTTP Request. В теле запроса посылаю json который вставляю в Body Data. И если json содержит в себе % то когда выбираю этот запрос в View Results Tree получаю следующую ошибку в логе:
2016/07/05 10:36:10 WARN - jmeter.protocol.http.visualizers.RequestViewHTTP: Error decoding query, maybe your request parameters should be encoded:10% java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) patternat java.net.URLDecoder.decode(URLDecoder.java:187)
at org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.decodeQuery(RequestViewHTTP.java:347)
at org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap(RequestViewHTTP.java:301)
at org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.setSamplerResult(RequestViewHTTP.java:223)
at org.apache.jmeter.visualizers.RequestPanel.setSamplerResult(RequestPanel.java:109)
at org.apache.jmeter.visualizers.SamplerResultTab.setupTabPane(SamplerResultTab.java:229)
at org.apache.jmeter.visualizers.ViewResultsFullVisualizer.valueChanged(ViewResultsFullVisualizer.java:263)
at javax.swing.JTree.fireValueChanged(JTree.java:2927)
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3391)
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:635)
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1093)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:294)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:188)
at javax.swing.JTree.setSelectionPath(JTree.java:1634)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2393)
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3609)
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3548)
at java.awt.Component.processMouseEvent(Component.java:6532)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Grid Dynamics seeks a great QA team leader or Senior Quality Assurance Engineer with strong technical expertise, who is interested in joining our growing project, responsible for quality of a highly scalable and distributed platform for one of the largest world-leading retailers.
As a key member of this team, you will be working in a collaboration with a team of worldwide recognized experts. This is an excellent opportunity to become a key contributor to the project, while creating the next generation of network-centric distributed and scalable architectures.
We work with bleeding-edge technologies, including J2EE, in-memory data grids such as Oracle Coherence, NoSQL databases such as Apache Cassandra, automated testing tools such as Fitnesse, Selenium WebDriver, built in-house Jagger performance measurement tool, Continuous Integration and Delivery, etc.
Key Responsibilities:
Guide development teams, providing High Level Architecture, doing design reviews, answering technical questions
Provide quality assurance oversight and management of other consultants/developers on the project configuring and deploying the design
Design and implement QA infrastructure, develop new innovative approaches to testing of complex systems
Establish Standards, policies and procedures within the application architecture domain
Collaborate with globally distributed team of engineers, architects and analysts (San Francisco, Saint-Petersburg, Kharkov)
Review and analyze functional requirements, identify and correct gaps and inconsistencies
Analyze test results and perform root cause analysis
Work in agile software development process (Scrum, two-week iterations, Continuous Integration/Continuous Delivery, Planning Games, Daily Stand-Up)
Lead and mentor junior QA engineers
Preferred Skills:
10 years of overall experience
Prefer 5+ years of eCommerce experience
5 years in automated testing: Fitnesse, JBehave, SOAP UI, Selenium, Cucumber
Experience with overall application architecture needs, hardware and software components
Previous Consulting experience
Master Degree
Solid understanding of REST architecture style and its application to well performing web sites for global usage
Comfortable with basic usage and administration of Unix-based OS (bash / ssh / ps / grep etc…)
Up to speed with modern software engineering: version control systems, issue tracking, build-systems (ant, maven2, etc), continuous integration, wiki, etc
Experience in Agile environment.
Good understanding of databases, working knowledge of SQL
What We Offer:
Competitive salary
Work on bleeding-edge projects in a team of experienced and motivated developers and QA engineers
Flexible working hours
Business trips to San Francisco/Bay Area
Health insurance, benefit package, company-sponsored conferences, vacations
Well-equipped office located in the center of the city
В конце мая этого года в Санкт-Петербурге прошла конференция SQA Days 19. Записи некоторых выступлений с конференции уже появляются в открытом доступе.
По мере их публикования мы сделаем подборки докладов по основным темам в тестировании.
Начать решили с подборки докладов, где авторы рассказывают о методах развития команды.
Регулярные оценки в команде тестировщиков, Наталья Руколь, Quality Lab, Москва, Россия
Аудит команды тестирования в сложном проекте, Nikita Syskov, EPAM, Минск, Беларусь
Три инструмента тест-менеджера для работы с людьми, Сергей Атрощенков, EPAM, Санкт-Петербург, Россия
По ссылке Вы можете найти видео докладов с конференции и просмотреть презентации.
Довожу до ума и по максимуму автоматизирую свои тесты. Хотела написать проверку на проверку процесса и запуска приложения, если такого процесса нет. TestComplete 7.5, приложение на Delfi, скрипты пишу на JScript.
Столкнулась с такой проблемой. Если приложение уже запущено, то код отрабатывает правильно и функция выполняется. Если приложение не запущено (т.е. ради чего эта функция и писалась), тогда Exists начинает бесконечно искать этот процесс и подвешивать систему, вместо того, чтобы послать false и привести к выполнению кода в условии. После принудительной остановки в лог вываливается много ошибок, что процесс не найден.
Собственно, сам код:
function StartPP()
{
if (! Sys.WaitProcess("PPostIn").Exists)
{
TestedApps.PPostIn.Run(1, true);
var PP;
PP = Sys.Process("PPostIn");
PP.VCLObject("login").VCLObject("Button1").ClickButton();
BuiltIn.Delay(3000);
}
}
Натыкалась на советы, связанные с уменьшением таймаута в Playback. Но это не повлияло никак.
Использую MS VS2013, Selenium WD 2.53.1, Nunit 3.4.0
вот пример запуска тестов параллельно и в разных браузерах.
//таких классов 3: GoogleTest1, GoogleTest2, GoogleTest3
[TestFixture]
[Parallelizable]
public class GoogleTest1 : BaseTest
{
[Test]
[TestCaseSource(typeof(BaseTest), "BrowserToRun")]
public void OpenGooglePage(String browserName)
{
SetUp(browserName);
}
}
public class BaseTest
{
protected IWebDriver _driver;
public static IEnumerable<String> BrowserToRun()
{
String[] browsers = TestResources.browsers.Split(',');
foreach (String b in browsers)
{
yield return b;
}
}
public void SetUp(String browserName)
{
_driver = StartBrowser(browserName);
_driver.Manage().Window.Maximize();
_driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
_driver.Url = @"http://www.google.com";
}
private IWebDriver StartBrowser(string browser)
{
switch (browser)
{
case "Firefox":
return new FirefoxDriver();
case "IE":
return new InternetExplorerDriver();
case "Chorme":
return new ChromeDriver();
default:
throw new ArgumentException(String.Format(@"This browser not valid: {0}", browser), "WebDriverOptions.BrowserName");
}
}
[TearDown]
public void TearDown()
{
_driver.Quit();
}
}
Так же есть файл TestResources.resx, в кортом строчка.
browsers = Chorme,Firefox,IE
Вопрос следующего плана, в тестах приходится дергать какждый раз метод SetUp, что как мне кажется немного не удобно, есть ли еще какие то возможности запуска одного и того же теста в разных браузерах.