Pull to refresh
39
0
Alexey Galygin @MiF

User

Send message

Вероятностное Unit-тестирование. (Chaos driven Unit Testing.)

Reading time4 min
Views3.4K
Все более-менее сложные программные системы содержат ошибки (если и не собственные, то наведённые используемыми библиотеками или по причине неточного осознания поведенческих парадигм используемых фреймворков).
Часто, для тестирования системы на этапе разработки используются Unit-тесты.

Так программист может контролировать поведение системы на контрольных точках и пограничных значениях.
Часто именно неверная отработка пограничных значений приводит к проблемам. И опытные программисты это знают и учитывают при проектировании Unit-тестов.

Удобство Unit-тестов ещё и в том, что изменяя код вы ожидаете получить предсказуемые результаты и провести полностью автоматическое тестирование по имеющимся сценариям, чтобы быстро выявить наведённые изменениями неприятности.

Например, вы пишите код для работы на Intel и PPC, разрабатываете его на Intel, но учитываете порядок байтов. Потом прогоняете свои Unit-тесты, чтобы сравнить выходные данные с эталоном и обнаруживаете расхождения — понятно, где-то забыли байты перевернуть — исправляете — всё в порядке.

Однако, любой пользователь всегда несёт в себе элемент случайности.

Опытный программист сочетает в себе талант качественного тестировщика и может отловить много ошибок до выхода программы в свет.

Если программа делает больше чем печать «Hello World!», то скрытые ошибки в любом случае остаются.
Это могут быть ошибки и в логике в том числе.

Программа компилируется, все Warning'и устранены… но иногда что-то идёт не так… у пользователя (который живёт далеко в домике на островке в тихом океане — приехать к нему и пощупать нет возможности). Программист прокликал и протестировал со своей стороны всё что мог, но ошибки не нашёл. Что же делать?
Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments18

Лень и одноразовые пароли Yandex.Деньги

Reading time2 min
Views699
Несколько месяцев назад на Yandex.Деньгах ввели дополнительный альтернативный метод защты.
Вместо платёжного пароля предлагается использовать либо одноразовый блокнот в виде картинки, либо eToken.

Сначала eToken'ы не выдавали простым смертным, а вместо этого, простым пользователям предлагаются чудо картинки с кодами.
Сейчас же eToken продаётся за не очень малые деньги… но для меня он не привлекателен по следующим причинам:

  • Когда сядут батарейки нужно снова заморачиваться с «любимой» почтой РФ
  • Его нужно носить с собой в сумке, чтобы он был на готове
  • К сумке нужно тащить свою пятую точку каждый раз, чтобы достать его и ещё раз, чтобы убрать обратно


Поэтому для себя я выбрал «одноразовые картинки» и пока отдаю предпочтение этому способу защиты.
Предполагается, что картинка будет распечатана на принтере… и её нужно таскать с собой… снова в сумке (см. выше).
А если нет принтера?.. Таскать картинку с собой?
Не айс.
Чтобы не поднимать свою пятую точку со стула, не отрываться от компьютера, и сохранить намёк на безопасность, было придумано следующее решение.

Нам понадобится Terminal, Git-репозиторий и пара Perl-скриптов (тестировались на Mac OS X, но должны работать на любом *NIX).

Читать дальше →
Total votes 8: ↑3 and ↓5-2
Comments12

Шифрование важных файлов в Git

Reading time2 min
Views3.9K
Допустим мы храним данные на некотором удалённом сервере в Bare-репозитории.
Если есть сомнения в честности обслуживающего сервер персонала, или мы опасаемся, что кто-то сопрёт наш проект, можно зашифровать избранные секретные файлы, представляющие особо секретные технологии фирмы и тем самым затруднить клонирование проекта.

Я не буду обсуждать согласование описываемого ниже метода с политикой и лицензионным соглашением бесплатных Git-репозиториев (а ля GitHub) — это дело частностей и вашей совести.

В реализации мы всопользуемся .gitattributes, staging, filters (фильтрами) и главой 7.2 Pro Git Book.

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments26

Заметки о внутреннем софте Apple, который никто не видел

Reading time4 min
Views2.7K
Так получилось, что вчера, роясь в дебрях BSD части Darwin-ядра и в VFS, я снова наткнулся на ссылку вида rdar…

Для тех кто не в курсе: у Apple есть публичный трекер багов (http://bugreport.apple.com, альтернативный вход по имени radar.apple.com). Но публичный он только на отправку и созерцание своих же постов (и статусов их разрешения), которые частенько оказываются дубликатами.
Читать напрямую описания всех проблем и их решения могут только сами разработчики Apple или очень крутые внешние организации.

Как правило в Интернете никто и не слышал как получить доступ к базе ошибок radar на произвольное чтение и вообще мало кто знает, что из себя представляет эта система.

Более того, Apple не выгодно давать доступ к этой базе хотя бы по следующим причинам:

  • Некоторая информация может повредить репутации системы и дать пищу для хакеров при написании эксплоита, на момент пока уязвимость не устранена
  • Решения технических инцидентов в обход ошибк Apple продаёт разработчикам за деньги


Эта заметка не даст вам доступ к базе radar, но укажет в каком направлении можно идти и какие инструменты есть у Apple на данный момент — волшебные инструменты, которыми компания не делится даже с платными членами ADC (Apple Developer Connection).

Существует альтернатива сервису radar: openradar.appspot.com (правда к Apple она отношения не имеет).
И маловероятно, что в нём вы найдёте необходимые описания проблем из Apple Radar.

Наша компания состоит в ADC, в том числе по платной подписке, но этот рассказ не нарушает никакие NDA, поскольку основан на информации доступной (на текущий момент — начало июня 2010) без логинов и паролей, простому Интернет пользователю.

По иронии судьбы, на текущий момент, доступ на FTP Apple открыт для анонимного пользователя!

Читать дальше →
Total votes 136: ↑124 and ↓12+112
Comments72

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity