Перейти к содержимому

Фотография

Нужно ли тестировщику знать языки программирования


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 48

#1 SMITA

SMITA

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 01 ноября 2007 - 06:15

Хотелось бы услышать ваши мнения..
Чем помогает тестировщику знание языка, на котором написана програма?
Возможно ли на том же C# написать какой-нить тестовый скрипт для C# же программы?
  • 0

#2 Rifle

Rifle

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Vitaliy
  • Город:Kyiv

Отправлено 01 ноября 2007 - 08:02

Если речь идет о автоматизированном тестировании то безусловно нужно знать хотя бы азы какого-то языка программирования.

Возможно ли на том же C# написать какой-нить тестовый скрипт для C# же программы?

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

Если же речь идет о ручном тестировании, то тут вопрос спорный, может даже будет лучше если тестировщик вообще не будет иметь понятие о языках программирование, тогда это будет наиболее честное тестирования по идеологии black box.
  • 0

#3 berzinc

berzinc

    Активный участник

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 01 ноября 2007 - 08:29

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


Автоматизировать тесты (unit и даже GUI) можно просто на C# или VB.
  • 0

#4 SMITA

SMITA

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 01 ноября 2007 - 08:43

А как? Допустим, тот же TestComplete может имитировать действия пользователя, на кнопки там нажимать, объекты искать, результаты какие-то, по которым уже можно выводы делать.
А C#, например? как можно на нем одном что-то написать для тестирования. Что будет эта программка (или скрипт) делать?
  • 0

#5 Rifle

Rifle

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Vitaliy
  • Город:Kyiv

Отправлено 01 ноября 2007 - 09:07

Автоматизировать тесты (unit и даже GUI) можно просто на C# или VB.


С Unit да, но как быть с GUI? Это прийдется писать свой какой-то framework на C# для тестирования, не получится ли это изобретением велосипеда? Да и квалификация для написания таких тестов уже должна быть не на уровне тестировщика...
Или существует какой-то более простой способ?
  • 0

#6 berzinc

berzinc

    Активный участник

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 01 ноября 2007 - 09:09

www.google.com
C# automation
  • 0

#7 berzinc

berzinc

    Активный участник

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Berzins Lauris
  • Город:Riga, Latvia

Отправлено 01 ноября 2007 - 09:40

Автоматизировать тесты (unit и даже GUI) можно просто на C# или VB.


С Unit да, но как быть с GUI? Это прийдется писать свой какой-то framework на C# для тестирования, не получится ли это изобретением велосипеда? Да и квалификация для написания таких тестов уже должна быть не на уровне тестировщика...
Или существует какой-то более простой способ?


Чтобы нормально работать с автоматизацией, framework нужна делать в любом случае (и для C# и для TestComplete,...).
Сам работаю с Rational Robot и использую некоторые функции написание на C# (dll).

У каждого решения ест свои преимущества и недостатки - нужно самому выбирать подходящий.
  • 0

#8 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 01 ноября 2007 - 10:41

Чем помогает тестировщику знание языка, на котором написана програма?


1) Возможность более точно локализовать проблему, т.о. ускорить процесс устранения неисправности
2) Возможность найти места в коде где вероятность сбоя программы выше (например используя аудит кода). Как следствие - выбор приоритетов тестирования.
3) Возможность писать, например, unit-тесты
4) Возможность создавать скрипты\тулы, которые помогут при тестировании
...наверное еще можно продложить

Возможно ли на том же C# написать какой-нить тестовый скрипт для C# же программы?

Почему нет? Зависит от программы конечно, и целей тестирования, но использовать для тестирования язык на котором программа и написана - первый вариант, который приходит в голову.
Из собственного опыта - автоматизировал тестирование программы на C#, которая представляла собой плаг-ин для MS Studio .NET. Единственный вариант автоматического тестирования (не unit, а эмуляция пользовательских сценариев) был написание адд-она для тойже студии, на том же C#.
  • 0
Regards,
Alexey

#9 Spam

Spam

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Юра
  • Город:KIEV

Отправлено 01 ноября 2007 - 12:41

Чем помогает тестировщику знание языка, на котором написана програма?

Тем что можно протестировать код как написана программа, написать заглушки для тестирования отдельных модулей ну и оптимизировать свой скрипт при автоматизированом тестировании зная все внутренние переменные и методы написания тестовой проги.

Возможно ли на том же C# написать какой-нить тестовый скрипт для C# же программы?


Не только возможно но и нужно, одну и ту же задачу можно выполнить по разному и не факт что програмер выбрал оптимальный вариант.
  • 0

#10 ArtemRudenko

ArtemRudenko

    Постоянный участник

  • Members
  • PipPipPip
  • 248 сообщений
  • ФИО:Руденко Артем Михайлович
  • Город:Минск


