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

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

@anothertechrock @viktorreh

РКН: https://rknn.link/cSK
Download Telegram
# 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
# find_extreme_words.py
def find_extreme_words(sentence):
words = sentence.split()
if not words:
return None, None
return max(words, key=len), min(words, key=len)

# test_find_extreme_words.py
import pytest
from find_extreme_words import find_extreme_words

def test_regular_sentence():
assert find_extreme_words("This is a test sentence.") == ("sentence.", "a")

def test_empty_sentence():
assert find_extreme_words("") == (None, None)

def test_sentence_with_whitespace():
assert find_extreme_words(" ") == (None, None)
assert find_extreme_words(" Word spacing test ") == ("spacing", "test")

def test_sentence_with_numbers():
assert find_extreme_words("There are 123 numbers.") == ("There", "123")
assert find_extreme_words("This sentence has 7 words.") == ("sentence", "7")

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

#задача #автоматизация #python #pytest
👍5🤯32🔥1
#задача #автоматизация #python #pytest

Задачка: Подсчет гласных букв
Напишите функцию count_vowels(), которая принимает на вход строку, состоящую из латинских букв, и возвращает количество гласных букв (а именно буквы A, E, I, O, U, a, e, i, o, u) в этой строке.

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

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
5
# count_vowels.py
def count_vowels(input_string):
vowels = "AEIOUaeiou"
return sum(1 for char in input_string if char in vowels)

# test_count_vowels.py
import pytest
from count_vowels import count_vowels

def test_regular_string():
assert count_vowels("hello") == 2
assert count_vowels("python") == 1

def test_empty_string():
assert count_vowels("") == 0

def test_string_with_no_vowels():
assert count_vowels("xyz") == 0
assert count_vowels("bcdfghjklmnpqrstvwxyz") == 0

def test_string_with_all_vowels():
assert count_vowels("AEIOUaeiou") == 10

def test_mixed_string():
assert count_vowels("Hello World") == 3
assert count_vowels("Programming is fun!") == 6

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

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

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

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

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍61
# combine_lists.py
def combine_lists(list1, list2):
return list1 + list2

# test_combine_lists.py
import pytest
from combine_lists import combine_lists

def test_regular_lists():
assert combine_lists([1, 2, 3], [4, 5, 6]) == [1, 2, 3, 4, 5, 6]
assert combine_lists(["apple", "banana"], ["cherry", "date"]) == ["apple", "banana", "cherry", "date"]

def test_empty_lists():
assert combine_lists([], []) == []

def test_one_empty_list():
assert combine_lists([], ["a", "b", "c"]) == ["a", "b", "c"]
assert combine_lists(["x", "y", "z"], []) == ["x", "y", "z"]

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

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

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

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

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

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
👍3
# are_anagrams.py
def are_anagrams(str1, str2):
return sorted(str1) == sorted(str2)

# test_are_anagrams.py
import pytest
from are_anagrams import are_anagrams

def test_anagrams():
assert are_anagrams("listen", "silent")
assert are_anagrams("triangle", "integral")
assert are_anagrams("debit card", "bad credit")

def test_not_anagrams():
assert not are_anagrams("hello", "world")
assert not are_anagrams("python", "java")
assert not are_anagrams("abc", "def")

def test_empty_strings():
assert are_anagrams("", "")

def test_different_lengths():
assert not are_anagrams("abc", "abcd")
assert not are_anagrams("abc", "ab")

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

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

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

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

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
# factorial.py
def factorial(n):
return 1 if n == 0 else n * factorial(n - 1)

# test_factorial.py
import pytest
from factorial import factorial

def test_factorial_of_zero():
assert factorial(0) == 1

def test_factorial_of_positive_numbers():
assert factorial(1) == 1
assert factorial(2) == 2
assert factorial(3) == 6
assert factorial(4) == 24
assert factorial(5) == 120

def test_factorial_of_large_number():
assert factorial(10) == 3628800
assert factorial(15) == 1307674368000

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

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

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

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

Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
# smallest_prime_divisor.py
def smallest_prime_divisor(n):
if n == 2:
return 2
for divisor in range(2, int(n ** 0.5) + 1):
if n % divisor == 0:
return divisor
return n

# test_smallest_prime_divisor.py
import pytest
from smallest_prime_divisor import smallest_prime_divisor

def test_prime_numbers():
assert smallest_prime_divisor(2) == 2
assert smallest_prime_divisor(3) == 3
assert smallest_prime_divisor(17) == 17
assert smallest_prime_divisor(19) == 19

def test_composite_numbers():
assert smallest_prime_divisor(4) == 2
assert smallest_prime_divisor(9) == 3
assert smallest_prime_divisor(25) == 5
assert smallest_prime_divisor(35) == 5

def test_large_number():
assert smallest_prime_divisor(1000000007) == 1000000007

def test_smallest_prime_divisor_of_1():
assert smallest_prime_divisor(1) == 1

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

#задача #автоматизация #python #pytest
👍6😁1