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

Фотография

Текстовое поле


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

#1 tohS

tohS

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим М.
  • Город:Минск

Отправлено 18 июня 2015 - 10:29

Всем привет!

 

Есть текстовое поле с ограничением на вводимые символы: символы латиницы, цифры и знак подчеркивания. Если есть хоть  один "левый" символ, то при отправке формы выдается сообщение об ошибке.

 

Хочу протестировать следующие символы  `~!@#$%^&*()+=-"№;:?|\/'<>

 

Но как это сделать? Если вбить их единой строкой в 1 тест кейс, то сообщение об ошибке лишь даст понять, что один из символов не прошел, какой именно не понятно. А нужно понять какой из них может обойти валидатор.

 

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

 

Или может проверить только самые "опасные", типо ковычек?

 

Как бы вы поступили?

 


  • 0

#2 Сергей

Сергей

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

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 18 июня 2015 - 10:50

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


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#3 Zo0

Zo0

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

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

Отправлено 18 июня 2015 - 10:50

Класс эквивалетности. Если что-то пропустишь - есть железная отмазка: Все баги найти невозможно. а символы такого типа ☻{╘§▀☺↑ тоже будешь тестить? все протестить невозможно!


  • 0

#4 tohS

tohS

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим М.
  • Город:Минск

Отправлено 18 июня 2015 - 11:01

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

Т.е. граничные значения по ASCII для:

1) A-Z

2) a-z

3) 0-9

4) отдельно знак подчеркивания

 

Так? Тогда любые другие проверки на вводимые символы не нужны?


  • 0

#5 vinogradoff

vinogradoff

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

  • Members
  • Pip
  • 72 сообщений
  • ФИО:Alexei Vinogradov
  • Город:Dormagen


Отправлено 18 июня 2015 - 11:02

Вбить одной строкой в 1 тест-кейс, безусловно.

Программист сам разберётся, в каком из символов была ошибка.

 

А, понял. "Ошибка" - это правильное сообщение). Да, по-хорошему в юните-тесте в цикл по одному символу проверять. Лучшего придумать не смог. 


  • 0

#6 Vader

Vader

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

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 18 июня 2015 - 11:16

Отталкиваться от предположения, что валидация осуществляется регулярным выражением \w*. В самом тест кейсе не писать конкретные символы, которые нужно проверять, а обозначить только сам класс эквивалентности, который нужно проверить, например:

 

Enter one or more chars that are not alphanumeric or underscore chars

 

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


  • 0

#7 Сергей

Сергей

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

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 18 июня 2015 - 11:41

 

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

Т.е. граничные значения по ASCII для:

1) A-Z

2) a-z

3) 0-9

4) отдельно знак подчеркивания

 

Так? Тогда любые другие проверки на вводимые символы не нужны?

 

 

Верно, забыли про по 1-му значению внутри диапазона, для знака подчеркивания - сам знак и крайние символы. Если не ошибся, всего 18 тесткейсов.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#8 bu4er

bu4er

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

  • Members
  • PipPipPip
  • 195 сообщений
  • ФИО:Шмыга Артём


Отправлено 18 июня 2015 - 12:23

Если один раз проверить - то лучше проверить каждый знак из списка спецзнаков по отдельности. Так будет спокойнее.

А если нужно часто повторять - я бы разово прошел все спец знаки, а потом при повторах только граничные значения из таблицы ASCII.
Например если положительные данные: латинские буквы разных регистров, цифры и подчеркивание, то я бы проверял помимо них еще и ближайшие по таблице.
Это будет: , . / : @ [ ' {
(точка, запятая, слэш, двоеточие, собака, квадратная скобка, апостроф, фигурная скобка)


  • 0

#9 tohS

tohS

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим М.
  • Город:Минск

Отправлено 18 июня 2015 - 12:25


 

Верно, забыли про по 1-му значению внутри диапазона, для знака подчеркивания - сам знак и крайние символы. Если не ошибся, всего 18 тесткейсов.

 

А зачем рядом с подчеркиванием проверять? Ведь это не диапазон и проверяется скорее всего одним равенством.


  • 0

#10 tohS

tohS

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим М.
  • Город:Минск

Отправлено 18 июня 2015 - 13:25

А если нужно часто повторять - я бы разово прошел все спец знаки, а потом при повторах только граничные значения из таблицы ASCII.
 

Что имелось ввиду под "повторами"

 

 

Например если положительные данные: латинские буквы разных регистров, цифры и подчеркивание, то я бы проверял помимо них еще и ближайшие по таблице.
Это будет: , . / : @ [ ' {
(точка, запятая, слэш, двоеточие, собака, квадратная скобка, апостроф, фигурная скобка)

Почему точка, запятая и апостроф, они не находятся на границах этих классов.


  • 0

#11 Сергей

Сергей

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

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 18 июня 2015 - 13:59

 


 

Верно, забыли про по 1-му значению внутри диапазона, для знака подчеркивания - сам знак и крайние символы. Если не ошибся, всего 18 тесткейсов.

 

А зачем рядом с подчеркиванием проверять? Ведь это не диапазон и проверяется скорее всего одним равенством.

 

 

1. А негативные тесты кто проводить будет, если A=B, идет проверка самого значения, плюс слева/справа значения

2. По хорошему Вам бы ещё код посмотреть и провести тестирование путей, если тестируете критическую систему

 

Рекомендую книгу Канера по тестированию. Много вопросов отпадет.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#12 bu4er

bu4er

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

  • Members
  • PipPipPip
  • 195 сообщений
  • ФИО:Шмыга Артём


Отправлено 18 июня 2015 - 14:28

 

Что имелось ввиду под "повторами"

Регрессивное тестирование. Когда нужно будет тесты заново прогнать чтобы проверить отвалилось ли чего.
 

 

 

Почему точка, запятая и апостроф, они не находятся на границах этих классов.

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


  • 0


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

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