А насколько тестировщику хорошо надо уметь работать с Базами Данных (SQL, MySQL, )?
Коллеги, поделитесь пожалуйста вашим опытом работы с Базами Данных, когда вы тестируете своё ПО ?
Из моего опыта ручного black box тестирования:
1) сделать бэкап
2) организовать репликацию
3) простой селект, вложенный(более одного вложения уже и не помню когда было) селект
4) запустить написанный программистом sql скрипт, проверить что на новой версии он не падает
К чему вопрос: если я не ошибаюсь, то тестировщикам глубоких и профессиональных знаний в БД не надо. Фактически, даже если тестировщик никогда не сталкивался с запросами в БД - обучить его знаниям, достаточных для тестирования это дело пары дней.
Нет? Если нет, то что надо знать тестировщику, который тестирует ПО с БД? Часто Вы пользуетесь этими знаниями?
В целом, вы правы - начинающему тестировщику ни к чему умение работать с планами выполнения запросов, тонко настраивать SQL-запросы. Но если этот тестировщик хочет стать гуру в своей профессии, он со временем должен знать очень хорошо те СУБД , с которыми работает тестируемое им приложение. Без особых знаний порой просто невозможно диагностировать, моделировать некоторые неполадки.
ОтветитьУдалитьХорошо дожен знать, это да. Но это не значит что SQL должен хорошо знать.
ОтветитьУдалитьWill - что Вы подразумеваете под "особыми" знаниями? Пример?
Добавил бы еще владение такими запросами как UPDATE, DELETE и INSERT INTO... При этом скажу, что необходимо понимать всю ответственность при их использвоании, т.к. нарушить связи и сломать что-то очень легко, а вот восстановить будет уже "аЦЦки" сложно. Поэтому необходимо еще уметь разбираться со струтурой БД, ключами, идексами и т.д.
ОтветитьУдалитьСмотря какие задачи стоят перед тестировщиком.
ОтветитьУдалитьЕстественно, как минимум, общая конфигурация БД, хотя бы уровня - где установить на какой диск писать базу.
Можно представить себе задачу: протестировать целостность данных при операции: ETL (extract- transform-load).
Всякие кластерные и некластерные индексы, вьюхи. Статистика. Здесь и SQL нужно, и знание того - что это вообще :)
по знанию SQL, например:
Даже если эти задачи выполняет программист, проверять же их надо:)
Подготовка к тестированию производительности запросов (часть I) http://viacode.blogspot.com/2011/04/i.html
Чувство уверенности при оптимизации запросов (часть I)
http://viacode.blogspot.com/2011/04/i_18.html
Вот какому проценту тестировщиков это надо - уже вопрос-вопросов :)
Вообще для начала знания SQL (неплохого начала, на мой взгляд), достаточно будет знаний из подобного документа:
ОтветитьУдалитьhttp://xml.nsu.ru/pdf/sql.pdf
30 страниц. Основные команды. Для остального есть MSDN :)
Сергей,
ОтветитьУдалить1) Общая конфигурация - согласен, постоянно надо переставлять и настраивать для перетеста
2) Целостность данных - согласен частично. Для серьезной работы наверное должен быть отдельный специально обученный человек, типа СУБД разработчик, который результат своей работы сможет поделить на более-менее небольшие таски для QC.
3) Индексы, Вьюхи, статистика - согласен
4-5) Аналогично пункту 2. Только в случае когда работа для QC подготовлена профи по БД. Т.е. если мне дают две БД и скрипт который грузит. Моя работа - действительно удостовериться что скрипт на базе после оптимизации отработал быстрее.
Про вопрос-вопросов - наверное тем у кого продукт это БД ) - с этим тогда согласен. Но наврятли человек все это настолько хорошо знающий будет именоваться тестировщиком. Скорее БД администратором или SQL разработчиком каким-нить
Алексей, - гуру и в точку! "Необходимо понимать всю ответственность"
ОтветитьУдалить>Will - что Вы подразумеваете под "особыми" знаниями? Пример?
ОтветитьУдалитьПожалуйста, вот пример для Oracle:
Ну, например, построить план запроса, проанализировать его, уметь применять хинты для оптимизатора, знать какие бывают блокировки транзакций, почему они возникают, в каких системных таблицах смотреть информацию о них, чем отличаются prepared statements от запросов без использования bind-переменных, что такое партиционирование, как увеличить или уменьшить разрешенное максимальное число коннектов к БД (например, для того, чтобы смоделировать ситуацию нехватки этих коннектов), знать для чего нужна и как работает та или иная аналитическая функция (без этого порой просто невозможно понять, что делает запрос и как он работает) и т.д. и т.п.... Все это не нужно начинающему тестировщику и такие вопросы не стоит задавать ему на собеседовании. Но для начала он должен знать что SQL - это язык, а MySQL - это СУБД :)
Мое мнение, для начинающего тестировщика обязательно базовое знание ANSI SQL - то есть того SQL , которые обязаны поддерживать все реляционные Субд. "Базовость" определяйте сами, исходя из тех задач, которые тестировщику предстоит решать и своего собственного разумения.
Я боюсь в софте который я тестирую не знать SQL было бы преступлением. Так что как и большая часть знаний это все сильно упирается в специфику продукта/конторки.
ОтветитьУдалитьА сферическому тестировщику в вакууме вообще ничего знать не надо кроме теории.
Не выпадайте из контекста, Феликс. Тестирование без контекста это зачастую ерунда та еще.
Да, судя по ответам, моё предположение слишком преувелиино =)
ОтветитьУдалитьНе совсем. Просто ПО с БД это очень много ПО. Началь можно со свякой фигни с прикрученным SQLite или магазином в интернетике которы тысячи и потом перейти уже ко всяким софтинам для работы с olap кубами анализа и прочей радости жизни. Все работает с БД вроде. А знаний сильно разно надо.
ОтветитьУдалитьВспоминая свой опыт - в первой конторе, где я работал тестировщиком первоначально мне было достаточно знания простых и средней сложности запросов к СУБД на стандартном SQL. Пришел уже подготовленным - пока учился в институте этот навык более менее прокачался... Так что насколько сложно тому, кто изначально в принципе не знает ни SQL ни принципов реляционных СУБД, судить лично мне сложно.
ОтветитьУдалитьНо перед глазами уже не раз были примеры, когда толковые ребята-стажеры принимались без знаний SQL и СУБД и через практику выполнения black-box задач, а также путем самообразования довольно быстро осваивали базовый уровень. Нет там ничего сверхестественного. "Особые" знания, о которых говорилось выше, нужны далеко не всем.
Согласен что требования к знанию SQL зависят от контекста. Кстати знания SQL могут быть необходимы не непосредственно для самого тестирования (тестирования базы, коннекшена), а для получения информации о внутренней структуре приложения, чтобы использовать эту информацию в других видах тестирования.
ОтветитьУдалить