Отправлено 01 ноября 2007 - 15:17

Я на этот вопрос ответил бы неодназначно - и да и нет.
Мне кажется, что в идеале в группе тестировщиков должны быть люди, которые разбираются, скажем, в основах программирования, люди, которые разбираются в предметной области, люди, хорошо понимающие бизнес функции разрабатываемого по, а также люди - максимально приближенные к обычным пользователям программы, т е разбирающиеся во всем понемногу. Конечно собрать и оплачивать такое количество людей накладно, но с другой стороны - постоянно идет личностный и карьерный рост людей в соответствии с их знаниями, умениями и тп. И на освобождаемое место почти всегда находится человек со "свежим" взглядом. Что до уровня знаний программирования и о их глубине, то тут, действительно, всё зависит от того, для чего будет использоваться этот человек - у каждой работы свои требования - хотя, конечно, это моё мнение, человеку с навыками и базовыми знаниями программирования будет легче работать в условиях отсутствия хорошо поставленного процеса, в условиях отсутствия четких требований и тп ситуациях, так как,благодаря своим знаниям, человек действительно может предположить, где и, какие, проблемы могут возникнуть относительно, скажем, вводимых данных, типов данных, рассчетов, утечек памяти и тп.
  • 0
И всё-таки она вертится...

#11 Spam

Spam

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Юра
  • Город:KIEV

Отправлено 02 ноября 2007 - 08:06

Вот этот момент:

человеку с навыками и базовыми знаниями программирования будет легче работать в условиях отсутствия хорошо поставленного процеса

как раз касается большинства контор которые занимаются разработкой ПО.
Сейчас наверное идет лишь внедрение и освоение хорошего менеджмента и работы в компаниях. Во многом это благодаря аутсорсинговым компаниям которые пришли с запада. Так что пока я думаю у нас еще актуально то что человек должен знать все. На западе там каждый делает свою работу, сантехник меняет кран, а електрик-лампочку. У нас же если ты программер или тестер то ты сам меняешь лампочку и даже не задумываешься что для этого надо електрика вызывать. Психология такая у нас, а она так быстро не меняется.
:)
  • 0

#12 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 02 ноября 2007 - 16:44

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


Позвольте немного не согласиться.
Во-первых, уже 7 лет работаю исключительно на западных работадателей (не оутсорсинг). Человек, который может вместо сантехника починить кран, а вместо электрика поменять лампочку ценится намного больше. А то что там и вправду большинство может делать только свое дело - это не потому что у них менеджмент хороший, а потому что такие люди стОят там намного дешевле, чем универсалы.

Во-вторых, когда тестер умеет делать многое - это очень хорошо. Источником ошибки может быть что угодно - настройки операционки, какие-нить библиотеки устаревших версий, запущеные\подвисшие сервисы или инстансы программы и пр. Чем больше знает инженер - тем быстрее он обнаружит источник проблемы и не будет писать баги о несуществующих проблемах, если причина - кривая конфигурация, например. Что делать если нужно скрипт написать, чтобы килограммы логов прогрепать? Я даже представить не могу, что идти к кому-то надо.

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

PS: А чтобы американец проводил в офисе более положеных 8 часов - вообще редкость - а у нас вот пятница вечер и полно народу по кнопкам стучит. Психология...
  • 0
Regards,
Alexey

#13 Darkus

Darkus

    Опытный участник

  • Members
  • PipPipPipPip
  • 424 сообщений
  • Город:Казахстан, г.Астана

Отправлено 07 ноября 2007 - 09:13

Вот, мы подходим к достаточно важному вопросу.
А можно ли всех тестировщиков под одну гребёнку?
Прекрасно понимаем, что есть мануал и автоматизаторы тестировщики.
А теперь давайте копнём глубже по второму пункту.

Имеем тестировщиков по типу тестируемых приложений:
1. Те, кто тестирует ядро системы, если такое имеется.
2. Те, кто тестирует прикладную часть - конечные решения.
3.... дополняйте, если есть соображения.

По вопросу теперь.
- Если тестировщик тестирует ядро, то помимо знания языка программирования, ему желательно ещё и разбираться в архитектуре приложений. Можно компенсировать недостаток знаний в этой области - самообучением, плюс парная разработка тестов вместе с программистом. При этом суть работы программиста\архитектора должна заключаться в том, чтобы накидать архитектуру фреймоворка по ситуации, описанной тестировщиком, чтобы ему было легче на этой базе писать тесты.

Помимо этого, тестировщику волей - неволей нужно знать каким образом процессы устроены, какие технологии используются и т.п., чтобы знать внутреннее устройство системы, с которой он работает. А значит ему нужно знать не только языки программирования, но и систему, что гораздо более объёмно!

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

