QARocks. Тестировщик Рулит 🐞
17.5K subscribers
748 photos
53 videos
4 files
1.02K links
Тестировщик рулит - всё о тестировании ПО.

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

@anothertechrock @viktorreh

РКН: https://rknn.link/cSK
Download Telegram
#задача #автоматизация #python #pytest

Задачка: Подсчет суммы чисел от 1 до N
Напишите функцию, которая принимает на вход число N и возвращает сумму всех чисел от 1 до N включительно.

Функция должна называться calculate_sum.
Функция должна принимать одно целочисленное значение N в качестве аргумента.
Функция должна вернуть сумму всех чисел от 1 до N.
Требования к тестам с использованием pytest:

Напишите тесты для функции calculate_sum с различными значениями N, включая положительные и отрицательные числа, а также нуль.
Убедитесь, что функция возвращает корректную сумму для всех входных данных.

Пишите ваши варианты в комментариях. Ответ будет в канале завтра
👍62
# sum_of_numbers.py
def calculate_sum(N):
return sum(range(1, N + 1))

# test_sum_of_numbers.py
import pytest
from sum_of_numbers import calculate_sum

def test_calculate_sum_positive():
assert calculate_sum(5) == 15

def test_calculate_sum_negative():
assert calculate_sum(-5) == 0

def test_calculate_sum_zero():
assert calculate_sum(0) == 0

def test_calculate_sum_large():
assert calculate_sum(100) == 5050

В этом примере функция calculate_sum принимает число N, затем использует функцию sum и range для подсчета суммы чисел от 1 до N. Тесты проверяют правильность работы функции для различных входных данных.

#задача #автоматизация #python #pytest
👍12
#задача #автоматизация #python #pytest

Задачка: Подсчет суммы четных чисел
Напишите функцию calculate_even_sum(), которая принимает на вход список чисел и возвращает сумму всех четных чисел в этом списке.

Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍5
# calculate_even_sum.py
def calculate_even_sum(numbers):
return sum(num for num in numbers if num % 2 == 0)

# test_calculate_even_sum.py
import pytest
from calculate_even_sum import calculate_even_sum

def test_positive_numbers():
assert calculate_even_sum([1, 2, 3, 4, 5]) == 6
assert calculate_even_sum([10, 20, 30, 40, 50]) == 150

def test_negative_numbers():
assert calculate_even_sum([-1, -2, -3, -4, -5]) == -6
assert calculate_even_sum([-10, -20, -30, -40, -50]) == -150

def test_mixed_numbers():
assert calculate_even_sum([-5, 10, -3, 8, 2]) == 20
assert calculate_even_sum([0, 0, 0, 0, 0]) == 0

def test_empty_list():
assert calculate_even_sum([]) == 0

def test_no_even_numbers():
assert calculate_even_sum([1, 3, 5, 7, 9]) == 0

В этом примере функция calculate_even_sum() принимает список целых чисел и возвращает сумму только четных чисел, проверяя для этого элементы списка на четность.Тесты проверяют правильность работы функции для различных входных данных.

#задача #автоматизация #python #pytest
👍14
#задача #автоматизация #python #pytest

Задачка: Палиндромное число
Напишите функцию is_palindrome(), которая принимает на вход число и проверяет, является ли оно палиндромом. Палиндромом называется число, которое одинаково читается слева направо и справа налево.

Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍6
# is_palindrome.py
def is_palindrome(number):
number_str = str(number)
return number_str == number_str[::-1]

# test_is_palindrome.py
import pytest

from palindrome import is_palindrome

def test_positive_palindrome():
assert is_palindrome(121) == True
assert is_palindrome(1221) == True

def test_negative_palindrome():
assert is_palindrome(123) == False
assert is_palindrome(12321) == False

def test_single_digit():
assert is_palindrome(9) == True

def test_negative_number():
assert is_palindrome(-121) == False

def test_large_palindrome():
assert is_palindrome(12345678987654321) == True

def test_empty_input():
with pytest.raises(ValueError):
is_palindrome('')

def test_string_input():
with pytest.raises(ValueError):
is_palindrome('hello')

def test_float_input():
with pytest.raises(ValueError):
is_palindrome(12.21)

В этом примере функция is_palindrom() принимает число, преобразует его в строку и далее сравнивает эту строку с этой же строкой, но записанной в обратном порядке. Если они равны, возвращается True, в противном случае False. Тесты проверяют правильность работы функции для различных входных данных.

#задача #автоматизация #python #pytest
👍9
#задача #автоматизация #python #pytest

Задачка: Поиск уникальных элементов
Напишите функцию find_unique(), которая принимает на вход список элементов и возвращает список из уникальных элементов, то есть элементов, которые встречаются в исходном списке только один раз.

Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍4
# find_unique.py
def find_unique(elements):
return [element for element in elements if elements.count(element) == 1]

# test_find_unique.py
import pytest
from find_unique import find_unique

def test_unique_elements():
assert find_unique([1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5]
assert find_unique(['a', 'b', 'c', 'd']) == ['a', 'b', 'c', 'd']

def test_duplicate_elements():
assert find_unique([1, 2, 2, 3, 4, 4, 5]) == [1, 3, 5]
assert find_unique(['a', 'b', 'b', 'c', 'c', 'd']) == ['a', 'd']

def test_mixed_elements():
assert find_unique([1, 'a', 2, 'b', 3, 'c']) == [1, 'a', 2, 'b', 3, 'c']

def test_empty_list():
assert find_unique([]) == []

В данном примере функция find_unique() принимает список произвольных элементов и возвращает его, проверяя при этом чтобы элемент в списке не имел дубликатов. В противном случае этот элемент в возвращенный список не включается. Тесты проверяют правильность работы функции для различных входных данных.

#задача #автоматизация #python #pytest
👍9
#задача #автоматизация #python #pytest

Задачка: Подсчет слов в предложении
Напишите функцию count_words(), которая принимает на вход строку, представляющую предложение, и возвращает количество слов в этом предложении. Предполагается, что слова разделены пробелами.

Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍31
# count_words.py
def count_words(sentence):
return len(sentence.split())

# test_count_words.py
import pytest
from count_words import count_words

def test_regular_sentence():
assert count_words("This is a test sentence.") == 5
assert count_words("Python programming is fun!") == 4

def test_empty_sentence():
assert count_words("") == 0

def test_sentence_with_whitespace():
assert count_words(" ") == 0
assert count_words(" Word spacing test ") == 3

def test_sentence_with_numbers():
assert count_words("There are 123 numbers.") == 4
assert count_words("This sentence has 7 words.") == 5

В данном примере функция count_words() принимает на вход строку и преобразует ее в список, разбивая по пробелам. Далее она выводим число элементов данного списка, то есть число слов во входной строке. Тесты проверяют правильность работы функции для различных входных данных.

#задача #автоматизация #python #pytest
👍7
#задача #автоматизация #python #pytest

Задачка: Поиск наибольшего и наименьшего слова

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

Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍21