Основная идея чемпионата - соревнование по поиску дефектов в программном обеспечении. В этом соревновании побеждает тот, кто за час сможет найти больше критичных багов, а так же знает тест - дизайн и обладает практическими навыками поиска неисправностей.
Тестовое приложение делаем специально для чемпионата, в нем будут спрятаны заранее придуманные баги, которые вам предстоит найти :)
Участвуй, прокачай свои навыки и получи шанс выиграть крутые призы! Победитель заберет самый крутой шлем виртуальной реальности HTC VIVE! (А так же будут футболки и памятные статуэтки/медальки - но это не точно )) )
Во время тестирования приложения, использующего mq-очереди, возникла следующая проблема.
Каждый новый тред успешно подключается к входящей и исходящей очередям, отправляет и считывает сообщение в первой итерации, но начиная со второй итерации только отправляет, а при чтении получает ошибку 2033 "Сообщение не найдено". В то же время в исходящей очереди появляется никем не считанное сообщение.
Я использую groovy-скрипт для отправки/чтения, аналогичный алгоритм проверялся на HP LR и была получена та же ошибка.
class QueueController{
// параметры для подключения к MQ`
public String inputMgrName;
public String outputMgrName;
public String putQueueName;
public String getQueueName;
public String msgBody;
// менеджер и очереди
public MQQueueManager inputMgr;
public MQQueueManager outputMgr;
public MQQueue getQueue;
public MQQueue putQueue;
public MQPutMessageOptions pmo = new MQPutMessageOptions();
public MQGetMessageOptions gmo = new MQGetMessageOptions();
public MQMessage requestMsg = new MQMessage();
public MQMessage responseMsg = new MQMessage();
// queueMgrName - имя менеджера MQ
// putQueueName - имя очереди входящих сообщений
// getQueueName - имя очереди исходящих сообщений
// msgBody - тело сообщения
public QueueController(String inputMgrName, String outputMgrName, String putQueueName, String getQueueName, String msgBody){
this.inputMgrName = inputMgrName;
this.outputMgrName = outputMgrName;
this.putQueueName = putQueueName;
this.getQueueName = getQueueName;
this.msgBody = msgBody;
// параметры MQ enviroment - могут быть заменены
MQEnvironment.hostname="host";
MQEnvironment.port=port;
MQEnvironment.channel = "SYSTEM.ADMIN.SVRCONN";
MQEnvironment.userID = "user";
MQEnvironment.password = "password";
this.inputMgr = new MQQueueManager(inputMgrName);
this.putQueue = inputMgr.accessQueue(putQueueName, MQC.MQOO_BIND_NOT_FIXED | MQC.MQOO_OUTPUT);
// дополнительные настройки для MQ сообщения
public void initialRequestAndResponseMessage(){
requestMsg.clearMessage();
responseMsg.clearMessage();
requestMsg.replyToQueueName = getQueueName;
requestMsg.report=MQC.MQRO_PASS_MSG_ID;
requestMsg.format = MQC.MQFMT_STRING;
requestMsg.messageType=MQC.MQMT_REQUEST;
requestMsg.writeString(msgBody);
}
}
String msg = new String(Files.readAllBytes(Paths.get("X:/xxxx/xxxxxxx/File.xml")));
QueueController queueController = new QueueController("QM", "QM", "Q1", "Q2", msg);
vars.putObject('queueController',queueController);
Здравствуйте, такое задание попалось, состоящее из одного предложения: "написать тест план для тестирования функции, возвращающей рандомное число от A до B", никакой дополнительной информации нет. Подскажите, как решать? Привык, что есть входные данные, а тут немного в ступоре. На ум приходит только прогнать функцию какое-то количество раз. Спасибо.
ps. Сорри, что-то с названием темы, не нашел, как его изменить. Если админы видят, поправьте пожалуйста или скажите, как изменить.