Поэтому на вопрос "нужно ли тестировщику знать языки программирования" - отвечаем "Да", если специфика работы связана с автоматизацией тестирования.
Нужно ли мануальщику (или бета тестеру) знать языки программирования? Скорее "Нет", т.к. от него скорее понадобится знание бизнесс логики приложения, а также предметной области с которой он работает (скажем основы бух. учёта или банковское дело и т.п.)

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

Видите, вопрос "нужно ли тестировщику знать... " на самом деле переходит в вопрос "А какие виды бывают этих самых тестировщиков"?
И ответ лежит уже гораздо глубже, чем простое деление на мануальщиков и автоматизаторов.
  • 0

#14 SMITA

SMITA

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 07 ноября 2007 - 10:03

А можно ли на C# написать скрипт, имитирующий действия пользователя?
  • 0

#15 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 07 ноября 2007 - 11:11

А можно ли на C# написать скрипт, имитирующий действия пользователя?

Конечно же можно. Я не видел C#(.NET) уже несколько лет. И совета как конкретно это можно сделать - дать не могу.
Но есть msdn http://msdn2.microso...eys(VS.71).aspx
Раз можно посылать нажатие кнопок, то как-нить наверняка можно сымитировать клики мыши.
  • 0
Regards,
Alexey

#16 JimR

JimR

    Опытный участник

  • Members
  • PipPipPipPip
  • 253 сообщений
  • ФИО:Ручко Дмитрий Иванович
  • Город:Москва

Отправлено 07 ноября 2007 - 13:21

много писал...

Поэтому на вопрос "нужно ли тестировщику знать языки программирования" - отвечаем "Да", если специфика работы связана с автоматизацией тестирования.
Нужно ли мануальщику (или бета тестеру) знать языки программирования? Скорее "Нет", т.к. от него скорее понадобится знание бизнесс логики приложения, а также предметной области с которой он работает (скажем основы бух. учёта или банковское дело и т.п.)

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

Видите, вопрос "нужно ли тестировщику знать... " на самом деле переходит в вопрос "А какие виды бывают этих самых тестировщиков"?
И ответ лежит уже гораздо глубже, чем простое деление на мануальщиков и автоматизаторов.


На самом деле всё-равно взгляд получился с одного боку.

Возьмём к примеру SQL, неважно какой конкретно. Будет ли кто-то спорить с утверждением что это язык программирования?
Будет ли кто-то спорить, что в 90% текущего рынка разработки ПО тестировщику необходимо знать SQL? Независимо от того - ручным он занимается тестированием или автоматизированным.


С другой стороны хотелось бы понять о чём на самом деле спрашивал автор вопроса? О знании правил того или иного языка или об умении программировать?

Так как в данном случае вопрос уже становится заметно сложнее. Так как даже не все разработчики сейчас умеют программировать, поскольку далеко не все из них получали высшее образование по программированию. :crazy:
  • 0
Дмитрий Ручко
InfoTeCS

#17 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 07 ноября 2007 - 14:09

А можно ли на C# написать скрипт, имитирующий действия пользователя?

С# - это язык общего назначения, соответственно на нем теоретически можно написать любую программу. Тут даже вопрос не в языке. Здесь вопрос в дополнительных средствах. Работа окон в системах Windows (рассмотрим эти системы как частный случай) основана на посылке некоторых сообщений, которые в обработчике событий окна перехватываются и обрабатываются нужным образом. Соответственно, если предоставляются средства для посылки сообщений некоторому окну (которое тоже можно как-то извлечь), то язык, использующий эти средства позволяет выполнить задачу имитации действий пользователя.
  • 0

#18 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 18 ноября 2007 - 19:44

... Так как в данном случае вопрос уже становится заметно сложнее. Так как даже не все разработчики сейчас умеют программировать, поскольку далеко не все из них получали высшее образование по программированию. :mega_shok:

Не факт, что все те, кто получил высшее образование по программированию умеет программировать :sad:

... Видите, вопрос "нужно ли тестировщику знать... " на самом деле переходит в вопрос "А какие виды бывают этих самых тестировщиков"?
И ответ лежит уже гораздо глубже, чем простое деление на мануальщиков и автоматизаторов.

Мое мнение - тестеры бывают а)Плохие; б)Хорошие. Вот собственно и все виды. И эта классификация никак не связана с умением программировать. Это никак не связано с областью тестирования.
Разница:
Хороший тестер, даже если он никогда не тестировал ПО работающее, например, с базами данных и SQL, будет только поначалу испытывать проблемы. Пока не освоит БД и SQL на уровне достаточном для тестирования.
Плохой, даже если он хорошо знает предметную область и пр., постоянно будет испытывать проблемы при тестировании - не доглядел, не допланировал, забыл и тд.

Уменее программировать - бонус. Об этом уже писал - чем больше умеет тестер, тем больше работ он способен выполнять итд. Имхо - это огромный плюс.
Неумение программировать - вовсе не табу, для того, чтобы стать хорошим тестером. Во-первых, программировать можно научиться в процессе работы, если надо и хочется. Во-вторых, хороший тестер может прекрано составлять тест-кейзы, докапываться до истинных причин проблем, чуствовать и находить наиболее тонкие места в ПО итд. Программировать для этого не надо уметь.
  • 0
Regards,
Alexey

#19 Darkus

Darkus

    Опытный участник

  • Members
  • PipPipPipPip
  • 424 сообщений
  • Город:Казахстан, г.Астана

Отправлено 19 ноября 2007 - 03:19

Мое мнение - тестеры бывают а)Плохие; б)Хорошие. Вот собственно и все виды. И эта классификация никак не связана с умением программировать. Это никак не связано с областью тестирования.

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

Во-первых, программировать можно научиться в процессе работы, если надо и хочется...

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

Хороший тестер, даже если он никогда не тестировал ПО работающее, например, с базами данных и SQL, будет только поначалу испытывать проблемы. Пока не освоит БД и SQL на уровне достаточном для тестирования.

И не только поначалу, а и потом тоже может испытывать проблемы, если он мануальщик, а не автоматизатор.
Более того, разработать тестовый фреймворк не сможет обычный автоматизатор, который закончил курсы Visual Basic и умеет пару строк кода для авто-тестов наваять. Нужно хорошо знать ООП, а также быть хоть чуточку архитектором.

Интересно у вас получается. Тестировщик получается на все руки мастер и

Уменее программировать - бонус. Об этом уже писал - чем больше умеет тестер, тем больше работ он способен выполнять итд.

Пусть лучше каждый человек занимается тем, чем он должен заниматься, а не "больше работ способен выполнять..."
  • 0

#20 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 19 ноября 2007 - 08:28

Правда? А мир бывает а) черным б) белым? Т.е. полутонов и других классификаторов не бывает?

Полутона бывают. Поэтому "хорошие" тестеры бывают разными - зависит от опыта, инициативности итд. "Плохие" тоже разные - одни стараются, но у них не получается ничего, другие просто номер отбывают итд.

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

Я вас не понял, не понял как связано начало вопроса и сам вопрос? В любом случае ничего такого я не говорил.

Во-первых, программировать можно научиться в процессе работы, если надо и хочется...

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

Ну я вообще считаю, что любой человек может многому научиться. Особенно, если ему этого хочется.
Что такое умение программировать - вопрос отдельный. Речь не о возможности работать девелопером.
Мне кажется, что если человек может написать что-то типа "find . -name '*.html' | grep 'Hello world'" - то можно сказать, что он умеет программировать. Раз написал такой простой скрипт - значит и посложнее напишет. Главное начать :mega_shok:

Хороший тестер, даже если он никогда не тестировал ПО работающее, например, с базами данных и SQL, будет только поначалу испытывать проблемы. Пока не освоит БД и SQL на уровне достаточном для тестирования.

И не только поначалу, а и потом тоже может испытывать проблемы, если он мануальщик, а не автоматизатор.

Здесь я с вами не совсем согласен. Если вы для тестирования такого ПО наберете людей, которые до этого не написали не строки кода - провал обеспечен, согласен. Если в группу тестирования приходит новый человек, хороший опытный тестер - он научится всему чему надо.

Более того, разработать тестовый фреймворк не сможет обычный автоматизатор, который закончил курсы Visual Basic и умеет пару строк кода для авто-тестов наваять. Нужно хорошо знать ООП, а также быть хоть чуточку архитектором.

Умение программировать и знание какого-то языка программирования или методологии - это разные вещи. Человек который "умеет пару строк кода для авто-тестов наваять" и который не самосовершенствуется - не может называться *хорошим* тестером. А речь о таких людях. Если он хороший тестер, но еще неопытный, то через какое-то время он будет с легкостью писать авто-тесты. А еще через какое-то время сможет и свой фрэймворк сделать.

Пусть лучше каждый человек занимается тем, чем он должен заниматься, а не "больше работ способен выполнять..."

Не согласен абсолютно. Мне бы надоело одну и туже гайку постоянно крутить, пусть и виртуозно. А когда гайка устареет и сделается ненужной - то и я вместе с ней тоже. Чем больше я умею - тем больше я буду востребован в разных областях. К этому стремиться надо.
  • 0
Regards,
Alexey


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных