Стоит ли проводить модульное тестирование? [закрыто]

Вот более эффективный способ сделать это:

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

Возвращает индексы (или элементы), отобранные / выбранные (с заменой) с использованием их соответствующих вероятностей:

def resample(weights, n):
    beta = 0

    # Caveat: Assign max weight to max*2 for best results
    max_w = max(weights)*2

    # Pick an item uniformly at random, to start with
    current_item = random.randint(0,n-1)
    result = []

    for i in range(n):
        beta += random.uniform(0,max_w)

        while weights[current_item] < beta:
            beta -= weights[current_item]
            current_item = (current_item + 1) % n   # cyclic
        else:
            result.append(current_item)
    return result

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

573
задан 7 revs, 5 users 67% 10 April 2013 в 19:43
поделиться

35 ответов

Я обнаружил TDD пару лет назад и с тех пор написал все свои любимые проекты, используя его.

3
ответ дан 22 November 2019 в 22:09
поделиться

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

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

7
ответ дан 22 November 2019 в 22:09
поделиться

[Я должен отметить, что не вижу выше]

«Все юнит-тестируют, они не не обязательно осознавать это - ФАКТ »

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

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

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

Модульное тестирование здесь действительно берет это поведение, формализует его в структурированный шаблон и сохраняет его, чтобы вы могли легко повторно запустить эти тесты. Если вы напишете «правильный» модульный тестовый пример вместо ручного тестирования, это займет столько же времени, а может быть и меньше, чем вы наберетесь опыта, и у вас есть возможность повторять его снова и снова

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

Модульное тестирование здесь действительно берет это поведение, формализует его в структурированный шаблон и сохраняет его, чтобы вы могли легко повторно запустить эти тесты. Если вы напишете «правильный» модульный тестовый пример вместо ручного тестирования, это займет столько же времени, а может быть и меньше, чем вы наберетесь опыта, и у вас есть возможность повторять его снова и снова

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

Модульное тестирование здесь действительно берет это поведение, формализует его в структурированный шаблон и сохраняет его, чтобы вы могли легко повторно запустить эти тесты. Если вы напишете «правильный» пример модульного теста, а не вручную, это займет столько же или, может быть, меньше времени, чем вы наберетесь опыта, и у вас есть возможность повторять его снова и снова

Модульное тестирование здесь действительно берет это поведение, формализует его в структурированный шаблон и сохраняет его, чтобы вы могли легко повторно запустить эти тесты. Если вы напишете «правильный» пример модульного теста, а не вручную, это займет столько же или, может быть, меньше времени, чем вы наберетесь опыта, и у вас есть возможность повторять его снова и снова

Модульное тестирование здесь действительно берет это поведение, формализует его в структурированный шаблон и сохраняет его, чтобы вы могли легко повторно запустить эти тесты. Если вы напишете «правильный» пример модульного теста, а не вручную, это займет столько же или, может быть, меньше времени, чем вы наберетесь опыта, и у вас есть возможность повторять его снова и снова

21
ответ дан 22 November 2019 в 22:09
поделиться

Я не знаю. Многие места не проводят модульное тестирование, но качество кода хорошее. Microsoft проводит юнит-тесты, но Билл Гейтс на своей презентации показал "голубой экран".

6
ответ дан 22 November 2019 в 22:09
поделиться

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

0
ответ дан 22 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: