Показаны сообщения с ярлыком experience. Показать все сообщения
Показаны сообщения с ярлыком experience. Показать все сообщения

суббота, 30 января 2010 г.

Конвертация базы данных MySQL из одной кодировки в другую

Начальным условием является наличие базы MySQL в кодировке latin1 данные из которой криво отображаются при просмотре, такая ситуация, например, возникает при установке Mantis. Кодировка как правило обнаруживается не сразу, но т.к. в базе данных уже есть данные, то выход один - конвертировать. Базу требуется переконвертировать в UTF8 дабы решить вопрос с отображением.
  • Создаём бэкап вашей базы выполняя команду: mysqldump -uUSER -Pport -hHOST -pPASSWORD > dump_name.sql
  • Открываем, в моём случае Microsoft Office Word 2003
  • Открываем в Word'е дамп базы, т.е. dump_name.sql
  • Word предлгает выполнить преобразование открываемого файла из формата «Кодированный текст»
  • По умолчанию Word предлагает выбрать кодировку Другая -> UTF8. Как правило дамп базы создаётся в кодировке UTF8 в независимости от кодировки данных.
  • Соглашаемся
  • Документ открылся и мы видим «кракозябру» в тех местах где должны быть кириллические символы
  • Переходим в пункт меню Сервис и далее Исправить повреждённый текст...
  • В исправленном тексте заменяем все «latin1» на UTF8
  • Сохраняем исправленный документ
  • Создаём базу выполнив скрипт: CREATE DATABASE `bd_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
  • Заливаем наш исправленный дамп в базу выполнением команды: mysql -uUSER -Pport -hHOST -pPASSWORD bd_name < dump_name.sql
Наслаждаемся!

В случае если вам требовалось конвертировать базу из latin1 в cp1251, то соответственно необходимо выполнять шаги с заменой UTF8 на ср1251.

пятница, 22 января 2010 г.

На что стоит обращать внимание при тестировании web-риложений

1. Проверка работы элементов
В первую очередь стоит обратить внимание на ссылки. Суть проверки заключается в том, чтобы пройтись по всем ссылкам и проверить целевые страницы, например, соответствует ли заголовок целевой страницы тексту ссылки, по которой вы на эту страницу попали. Также стоит помнить, что подобная проверка сайта поможет выявить ссылки, которые «никуда» не ведут.

Во вторую, очередь, нужно провести даже более важную проверку – это проверку пунктов меню, если они реализованы в виде картинок, то стоит обратить внимание все ли картинки есть на сервере, все ли тексты на картинках написаны, верно, корректно. Опять же не стоит забывать и про проверку ссылок, т.е. проверку, куда ведут пункты меню и проверку целевых страниц пунктов меню.
Проверка форм ввода. Доступны ли для заполнения, ограничены ли они, если после submit’а формы пользователь попадает на страницу просмотра введённых данных, то требуется проверить корректность передачи данных из форм, если же страницы просмотра нет, то проверить корректность передачи указанных данных можно заглянув в базу данных сайта, если таковая имеется. В качестве бонуса, можно проверить такой момент как автозаполнение форм.

2. Разграничение прав
Если сайт подразумевает работу нескольких видов (типов) пользователей, например, меломан и музыкант, или продавец и покупатель, или ещё большее кол-во видов пользователей, то необходима проверка разграничения прав доступа к тем или иным функциям. Суть подобной проверки заключается в том, чтобы проверить, что, например, покупателю не доступны функции продавца.

3. Кросс-браузерности
Проверка кросс-браузерности сайта немаловажный пункт, хотя не стоит забывать и о целевой аудитории сайта, которая, по сути, и определяет наличие и глубину проверок.

4. Система администрирования
Система администрирования – это по большей части наполнение контентом. Следовательно, попробуйте создать новые разделы, переименовать существующие, изменить уровень вложенности раздела, добавить текст, отредактировать текст, добавить картинку, проставить гиперссылку и так далее. Если же система включает в себя набор функций отвечающих например за назначений прав, то соответственно нужно проверять и этот функционал.

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

6. Реализация функционала
Не смотря на то, что уже была проверка разграничения прав и функционал проверялся, всё равно самым главным пунктом тестирования сайта является проверка функционала в принципе, в независимости от прав, т.е. проверка именно работы функций. Также само собой вы проверить то, что тот или иной функционал в принципе реализован.

среда, 20 января 2010 г.

Тестирование кросс-браузерности web-приложений

Итак, можете меня поздравить, впервые моя статья вышла в свет и не куда-нибудь, а на крупнейший портал о тестировании software-testing.ru.


Теория
Википедия:
«Кросс-браузерность — свойство сайта отображаться и работать во всех популярных браузерах идентично. Под идентичностью понимается отсутствие развалов верстки и способность отображать материал с одинаковой степенью читабельности. Понятие «кросс-браузерность» очень часто путают с попиксельным соответствием, что на самом деле является разными понятиями.»
Тестирование кросс-браузерности как сущность является подвидом конфигурационного тестирования. Переведя термин на русский язык, мы увидим громоздкое словосочетание «перекрёстное тестирование под разными браузерами». В действительности же, термин тестирование кросс-браузерности подразумевает не только проверку под разными браузерами, но об этом чуть позже…


Если же говорить о написании, то зачастую используют термин кросс-браузерность в виде кроссбраузерность, но с точки зрения русского языка это не правильно, т.к. правила написания существительных через дефис русского языка гласят:
«§ 79. Пишутся через дефис:
13. Слова, первой составной частью которых являются иноязычные элементы обер-, унтер-, лейб-, штаб-, вице-, экс-, например: обер-мастер, унтер-офицер, лейб-медик, штаб-квартира, вице-президент, экс-чемпион.»
т.к. по-русски этот подвид тестирования должен называться «перекрёстное тестирование под разными браузерами», то делаем вывод, что составная часть «кросс» иноязычная, а следовательно термин кросс-браузерность пишется по правилам русского языка через дефис.

Предыстория
Начинающие веб-программисты рано или поздно сталкиваются с тем, что их скрипт, любовно написанный и прекрасно работающий на домашнем компьютере с MSIE, почему-то не работает у соседа или клиента на его Opera, Mozilla, FF или Netscape.

Давайте разбираться. Введение всё более новых стандартов и следование им разработчиков браузеров позволяет добиться высокой степени совместимости, но, несмотря на совершенствование стандартов в области сайтостроения не все браузеры работают с этими стандартами одинаково. Это происходит не столько из-за багов и глюков браузера, сколько из-за того, что разработчики не успевают за совершенствованием стандартов или же попросту пренебрегают ими. Плюс ко всему современные браузеры имеют набор фич, которые тоже накладывают отпечаток на обработку HTML/CSS кода. Также не стоит и забывать о том, что старые браузеры совсем ничего не знают о новых стандартах, следовательно, в большинстве случаев обрабатывают нововведения некорректно.

Зачем?
По данным W3Counter от 1 до 22% пользователей используют 10 браузеров отличающихся как разработчиками, так и версиями. 
Каждый из них имеет свои особенности в обработке HTML/CSS кода, да и к тому же не все из наиболее часто используемых браузеров имеют последнюю версию соответствующую последним стандартам. Также не стоит забывать и о том, что сайты по-разному ведут себя при работе под разными разрешениями экрана, а таковых выделяется как минимум 5 наиболее популярных по данным того же W3Counter.
Исходя из всего вышесказанного, создавая сайт, разработчик должен учесть все факторы и сотворить нечто универсальное. Вы спросите: «Зачем же здесь тестирование кросс-браузерности?!», а я вам отвечу: «Неужели вы всерьёз думаете, что разработчик будет устанавливать хотя бы 5 браузеров и под каждым просматривать работу своего творения?!». В общем, тестирование кросс-браузерности необходимо для того же, для чего необходимы любые другие виды тестирования, т.е. для обеспечения качества.

Почему?
Из истории:

В такой ситуации Netscape Navigator сначала рисовал background, а потом всё закрашивал чёрным цветом. Именно поэтому сначала указывали bgcolor, а потом backgorund. Остальные же браузеры, как и сейчас сначала обрабатывают bgcolor, потом background.

Жизнь:
«У меня есть форма с текстовым полем ввода Input вида:
< inрut style="background:url(12.jpg); float:left; border:0; width: 100%; height: 26px; text-align:center; font-family:'Times New Roman'; font-size:18px; vertical-align:middle" name="username" id="login" type="text" class="inputbox" alt="username" size="10" /> В Opera и FF всё работает нормально, текст в любых количествах вводится без проблем, фон стоит на месте. В IE при вводе текста, выходящего за ширину поля Input фон начинается двигаться вместе с текстом. Если поставить background-attachment:fixed – в IE начинает всё работать нормально, а в Opera и FF фон фиксируется и при прокрутке скролинга в браузере - стоит на месте.»

«Сделайте «хак» для IE через CSS: < inрut style="*background-attachment: fixed; ..." .... Свойство со звёздочкой «*» вначале поймут лишь IE, если нужно только для IE6 и ниже, то можно применить _background-attachment: fixed;»
Теория:
В разных браузерах по-разному вызываются такие свойства, как размеры окна, размеры документа, показатели прокрутки и т.д.

Размеры рабочей области окна
  • MSIE — document.body.clientWidth, clientHeight
  • Netscape, Mozilla, Opera — innerWidth, innerHeight
Координаты верхнего левого угла рабочей области окна
  • MSIE, Opera 7 — screenLeft, screenTop
  • Netscape, Mozilla, Opera 5, 6 — screenX, screenY
Размеры содержимого документ
  • MSIE, Opera 7 — document.body.scrollWidth, scrollHeight
  • Netscape, Mozilla — document.width, height
  • Opera 5, 6 — document.body.style.pixelWidth, pixelHeight
Прокрутка (scrolling)
  • MSIE, Opera 7 — document.body.scrollLeft, scrollTop
  • Netscape, Mozilla, Opera 5, 6 — pageXOffset, pageYOffset
В MSIE в документе должен присутствовать тег , иначе document.body может быть не определено.

Размеры шрифтов не одинаковы в различных системах, а некоторые шрифты могут просто отсутствовать на компьютере пользователя, именно поэтому Firefox в Linux отображает сайты не так, как Firefox в Windows.

Пример:
Главная страница багтрекера в IE 1.5 (0.1.0.10)
Главная страница багтрекера в IE 8.0 (8.00.6001.18702)

Как?
Основные моменты, на которые нужно сделать упор при тестировании кросс-браузерности:
  • Тестирование в различных браузерах (семейство Mozilla, Internet Explorer, Opera, Safari, мобильные браузеры);
  • Тестирование при различных разрешениях экрана (обычно 640×480, 800×600, 1024×768, 1280×800);
  • Тестирование в различных операционных системах (Mac OS, Linux, Win).
Хочу отметить, что набор браузеров, разрешений и операционных систем при проведении тестирования зависит от целевой аудитории системы. Также не стоит забывать и о том, что у большинства пользователей Интернета установлены последние или предпоследние версии браузеров и операционных систем.

Эффект от внесенных в разметку сайта изменений можно увидеть сразу же несмотря на то, что на вашем компьютере нет множества браузеров, а вот протестировать на одном или двух браузерах всё же не получится. Кроме того, что вы можете просто установить несколько браузеров, существуют веб-сервисы, которые либо предоставляют удаленный доступ к браузеру через VPN либо позволяют просмотреть скриншоты отображения сайта.

Инструментарий
Проблема:
Основной проблемой при тестировании кросс-браузерности является проблема наличия на тестовом стенде множества браузеров и их версий, а также нескольких операционных систем. Конечно, же, в общем случае при тестирование не стоит учитывать, например Netscape или наиболее распространённые браузеры старых версий. Т.е. по сути, для тестирования достаточно FF, IE, Opera, Chrome и Safari последних 2-3 версий. Но всё же сложности возникают, например в Windows предусмотрена возможность установки только одной версии Internet Explorer, а в MacOS только одной версии Safari.

Решение:
Самым полезным, стабильным и в какой-то мере производительным решением по моему скромному мнению является использование виртуальных машин, хотя конечно, это проблематично при первоначальной развёртке. Зато, имея несколько развёрнутых виртуальных машин, Вы приобретаете гибкость и возможность тестировать кросс-платформенность, кросс-браузерность, а также без проблем изменять разрешения экрана. На сегодняшний день, лидерами в сфере производства средств виртуализации являются компании VMware, Microsoft, SWSoft (вместе с принадлежащей ей компанией Parallels), XenSource, Virtual Iron и InnoTek. Помимо продуктов этих вендоров присутствуют также такие разработки как QEMU, Bosch и прочие, а также средства виртуализации разработчиков операционных систем (например, Solaris Containers), которые не получили широкого распространения и используются узким кругом специалистов. В случае с Linux можно использовать Live Linux CD, который, как правило включают в себя Konqueror и Firefox, но это вариант, как правило, означает медленную работу, что не всегда допустимо. Минусом виртуальных машин по-прежнему остаётся «в Windows предусмотрена возможность установки только одной версии Internet Explorer, а в MacOS только одной версии Safari».

Решить проблему с IE и Safari можно с помощью специальных программ, несущих в себе или позволяющих установить сразу несколько версий вышеуказанных браузеров. С IE поможет справиться программа Multiple IEs от TredoSoft. В установке программа очень проста, достаточно следовать инструкциям, а в результате вы получаете IE3, IE4.01, IE5, IE5.5, IE6 абсолютно не зависящие друг от друга, причем установочный файл занимает всего 10Mb. Обратите внимание, что браузеры установленные таким образом работают не очень устойчиво и иногда падают без видимых причин, но, несмотря на это, свои задачи пакет выполняет в полном объеме. Программа конечно не панацея, ибо уже есть и IE6, и IE8, но всё же. К числу программ частично решающих проблему с IE можно отнести IEs 4 Linux и IE Tester. Проблему же с Safari призвана помочь решить программа Multi-Safari позволяет установить более 10 версий Safari, начиная от 1.0 и до 3.2.1. Честно говоря, это программа мной не опробована и поэтому советовать и описывать я её не буду.

Конечно, полное представление об отображении сайта в различных браузерах можно получить, только установив их на свой компьютер, но если нужно быстро и просто проверить все ли в порядке, то онлайновые сервисы могут быть весьма полезны. Ассортимент сервисов достаточно широк, одни просто делают скришоты вашего сайта, другие же дают удалённый доступ к разным операционным системам с установленными браузерами через VNC клиент. К сожалению многие из таких сервисов платные. Вот небольшой список онлайн сервисов:

Немного статистики
http://www.w3counter.com/globalstats.php
http://www.artlebedev.ru/tools/browsers

Источники
http://designformasters.info/posts/browser-compatibility-testing
http://xpoint.ru/know-how/Articles/KrossbrauzernyiyDHTML
http://ru.wikipedia.org/wiki/Сравнение_виртуальных_машин
http://ru.wikipedia.org/wiki/Webkit
http://ru.wikipedia.org/wiki/Microsoft_Virtual_PC
http://www.vmgu.ru
http://www.vmgu.ru + http://www.vmgu.ru/articles/Besplatnie-servernie-platformi-virtualizatsii
http://michelf.com/projects/multi-safari
http://tredosoft.com/Multiple_IE
http://ipinfo.info/html/rendering_services.php
http://www.netmechanic.com/products/browser-index.shtml

пятница, 8 января 2010 г.

Что-то о тестировании web-приложений

Итак для того, чтобы провести тестирование веб необходимо обращать внимание на следующие общие моменты:
  • Единство дизайна или вёрстка
  • Навигиция
  • Функциональность
  • Совместимость с броузером
  • Совместимость с OS
  • "Дружественность"
  • "Работоспособность"
Остановимся на каждом из пунктов подробнее.

Единство дизайна.
Под единством дизайна мы понимаем не только, а точнее не столько сочетаемость цвета элементов (так как это удел дизайнера), сколько соблюдение выбранной цветовой гаммы, придающей всем страницам сайта "единство". Сюда входят цвета фона (или рисунок), ссылок (в т.ч. посещенной и активной), а также любых других элементов, расположенных на странице. Кроме того, на этом же этапе мы предлагаем оценивать размер и вид используемого шрифта для различных уровней вложения текста (заголовки различных уровне, собственно текст, ссылки, примечания и т.п.) Здесь же имеет смысл оценивать совместимость с дизайном звуков, рисунков и анимации, а также проверить имеет ли место единство отображения при использовании других экранных расширений и глубин цвета.

Навигация.
Навигация предполагает тестирование перемещения по сайту, что дает представление о возможности любого пользователя легко найти необходимый раздел, не зависимо от способа реализации меню (текстовые ссылки, картинки, единая картинка с картой ссылок и др.). На этом же этапе оценивается логичность перемещения между формами, кнопками и другими элементами страницы при помощи TAB, курсорных клавиш и т.п.

Функциональность.
Общие подходы к тестированию функциональности веб-страниц аналогичны таковым при тестировании приложений. Ниже приведен примерный перечень основной функциональности веб-страниц:
  • Ссылки (работоспособность, открытие в том же или новом окне и т.п.)
  • Формы (ввод текста, чисел, использование маски, работа с незаполненными полями, длина вводимых символов, коректная работа чекбоксов, комбобоксов, radio buttons, логичность установок "по умолчанию" и т.д.).
  • Базы данных (поиск, добавление информации, редактирование, удаление, проверка на дублирование информации).
  • Секретность (работа с паролями, передача данных, защита и т.д.)
  • Кеширование (проверка на установку кеширования и обновления файлов)
  • Проверка работы с броузером (refresh, forward/back, изменение размеров окна, выбор кодировки, скроллинг)
  • Фреймы (загрузка страниц, скроллинг и т.п.)
  • Анимация (наличие, изменение размеров, загрузка и т.д.)
  • Аудио и видео (наличие, размещение, качество и др.)
  • ActiveX
  • Печать (корректно ли печатаются страницы).

Совместимость с броузером.
Общеизвестно, что в силу конкуренции, тот или иной броузер имеет нередко даже существенные отличия в отображении одной и той же страницы. Для того, чтобы убедится, что любой пользователь сможет получить всю необходимую информацию требуется проводить тестирование Web-страниц в различных броузерах. Кроме того имеются различия и в разных версиях одного и того же броузера. Это также необходимо учитывать при тестировании.

Совместимость с OS.
Различные операционные системы так же могут влиять на отображение тех или иных страниц сайта. Это диктует необходимость проводить тестирование в различных операционных системах, равно как и в различных их версиях и обновлениях.

"Дружественность".
Под "дружественностью" мы понимаем то, насколько прост, легок в обращении и интуитивно понятен интерфейс сайта: легка ли навигация, доступно ли меню, не используются ли раздражающие пользователя приемы, не много ли всплывающих окон, все ли ссылки являются "рабочими", все ли необходимые данные доступны для пользователя и т.д. Например, если на сайте есть файл для скачивания, то желательно, чтобы пользователь имел возможность заранее знать его размер, мог оценить время закачки. Ни в коме случае не стоит путать "дружественность" с юзабилити.

"Работоспособность".
Проверка на "работоспособность" подразумевает оценку скорости загрузки как страниц сайта в целом, так и каждого элемента в отдельности. Сюда включается оценка размера используемых рисунков, html-файлов, аудио и видео файлов, адаптация их к различным типам соединений (от обычного модемного dial-up соединения, начиная с 14400, до высокоскоростных технологий).

Данная статья является обзорной и отражает лишь наиболее общие положения и подходы в Web-тестировании. Бесспорно, в зависимости от целей, задач и направления сайта его тестирование может отходить от стандартов и правил. Несомненно одно - тестирование Web-сайтов очень важно, не зависимо от того является этот сайт коммерческим или же это всего лишь личная веб-страничка.

среда, 6 января 2010 г.

Полезные советы для самообучения

Контекст — это совокупность знаний о разрабатываемом проекте в определенный момент времени.
  • Всегда старайтесь изучить предметную область. Не копайте слишком глубоко, если этого не требуется для тестирования.
  • Только пробуя что-то на практике возможно научиться тестированию. Но основное тестирование происходит в голове, поэтому старайтесь больше читать и узнавать что-либо новое, что поможет вам думать.
  • Изучите текущий контекст, прежде чем что-то сделать. Например, перед тем как предоставить отчет о дефекте, поищите, может кто-то уже нашел его до вас.
  • Пытайтесь докопаться до сути проблемы самостоятельно, но тратьте на это разумное время. Иногда проще спросить знающих людей, не боясь показать, что у вас нет достаточного количества знаний. Заодно и узнаете что-то новое.
  • Всегда пишите в отчетах о дефекте, что по вашему является правильным или ожидаемым. Обосновывайте ваши требования. Приводите несколько возможных вариантов решения проблемы.
  • Обращайте внимание на любые проблемы, будь то тестируемый продукт, спецификации, тесты и инструменты тестирования или процесс.
  • Обсуждайте спорные вопросы со всеми заинтересованными людьми. Иногда так вопрос решить проще, чем если бы вы написали сомнительный дефект.
  • Не бойтесь новых областей знаний. Никогда не говорите, что вы не будете этого делать потому, что не делали раньше. Новый вид тестирования или новая область подлежащая тестированию должны стимулировать вас и подталкивать к новым достижениям.
  • Иногда абстрагируйтесь от контекста разработки, оставаясь при этом только в контексте разрабатываемого продукта. Попытайтесь быть просто пользователем. Если возможно, используйте продукт по назначению.
  • Если вы выполняете какой-то тест повторно, варьируйте свои действия. Единственное исключение — верификация дефектов.
  • Знание предметной области и особенностей реализации — отличная база для дизайна новых тестов.
  • Иногда вы можете ошибаться. Прислушивайтесь к доводам других людей. В любом случае, всегда есть возможность достичь компромисса.
  • Если вы не нашли ни одного дефекта в ходе тестирования – значит вы тестировали плохо.

Источник