Имя: Пароль:
1C
1С v8
Как тестировать обработки перебирающие большой объем данных.
0 Doomer
 
14.10.13
10:08
Вообще ткните в нужно направлении в плане тестирования. Тут я полный чайник.
Проблема такая. Когда делаешь печ. форму протестировать ее работу не сложно. А вот когда делаешь обработку которая перебирает большой объем данных возникает вопрос как тестировать. Можно взять реальный объем данных и попробовать на нем. Иногда бывает что обработка будет работать не один час. Можно сделать тестовый пример в котором отразить все варианты использования, но тут есть вероятность что-то не предусмотреть, и тогда на реальных данных может возникнуть ошибка.
В целом, наверное, хочу научиться тестировать свои разработки.
1 mishaPH
 
модератор
14.10.13
10:09
(0) а что, сократить период нельзя?
2 Doomer
 
14.10.13
10:12
(1) Есть вероятность, что в сокращенный период некоторые варианты не попадут.
3 ДенисЧ
 
14.10.13
10:14
(2) Вероятность того, что тесты не покроют 100% функционала - 100%
4 pumbaEO
 
14.10.13
10:16
(3) вероятность накрытия в 90% уже лучше, чем покрытие в 0%
5 Галахад
 
гуру
14.10.13
10:16
(0) Арендуйте быстрый сервер.
6 ДенисЧ
 
14.10.13
10:17
(4) Вероятность накрытия - это вероятность, что накроется всё? :-))
7 Doomer
 
14.10.13
10:19
(5) Дело не в производительности. Какую бы быструю железку не купить все равно появятся задачи которые она будет долго обрабатывать. Тут еще вопрос целесообразности.
8 vde69
 
модератор
14.10.13
10:24
20% выборки отражает 80% действительности

я тестирую так, сначало на 1 примере, потом в запросах ставлю top 100 или top 1000,

финальное тестирование - на полных данных, у меня были обработки по 10 часов... Заодно при финальном тестировании пишу временной план (в екселе) и именно с ним потом иду на рабочую, и довожу до пользователей "мне нужно 47 часов" и неволнует...
9 Лефмихалыч
 
14.10.13
10:24
(0) на малых объемах и тестируй. Если ты знаешь, для чего и как используется обработка, то проблем с "создать все варианты" не должно быть
10 Aleksey
 
14.10.13
10:24
(7) Какой бы большой период ьы не брал, всё равно найдутся данные на которых она откосит
11 wms
 
14.10.13
10:25
Тестировать надо не нобъем данных, а код.
я тестирую свои процедуры и функции отладчиком и ставлю в заголовке процедуры плюсики зачайтую по 2-3 раза.
ну и в сулсовиях внутри кода
12 Зойч
 
14.10.13
10:26
(8) это фикси, у франча - куда деть те 47 часов тестирования?
13 wms
 
14.10.13
10:28
+(11)после такого тестирования на тестовых малых данных в рабочем варианте все работало как требовало ТЗ.
так что объемы данных совсем не кретичны
14 vde69
 
модератор
14.10.13
10:31
(12) компьютер работает а человек занят другими задачами?

в чем проблемма?
15 Зойч
 
14.10.13
10:32
(14) ну как видишь для (0) это проблема
16 vde69
 
модератор
14.10.13
10:33
(11) а представь что в базе например есть 1 документ с реквизитом - "обьект не найден" и ты обращаешся в обработке через точку...

будет обидно если на рабочей базе после 14 часов обработка вылетет по ошибке.
17 Зойч
 
14.10.13
10:35
(16) видишь, такие ошибки можно планировать
18 vde69
 
модератор
14.10.13
10:36
(17) и как планирование такой ситации поможет? в реальности нужно в пользовательском режиме перезаполнить этот реквизит до начала обработки....
19 Зойч
 
14.10.13
10:37
(18) не обращаться через точку, обращаться через точку в попытке
20 patapum
 
14.10.13
10:37
(16) и что мешает этому документу появиться в промежуток между тестированием и боевым запуском?
21 Зойч
 
14.10.13
10:38
Каждый раз обращаясь через точку в голове должен сработать тригер, А ведь может быть неопределено
22 vde69
 
модератор
14.10.13
10:42
(20) шанс возникновения ошибки есть всегда, просто при полном "финальном" тестировании он значительно меньше.

(21) все предусмотреть невозможно, а вот опробовать на конкретной базе можно.
23 batmansoft
 
14.10.13
10:57
(16) Вот для таких случаев надо предусмотреть возможно дозагрузки(дообработки), что бы после авариного завершения обработины запустить ее еще раз, и что бы она обработала только необработанные данные.
24 vde69
 
модератор
14.10.13
10:58
(23) это не всегда возможно
25 Зойч
 
14.10.13
11:00
(24) практически всегда. Ну ладно в 99,999%
26 batmansoft
 
14.10.13
11:16
(24) Если это невозможно, то тут вообще звездец. А вообще то, как сказал (25), да, в большинстве случаев возможно. Если нет, тот тут уже надо думать отдельно в каждом конкретном уникальном случае.
27 pumbaEO
 
14.10.13
11:17
(26) обработка больших данных - чаще всего это всегда  уникальный случай.
28 IamAlexy
 
14.10.13
11:20
(0) я делал обычно тестовую базу с выборкой данных перебор которой занимает вменяемое время..
29 batmansoft
 
14.10.13
11:22
(27) На самом деле там куча типовых случаев:
1. Загрузка (справочников, документов, остатков) - всегда можно проверить, загружен ли уже этот элемент.
2. Изменение реквизита(ов) - тоже как правило, можно сделать отбор по еще не измененным объектам.
3. Если проверка на существование уже загруженного объекта занимает длительное время, можно тупо сначала загрузить в какой то регистр сведений справочник, а потом по мере конвертации в нормальные данные удалять записи регистра(элементы справочника).
30 Зойч
 
14.10.13
11:25
(27) невозможно только в случае, когда на основании  большого кол-ва данных формируется ОДИН объект (а ля ввод остатков). Но не представляю, чтоб такой объект формировался 50 часов
31 Aleksey
 
14.10.13
11:26
(29) Обработка больших данных - это не только поменять значения реквизита у документа
32 batmansoft
 
14.10.13
11:29
(30) даже в этом случае можно сделать проверку на то, загружен объект данных или нет.
(31) Если надо обработает объекты по какому нибудь сложному хитрозадому алгоритму, можно сначала сформировать список, а потом по списку уже обрабатывать, удаляя из него уже обработанные элементы. Список можно хранить в регистре сведений.
33 VladZ
 
14.10.13
11:31
(0) Анализируешь алгоритм на предмет проблемных моментов. Тестируешь их на небольших объемах. Если все ОК - делаешь тесты на реальных объемах.
34 kiruha
 
14.10.13
11:51
(0)
Есть такая наука статистика
Как проверить 100 000 деталей

Случайно берется  несколько деталей (кол расчитывается, но небольшое)
И если ни в одной нет брака -
с вероятностью 99 %  нет брака в большой партии
35 kiruha
 
14.10.13
11:53
Особое внимание случайных.

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