Метка «Q/A»

Всем привет! Сегодня ровно неделя с момента запуска нашего нового Q&A-сервиса — под катом находится список изменений, которые произошли с проектом за это время.

image
Читать полностью »

Как, наверное, уже все знают, с недавнего времени раздел Q&A на хабре превратился в самостоятельный проект — Тостер.
Воспринято это было неоднозначно.
У меня лично уже вырисовалось несколько минусов по сравнению с тем, что было раньше:

- Сложнее подобрать теги
Раньше вопросы делились по хабам. На память я все, естественно, не помнил, но можно было открыть список и пролистать, проверив, есть ли что-то подобное. Но те хабы, которые меня интересовали, я знал. Теперь же вопросы каталогизируются с помощью тегов. Не нужно быть семи пядей во лбу, чтобы понять, с какого ресурса снята калька. Может, со временем, будет удобнее, но сейчас пользоваться мне сложнее.

- Усложнился поиск
Раньше Если я искал что-то на хабре, обычно находилось пару нужных постов и пара вопросов. В сумме они довольно полно освещали интересующую меня тему. Сейчас же по вопросам нужно совершать отдельный поиск. Кстати, на данный момент релевантный поиск на Тостере работает не ахти.

- Нету связи аккаунтов
Раньше, как уже говорили люди в комментариях, можно было оперативно выйти из минуса, давая хорошие ответы на вопросы. Сейчас такая возможность утеряна. Не думаете же вы, что кто-то пойдет искать профиль того, кто дал ответ, чтобы поставить виртуальный плюсик?

- Не совсем удобное юзабилити
Возможно, это вопрос времени, но пока мне неудобно пользоваться. Раньше вопросы можно было добавлять в избранное и они хранились в том же месте, что и посты. Сейчас можно подписаться на вопрос (и избранное перенесли туда), но все избранное в одном месте — намного лучше.

Читать полностью »

Наверняка многие из вас помнят душевные конференции «Тостер» с хрустящими тостами и джемом. В силу разных причин мы приостановили проведение этих мероприятий, однако, богатая история «Тостера» на этом не закончилась. Больше того, она получила неожиданное продолжение.

Тостер. Реинкарнация
Читать полностью »

image

Введение

Привет, привет! Ну что же, пришло время заключительной части, в которой я приведу пример несложных тестов, написанных с применением врапперов из предыдущих частей статьи. Как и обещал, открываю публичный доступ к работающей версии фреймфорка (см. ссылки).Читать полностью »

WebPages

Введение

Приветствую всех, кому предыдущие статьи оказались полезными или были просто интересны. В прошлой части мы разобрались с Selenium WebDriver, и теперь, перед тем, как приступать к написанию тестов, мы должны описать страницы тестируемого приложения. В превью перечислю основные моменты

  • Описания всех страниц будут находиться в отдельном проекте, я назвал его Autotests.WebPages
  • Для каждой страницы будет создан отдельный класс, располагающийся в отдельном файле
  • Названия классов будут совпадать с названиями web-страниц, например описание страницы MySite/Home/Help будет храниться в классе с названием Help
  • Структура расположения этих файлов иерархическая и будет повторять дерево web-страниц. Например, страница LogOn будет иметь путь RootHomeHelp.cs относительно проекта и располагаться в пространстве имен (namespace) Autotests.WebPages.Root.Home
  • Для доступа к страницам будет разработан некоторый фасад (Facade), статический класс Pages
  • На практике страницы могут иметь много общего, поэтому вполне логично использовать наследование и вынесение некоторого функционала в отдельные хелперы

Читать полностью »

Вступление

Selenium + C#
Снова здравствуйте! Представляю вам вторую часть статьи на тему автоматизированного тестирование веб-приложения на Selenium и C#. И если первая часть была из разряда «капитан очевидность», что вызвало негодование у читателей, то в этой части будет много кода. И так, зачем же писать обертку (wrapper) над Selenium API? На мой взгляд, пользователи могут столкнуться со следующими проблемами:

  • Интерфейс IWebDriver предоставляет довольно скудную функциональность в плане управления браузером. Поэтому все, что нам понадобится, придется писать самим
  • Описание элемента происходит одновременно с его поиском, т.е. на момент определения элемента он должен существовать в браузере. Очень часто решается путем написания getter для каждого элемента. Это накладно и плохо с точки зрения производительности
  • ISearchContext.FindElements принимает только один параметр типа OpenQA.Selenium.By, т.е. мы не можем искать сразу по нескольким свойствам. Обычно элемент ищется по первому критерию, а затем начинается отсеивание по остальным
  • Отсутствие многих, казалось бы, очевидных методов и свойств. Например: Exist, SetText, Select, SetCheck, InnerHtml и т.д. Вместо этого мы вынуждены довольствоваться Click, SendKeys и Text
  • Множество проблем на различных браузерах, например на Firefox и Chrome элемент кликается, а на IE — нет. Приходится писать special cases, «костыли»
  • Производительность. Да, драйвера работают не быстро. Впереди планеты всей как обычно IE — поиск может занимать секунды, иногда и десятки секунд

Читать полностью »

Введение

Читать полностью »

Доброго дня!

Сегодня у вас есть уникальная возможность задать свои вопросы нашему главному вирусному аналитику. Александр Гостев является экспертом по самому широкому ряду вопросов информационной безопасности: глобальные угрозы, тренды и прогнозы, кибершпионаж, масштабные вирусные атаки, мобильные зловреды. Так что можете не ограничивать свою фантазию. Но мы, в общем-то, не думаем, что вас нужно лишний раз подталкивать задавать смелые вопросы!

В течение недели мы будем принимать отборные остроты и ценные изыскания, после чего Александр со своего дивана ответит на все актуальные вопросы в отдельном посте. Поехали!

imageЧитать полностью »

Help Me!

Мне очень не хватает возможности опубликовать вопрос в блоге «Q&A».
Из-за пары неосторожных действий, моя Карма теперь вот уже третью неделю ниже нуля.
Recovery Mode не спасает.

Дисклеймер

Я даю себе полный отчет, в том, что публикация любого топика на Хабре, содержащего слово «Карма» способна сильно уменьшить эту самую Карму автору. Но, принципиальной (ощутимой) разницы между Кармой в минус 2 и в минус 30 (включительно) я не вижу.
Единственное отличие — в потенциальной частоте комментариев:
— комментировать без ограничения «1 комментарий в 5 минут» — карма от -1 до -10.
— комментировать без ограничения «1 комментарий в час» — карма от -11 до -30.
Вообще, же, Карма слитая по-самое-не-хочу — это такая мелочь по сравнением с Read-Only (которое я однажды получил на целых полтора года за один лишь, не совсем удачный вопрос в блоге «Q&A»), что вынудило меня заводить себе этот новый «полноценный» профиль.
Этот топик я написал, чтобы решить одну маленькую проблемочку, в надежде на то, что найдется хотя бы один добрый читатель с положительной кармой.

Чего я хочу добиться?

Ошибочно мнение, что пользователь с отрицательной кармой — плохой человек.
И если раньше пользователям с отрицательной кармой на сайте было довольно тяжело даже после осознания ошибки, то сейчас с появлением

Recovery Mode

Recovery mode
У пользователей с отрицательной кармой (до -30 включительно) есть шанс вернуться в ряды захабренных — раз в неделю есть возможность написать пост или перевод в любой профильный хаб.
У таких постов будет пометка «Recovery Mode» — если повезёт, то сообщество оценит старания и вытащит пользователя из кармаямы.
И, соответственно, относиться к ним с таким же пониманием, как и к постам «новичков» из «песочницы».

у них есть возможность наверстать упущенное.

Использовать же Reset с кармой в -2 было бы довольно глупо, да и этот «крайний» способ обнуления Кармы (поскольку воспользоваться этой опцией можно только один раз за всё время регистрации на Хабре) не решил бы проблемы, поскольку, для публикации вопроса в Q&A нужен как минимум +1 в Карме.
Конечно же, можно попытаться пописать восхитительные комментарии и ответы в Q&A, но это вряд ли поможет оперативно выйти из даже из совсем небольшого минуса.

В принципе, меня вполне устроила бы возможность публиковать из-под Recovery Mode не чаще того же одного раза в неделю, но, не только, поста-топика, а, еще и вопроса (причем не топика-вопроса с возможностью голосования, а именно, простого вопроса в блоге Q&A).Читать полностью »

Несколько месяцев назад я запустил серию скринкастов которая называлась «Научись программировать на Руби». За это время я успел записать порядка 35 выпусков и продолжаю это делать. Но на Руби мир клином не сошелся, так ведь? Есть огромное количество других интересных тем, которые можно осветить в скринкастах.

Представляю вам hasBrains — проект на котором усилиями нескольких авторов готовятся скринкасты по различным темам. В частности, сегодня у нас уже открыты разделы по разработке на Android (ведущий Евгений Наку) и проектированию в Autocad (ведущий Антон Виноградов). Ну и конечно скринкасты по Ruby никуда не делись (завтра новый выпуск, кстати!) В ближайшее время мы рассчитываем открыть новые разделы.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js