Software Development Engineer in Test (Microsoft)
2012-04-11 10:06
В отдел Разработки и Тестирования Dynamics AX компании Microsoft требуется Software Development Engineer in Test (инженер-разработчик в тестировании)
Наши масштабы и задачи:
В связи с расширением московского R&D центра, отвечающего Dynamics AX (Axapta) в Западной и Восточной Европе и России, а так же открытием новых проектов по разработке и локализации вертикальных решений компания Microsoft набирает инженеров-разработчиков в тестировании для участия в выпусках одной из крупнейших мировых ERP систем.
Тестирование Dynamics AX выгодно отличается от многих IT продуктов, в первую очередь, многогранностью и сложностью функциональной стороны вопроса. Наши успешные тестировщики умеют:
продумывать и реализовывать тестовые сценарии по различным областям бухгалтерского, складского, налогового учета.
учитывать влияние на свою фичу множества параметров.
успешно взаимодействовать с разработчиками и постановщиками задач,
работать в тесном сотрудичество с коллегами из других стран (США, Дания, Китай и тд).
профессионально развиваться и развивать Продукт, его качество и процессы, по которым он выпускается.
При автоматизации наших бизнес-сценариев мы используем сложные объектно-ориентированные паттерны для работы с формами и данными Axapta. Мы автоматизируем действия пользователя не только через интерфейс, но и напрямую работая с классами и таблицами системы. Наши автоматизированые тестовые сценарии разработаны на языке C#.
Наши требования к соискателям:
Из обязательного:
Теоретические знания и опыт программирования
Знания методологий структурного и объектно-ориентированного программирования, умение их использовать на практике
Знание одного из высокоуровневых языков программирования (Си, Паскаль, Java)
Опыт тестирования ПО
Технический английский (хороший письменный, приемлемый устный)
Из желательного:
Все тоже самое, но на очень хорошем уровне
Опыт работы с Visual Studio .Net & C#
Опыт работы с Dynamics AX или другой крупной ERP системой
В настоящий момент открыто несколько вакансий по данному направлению. Мы рассматриваем как начинающих разработчиков и тестировщиков с опытом программирования, так и сильных кандидатов со значительным опытом работы.
Мы готовы предложить:
Интересные задачи
Энергичную и дружелюбную команду профессионалов
Конкурентоспособный компенсационный пакет.Заработная плата определяется по результатам собеседования и зависит от соотношения Обязательных и Желательных качеств у Соискателя.
Трудоустройство в полном соответствии с ТК РФ
Возможность обучения и развития внутри компании
Перспективы профессионального и карьерного роста
Работа в интернациональной команде с разработчиками из США, Дании и других стран мира
Гибкий график работы (для хорошо зарекомендовавших себя сотрудников)
Вообще гибкость во всем. Кроме ориентации на результат
Территориально: м. Крылатское. Бесплатные корпоративные шаттлы до бизнес центра ходят от станций метро Крылатской, Сокол и Полежаевская (время в пути 5-15 минут).
Дизайнер интерфейсов в Сбербанк-Технологии
2012-04-11 11:41 Ищем опытного дизайнера, которому можно доверить проектирование и визуализацию пользовательских интерфейсов платежных терминалов, банкоматов, веб-сервисов, приложений для смарт-фонов и планшетников.
Требования:
∙ Опыт работы с коммерческими проектами от 5-ти лет.
∙ Разработка интерфейсов и дизайна с использованием графических пакетов: Adobe Photoshop, Illustrator.
∙ Внимательность к деталям и поиск нестандартных, но лучших решений.
∙ Опыт работы с HTML5/CSS3, Flash / Flex, Actionscript, JavaScript.
∙ Способность работать над проектами с изменяющимися приоритетами и готовность искать гибкий баланс между оптимальными решениями и временными ограничениями.
∙ Нацеленность на командную работу, участие в обсуждениях и принятие решений по развитию сервисов.
∙ В качестве тестового задания нужно сверстать собственное портфолио и разместить его на внешнем ресурсе.
Обязанности:
∙ Создание качественного графического контента;
∙ Проектирование пользовательских интерфейсов:
∙ анализ деятельности пользователей (определение целей, задач, способов их решения, сбор пользовательских требований)
∙ описание информационных моделей,
∙ проектирование логики взаимодействия и навигационных схем,
∙ дизайн композиционных макетов,
∙ создание и отладка прототипов.
Условия:
Работа в офисе на м. Тульская
з/п от 100 000
Социальный пакет
Тренажерный зал
Обучение
Готовы рассматривать специалистов не только из России!
в международную компанию срочно требуется Tririga Programmer для проекта в Москве.
Требования:
- опыт работы с ПО Tririga;
- свободный английский язык.
Условия:
- продолжительность проекта 8 месяцев;
- старт 1 мая;
- полный рабочий день;
- Москва.
Если Вы сейчас свободны, то высылайте Ваше резюме, с указанием дневной ставки в USD и датой возможного выхода на marina.makridina@reutax.com
Если Вы сейчас недоступны, то возможно Вы сможете рекомендовать данный проект своим коллегам.
По всем вопросам Вы можете обращаться ко мне.
С уважением,
Марина Макридина
marina.makridina@reutax.com
в международную компанию срочно требуется Tririga Senior Analyst для проекта в Москве.
Требования:
- опыт работы с ПО Tririga;
- свободный английский язык.
Условия:
- продолжительность проекта 8 месяцев;
- старт 1 мая;
- полный рабочий день;
- Москва.
Если Вы сейчас свободны, то высылайте Ваше резюме, с указанием дневной ставки в USD и датой возможного выхода на marina.makridina@reutax.com
Если Вы сейчас недоступны, то возможно Вы сможете рекомендовать данный проект своим коллегам.
По всем вопросам Вы можете обращаться ко мне.
С уважением,
Марина Макридина
marina.makridina@reutax.com
Если пользователь наводит на "Menu1" то раскрывается меню с возможностью выбора option1, option2 и т.д
Собственно вопрос Как навести мышку на элемент меню но не нажимать его ?
Ошибка при запуске теста Eclipse
2012-04-11 16:07
при запуске теста постоянно вылетает ошибка (тест делается) в Selenium Log Console:
"Log window displayed. Logging events will now be recorded to this window." как бороться ?
Специалист по тестированию
2012-04-11 17:13
ОАО «АльфаСтрахование» в связи с расширением в отделе тестирования бизнес – систем приглашает на работу специалистов на вакансию:
Специалист по тестированию
Обязанности:
∙ Автоматизация функционального тестирования:
- Написание новых и поддержка существующих сценариев функционального тестирования на HP QuickTestProfessional (QTP).
∙ Функциональное тестирование бизнес - систем:
- Сбор и документирование требований
- Написание сценариев тестирования
- Прохождение сценариев тестирования
- Контроль исправления дефектов
∙ Нагрузочное тестирование бизнес систем
Требования:
∙ Опыт ручного функционального тестирования от года
∙ Опыт автоматизации тестирования от года (желательно с помощью QTP)
∙ Приветствуется опыт работы с системами контроля версий
∙ Образование: высшее техническое
Условия:
∙ м. Шаболовская ( 7 мин пешком от метро)
∙ Оформление по ТК РФ ( отпуск , б\л )
∙ График работы пн-пт с 9.00 до 18.00
∙ Соц. Пакет ( ДМС, скидки на страхование)
∙ Заработная плата 90 000 рублей гросс
Контакты:
Александра Зенина
zeninaas@alfastrah.ru
8-495-788-09-99 доб.5611
Почему просто нельзя создать public static void login_site(String login, String password), куда передовать просто логин и пароль ?
т.е. если хотим залогиниться, то вызываем login_site(xxxxx, xxxxx)
Потом метод login_site можно легко усовершенствовать, типо, если мы находимся на главной странице то входим в систему и т.п....
просто не могу понять смысл page object
проблема с драйвером
2012-04-11 18:09
Столкнулась с непонятной проблемой.
Тестирую gmail.com.
подключаю FirefoxDriver. Захожу на главную страницу, ввожу логин и пароль, всё нормально проходт, но как только перехожу на страницу с почтой сталкиваюсь с проблемой.. не ищутся элементы. title страницы вроде бы выдает правильный... но элементы на странице не ищутся никакими методами.
пишет ошибку:
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//a[contains(text(),'Terms')]"}
Command duration or timeout: 16 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.20.0', revision: '16008', time: '2012-02-28 15:00:40'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_26'
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:170)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:123)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:438)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:226)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:299)
at org.openqa.selenium.By$ByXPath.findElement(By.java:344)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:218)
at com.epam.gmail.pages.MailPage.getAccountBar(MailPage.java:22)
at com.epam.gmail.tests.SignIn.signIn(SignIn.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:691)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:758)
at org.testng.TestRunner.run(TestRunner.java:613)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1142)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1067)
at org.testng.TestNG.run(TestNG.java:979)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:109)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:202)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173)
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Unable to locate element: {"method":"xpath","selector":"//a[contains(text(),'Terms')]"}
Build info: version: '2.20.0', revision: '16008', time: '2012-02-28 15:00:40'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_26'
Driver info: driver.version: unknown
Хотел бы задать вопрос, поддерживает ли Selenium IDE условия. Екстеншн "selenium-ide-flowcontrol" я скачал,, установил. Но явных возможностей задавать условия (if, форки) там, к сожалению нет.
Может кто-нибудь с этим сталкивался?
Вообще ситуация такая:
Если элемент не найден верифаем, то не пытаться кликать по нему, а, используя gotolabel идти дальше.
Суть задачи.
Нужно организовать проверку успешности доставки активационных ссылок на разные почтовики при автоматической регистрации юзеров на некоем сайте.
Для проверки почты использую java класс JavaMail
Для этого в проекте создал класс Mail.java:
package com.core;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
public class Mail {
private String activationLink = null; // Ссылка на активацию нового юзера
public String ReceiveLastEmailWithActivationLink(String email, String passwordForEmail, String host, String provider) throws Exception {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, new MailAuth(email, passwordForEmail));
Store store = session.getStore(provider);
store.connect(host, null, null);
Folder inbox = store.getFolder("INBOX");
if (inbox == null) {
System.out.println("No INBOX");
System.exit(1);
}
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages(); //Получение всех сообщений в папке "Входящие"
for (int i = 0; i < messages.length; i++) {
String subject = messages[i].getSubject().toString().toLowerCase().trim(); //Получение темы письма
String letterConfirmationSubject = "подтверждение регистрации на сайте"; //Тема письма которое содержит активационную ссылку
//Выбор нужного письма
if (!subject.equals(letterConfirmationSubject)) {
System.err.println("Сообщение пропущено, т.к. не является активационным письмом.......");
continue;
}
System.out.println("Сообщение принято к обработке");
Object contentMessage = messages[i].getContent();
String content = contentMessage.toString();
//Проверка наличия активационной ссылки в теле письма
CharSequence searchPhrase = "http://www.someSite.ua/user/confirm/";
if (content.contains(searchPhrase)) {
System.out.println("ОК.Письмо содержит активационную ссылку.");
} else {
System.err.println("!!!===SHIT!Письмо не содержит активационную ссылку===!!!");
continue;
}
int indexOf = content.lastIndexOf("http://www.someSite.ua/user/confirm/");
int lastIndexOf = content.lastIndexOf("--");
//Получение из тела письма активационной ссылки
this.activationLink = content.substring(indexOf, lastIndexOf).trim();
}
inbox.close(false);
store.close();
return activationLink;
}
/*-------------------------------------------------------------------------------------------------------*/
class MailAuth extends Authenticator {
private String email; //Инициализируем поле в котором хранится значение емейла
private String password; // Инициализируем поле в котором хранится значение пароля
MailAuth(String email, String password) {
this.email = email;
this.password = password;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(email, password);
}
}
}
Получаю емейл так:
/*------------------------------------------------------------------------------------------------------------
Получем почту с заданного почтовика
------------------------------------------------------------------------------------------------------------*/
public void checkActivationLink(String email, String passwordForEmail, String host_email, String provider, String stepNumberAndShortDescription) throws Exception {
Mail Mail = new Mail();
String activationLink = Mail.ReceiveLastEmailWithActivationLink(email, passwordForEmail, host_email, provider);
Assert.assertTrue(!activationLink.isEmpty());
this.setUp(stepNumberAndShortDescription);
selenium.setContext("activationLink= " + activationLink);
System.out.println("activationLink= " + activationLink);
//Проверка наличия на странице активации нового юзера сообщения об успешной активации нового юзера
My.openTry(activationLink, selenium);
Assert.assertTrue(selenium.isElementPresent("//div[@class='message success txtC']"));
selenium.setContext("Письмо со ссылкой на активацию успешно получено. Юзер активирован.");
}
/*------------------------------------------------------------------------------------------------------------
Получение почты для бигмировского юзера
------------------------------------------------------------------------------------------------------------*/
@Test(alwaysRun = true)
public void checkBigMir() throws Exception {
String email = V.emailUserBigMir;
String passwordForEmail = V.passwordForEmailUserBigMir;
String host_email = V.host_emailUserBigMir;
String provider = V.providerUserBigMir;
String stepNumberAndShortDescription = "Проверка доставки письма бигмировскому юзеру";
this.checkActivationLink(email, passwordForEmail, host_email, provider, stepNumberAndShortDescription);
}
Так вот.
Данный код отлично работает, письмо об активации успешно получаю.
Но!
Хочу зарегистрировать пачкой 10 юзеров, например, а потом проверить доставку активационной ссылки десятерым юзерам.
И вот, когда происходит вызов метода ReceiveLastEmailWithActivationLink - то во второй раз(третий, четвертый, и т.д.) соединение инициализируется не с новым набором данных, а с теми данными, которыми вначале был проинициализирован класс MailAuth.
Заметил, что:
class MailAuth extends Authenticator {
private String email;
private String password;
!!! При каждом последующем вызове метода MailAuth поля класса email и password принимают новые значения !!!
MailAuth(String email, String password) {
this.email = email;
this.password = password;
!!! При каждом последующем вызове метода MailAuth переменные email и password принимают новые значения !!!
}
public PasswordAuthentication getPasswordAuthentication() {
String email = this.email;
String password = this.password;
[size="4"][b]!!! А вот здесь email и password ВСЕГДА хранят СТАРЫЕ значения !!![/b][/size]
return new PasswordAuthentication(email, password);
}
}
}
Вопрос:
Почему переменные метода getPasswordAuthentication email и password при каждом следующем вызове метода MailAuth продолжают хранить старые значения?