16 мая 2011 г.

Насколько серьезно надо уметь работать с БД

А насколько тестировщику хорошо надо уметь работать с Базами Данных (SQL, MySQL, )?

Коллеги, поделитесь пожалуйста вашим опытом работы с Базами Данных, когда вы тестируете своё ПО ?

Из моего опыта ручного black box тестирования:
1) сделать бэкап
2) организовать репликацию
3) простой селект, вложенный(более одного вложения уже и не помню когда было) селект
4) запустить написанный программистом sql скрипт, проверить что на новой версии он не падает

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

Нет? Если нет, то что надо знать тестировщику, который тестирует ПО с БД? Часто Вы пользуетесь этими знаниями?

13 комментариев:

  1. В целом, вы правы - начинающему тестировщику ни к чему умение работать с планами выполнения запросов, тонко настраивать SQL-запросы. Но если этот тестировщик хочет стать гуру в своей профессии, он со временем должен знать очень хорошо те СУБД , с которыми работает тестируемое им приложение. Без особых знаний порой просто невозможно диагностировать, моделировать некоторые неполадки.

    ОтветитьУдалить
  2. Хорошо дожен знать, это да. Но это не значит что SQL должен хорошо знать.

    Will - что Вы подразумеваете под "особыми" знаниями? Пример?

    ОтветитьУдалить
  3. Добавил бы еще владение такими запросами как UPDATE, DELETE и INSERT INTO... При этом скажу, что необходимо понимать всю ответственность при их использвоании, т.к. нарушить связи и сломать что-то очень легко, а вот восстановить будет уже "аЦЦки" сложно. Поэтому необходимо еще уметь разбираться со струтурой БД, ключами, идексами и т.д.

    ОтветитьУдалить
  4. Смотря какие задачи стоят перед тестировщиком.

    Естественно, как минимум, общая конфигурация БД, хотя бы уровня - где установить на какой диск писать базу.

    Можно представить себе задачу: протестировать целостность данных при операции: 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

    Вот какому проценту тестировщиков это надо - уже вопрос-вопросов :)

    ОтветитьУдалить
  5. Вообще для начала знания SQL (неплохого начала, на мой взгляд), достаточно будет знаний из подобного документа:
    http://xml.nsu.ru/pdf/sql.pdf
    30 страниц. Основные команды. Для остального есть MSDN :)

    ОтветитьУдалить
  6. Сергей,
    1) Общая конфигурация - согласен, постоянно надо переставлять и настраивать для перетеста
    2) Целостность данных - согласен частично. Для серьезной работы наверное должен быть отдельный специально обученный человек, типа СУБД разработчик, который результат своей работы сможет поделить на более-менее небольшие таски для QC.
    3) Индексы, Вьюхи, статистика - согласен
    4-5) Аналогично пункту 2. Только в случае когда работа для QC подготовлена профи по БД. Т.е. если мне дают две БД и скрипт который грузит. Моя работа - действительно удостовериться что скрипт на базе после оптимизации отработал быстрее.

    Про вопрос-вопросов - наверное тем у кого продукт это БД ) - с этим тогда согласен. Но наврятли человек все это настолько хорошо знающий будет именоваться тестировщиком. Скорее БД администратором или SQL разработчиком каким-нить

    ОтветитьУдалить
  7. Алексей, - гуру и в точку! "Необходимо понимать всю ответственность"

    ОтветитьУдалить
  8. >Will - что Вы подразумеваете под "особыми" знаниями? Пример?

    Пожалуйста, вот пример для Oracle:

    Ну, например, построить план запроса, проанализировать его, уметь применять хинты для оптимизатора, знать какие бывают блокировки транзакций, почему они возникают, в каких системных таблицах смотреть информацию о них, чем отличаются prepared statements от запросов без использования bind-переменных, что такое партиционирование, как увеличить или уменьшить разрешенное максимальное число коннектов к БД (например, для того, чтобы смоделировать ситуацию нехватки этих коннектов), знать для чего нужна и как работает та или иная аналитическая функция (без этого порой просто невозможно понять, что делает запрос и как он работает) и т.д. и т.п.... Все это не нужно начинающему тестировщику и такие вопросы не стоит задавать ему на собеседовании. Но для начала он должен знать что SQL - это язык, а MySQL - это СУБД :)
    Мое мнение, для начинающего тестировщика обязательно базовое знание ANSI SQL - то есть того SQL , которые обязаны поддерживать все реляционные Субд. "Базовость" определяйте сами, исходя из тех задач, которые тестировщику предстоит решать и своего собственного разумения.

    ОтветитьУдалить
  9. Я боюсь в софте который я тестирую не знать SQL было бы преступлением. Так что как и большая часть знаний это все сильно упирается в специфику продукта/конторки.
    А сферическому тестировщику в вакууме вообще ничего знать не надо кроме теории.

    Не выпадайте из контекста, Феликс. Тестирование без контекста это зачастую ерунда та еще.

    ОтветитьУдалить
  10. Да, судя по ответам, моё предположение слишком преувелиино =)

    ОтветитьУдалить
  11. Не совсем. Просто ПО с БД это очень много ПО. Началь можно со свякой фигни с прикрученным SQLite или магазином в интернетике которы тысячи и потом перейти уже ко всяким софтинам для работы с olap кубами анализа и прочей радости жизни. Все работает с БД вроде. А знаний сильно разно надо.

    ОтветитьУдалить
  12. Вспоминая свой опыт - в первой конторе, где я работал тестировщиком первоначально мне было достаточно знания простых и средней сложности запросов к СУБД на стандартном SQL. Пришел уже подготовленным - пока учился в институте этот навык более менее прокачался... Так что насколько сложно тому, кто изначально в принципе не знает ни SQL ни принципов реляционных СУБД, судить лично мне сложно.
    Но перед глазами уже не раз были примеры, когда толковые ребята-стажеры принимались без знаний SQL и СУБД и через практику выполнения black-box задач, а также путем самообразования довольно быстро осваивали базовый уровень. Нет там ничего сверхестественного. "Особые" знания, о которых говорилось выше, нужны далеко не всем.

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

    ОтветитьУдалить