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

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

@anothertechrock @viktorreh

РКН: https://rknn.link/cSK
Download Telegram
# 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