Какие задачи по программированию на собеседовании на автоматизатора Вам задавали?

interview
questions
job
Теги: #<Tag:0x00007f7b6531edd0> #<Tag:0x00007f7b6531ec90> #<Tag:0x00007f7b6531eb50>

(Игорь Артемов) #41

хотелось бы выслушать мнение экспертов проходил вот собеседование на selenium и дали вот такую задачку позиция junior qa

Необходимо описать задачу с применением принципов ООП.
Условие тестовой задачи:
Дано объекты-фигуры следующих видов: квадрат, треугольник, круг, трапеция. Каждую фигуру можно нарисовать, получить ее площадь и цвет. Также фигуры имеют уникальные методы, например: вернуть радиус, длину гипотенузы, длину стороны и т. д.
Нам необходимо сгенерировать случайный набор фигур, количество объектов в наборе также заранее неизвестно.
После генерации массива нужно вывести весь список объектов, которые у нас имеются, например:
Фигура: квадрат, площадь: 25 кв. ед., цвет: синий
Фигура: треугольник, площадь: 12,5 кв.ед., цвет: желтый
////////////////////////////////////
вот решение там джарник и код хотелось бы услышать ваше мнение, так как вродебы работает прога может код конечно не мега но все же и позиция такаяже https://drive.google.com/folderview?id=0B1cu5dnmSDIgfmlVWWpxX0IzQnpLSHJ1b1R3Q2FKeE5qYkI1SkQ3dFFEQUFkTjJhRFVqamM&usp=sharing


(ex3me0) #42

“с применением принципов ООП” - это не то, что написано у Вас.
Должны быть: фигура (базовый абстрактный класс/интерфейс, в котором реализуются необходимые методы), квадрат, треугольник, круг, трапеция (классы наследованные от базового). Соответственно необходимо переопределение метода toString (если мои познания Джавы верны)


(Игорь Артемов) #43

СПС


(Sergey Korol) #44

Почему-то мне кажется, что от вас требовалось не полное решение, а лишь создание прототипа. А вы восприняли все буквально и начали создавать визуальные компоненты, методы отрисовки и т.п. Зачем?!

Все, что от вас нужно - это понимание основ ООП. Причем, задачка с геометрическими фигурами во многих источниках приводится в качестве примера полиморфизма.

Решение (как намекнули выше): 1 интерфейс с 3 методами: draw, getArea, getColor. 4 класса, имлементирующих этот интерфейс. В каждом из классов будут свои доп. методы, на которые я бы вообще не стал обращать внимания, исходя из условия - просто создайте заглушки. Ну и дефолтные конструкторы с какими-нибудь рэндом значениями. Далее можно написать параметризованный enum, возвращающий наши фигуры. Помимо этого, сюда же можно вшить геттер, получающий на вход длину массива, и возвращающий random List<InterfaceType>. Хотя, тут можно сильно и не заморачиваться. Вариантов решения с рандомизацией - масса. Про toString() тоже уже сказали. Впрочем и все. Вызываем 1 метод с произвольным параметром длины, и в цикле проходимся по результирующему массиву, печатая результат.

Если честно, я бы даже не стал обращать внимания на формулы в решении (устроили бы и заглушки), т.к. цель тут - проверка знаний ООП, а не школьной математики.


(Игорь Артемов) #45

Во спасибо вам огромное, хоть указали на ошибку сидел бы так и не понимал что к чему, а так даже посмеялся :slight_smile: да так даже лучше через интерфейс, не надо заморачиваться … спасибо


(Vsevolod Brekelov) #46

“Thinking in Java” Bruce Eckel.
Как раз в первых 100 страницах очень хорошо объясняется данный пример/задача. Рекомендую к прочтению.


(Mykhailo Poliarush) #48

Я просто оставлю эти ссылки в этой теме:

Спасибо @ayia взял с его поста


(Artur Korobeynyk) #49

Почитал и апнул тему своим мнением.
Какие-то длинные вам задачи дают. Больше одной строчки. Я что не получаю, выглядит всё проще, в одну строчку:
Написать сканнер wifi сетей и их параметров на питоне используя DBus. Результаты хранить в sqlite
Написать стиллер картинок с веб сайтов с проверками на возможные атаки DoS.

Ну и дальше в таком стиле.


(Oleksandr Romanov) #50

Из последнего, что понравилось:

  • в режиме реального времени шарили заготовленный кусок кода на 100 строк и надо было найти как можно больше ошибок и уязвимостей;

  • расшарен базовый проект на вей драйвере (с кучей антипаттернов) - и надо было его улучшить настолько, насколько возможно за короткое время (имхо - более полезная задача на собеседовании на автоматизатора, чем перечисление алгоритмов сортировки на листике :grinning:);

  • дан мануал по REST API некоего продукта компании - надо было написать несколько тестов, используя полученную информацию;


(Mykhailo Poliarush) #51

Задачи по #python


(r292) #52

Если не ошибаюсь там реализация с помошью наследования, лучше пусть человек сразу с интерфейсов начнет чем полюбит зло.:slight_smile:


(Александр Анисимов) #53

Оживлю темку…
Из моей практики:

  • когда устраивался, будучи новичком, задавали стандартные вопросы про “ооп, листы и мапы и т.д.”, и в качестве тестового (неделю ходил прям в офис конторы): на голой java клиент и сервер для чата;
  • будучи “умельцем” с 2-х годичным опытом, спрашивали уже про конкретные применяемые “технологии” и в качестве тестового (на дом): написать работающее web-приложение (без визуальной вычурности), игру “крестики-нолики” (с учётками, историей игр, с возможностью доиграть незаконченную), на голой java.
    Т.к. (на тот момент) не сталкивался с “web-java” вообще, пришлось за двое суток навёрстывать упущенное: сервлеты, jsp и т.д.

P.S. надеюсь, тема оживёт; т.к. завтра проводить интервью, а готовить вопросы и задания самому времени не оставили. Все, выше отписавшимся, низкий поклон.


(Максим Таран) #54

Это вы на тестировщика собеседовались, что надо было web-приложение написать? Это же не 3 часа. :slight_smile:


(Александр Анисимов) #55

Первое трудоустройство на дева, второе на aqa


(Максим Таран) #56

Офигеть, должно быть очень заманчивая работа была. :slight_smile:


(Александр Анисимов) #57

Первое: на момент устройства - да, оказалось - нет. Но получил много ценного опыта, который помог в будущем.
Второе: весьма заманчивое. Работаю до сих пор (уже 2,5 года).