Урок 3. Починаємо працювати зі змінними

Створення змінних

Змінні є контейнерами для зберігання значень даних. Python не має команди для оголошення змінної. Змінна створюється в той момент, коли ви вперше присвоюєте їй значення. Змінні не потрібно оголошувати з певним типом , і вони навіть можуть змінювати тип після того, як їх було встановлено.

#Створюємо змінну variableNum і змінюємо тип даних, який зберігає ця змінна
variableNum = 5 #спочатку записуємо у змінну число 5
print(variableNum)
variableNum = "Five" #Потім перезаписуємо у змінну рядок "Five"
print(variableNum)

В цьому прикладі ми створюємо змінну variableNum і присвоємо їй значення 5. Далі в змінну variableNum ми перезаписуємо значення “Five” –  рядкового типу.

Створення змінних: кастинг та функція type

Якщо ви хочете вказати тип даних змінної, це можна зробити за допомогою приведення (кастингу). Ви можете отримати тип даних змінної за допомогою type() функції.

#Створюємо змінні, використовуючи кастинг та функцію type
variableNum = str(3)
print(variableNum, "-", type(variableNum))
variableNum = 2
print(variableNum, "-", type(variableNum))

В цьому прикладі ми створюємо змінну variableNum і присвоємо їй значення 3, але робимо це за допмогою функції str, тобто 3 буде не числом, а рядком. Далі виводимов на консоль змінну variableNum та її тип. Після цього перезаписуємо у змінну variableNum числове значення 2 і виводимо на консоль.

Створення змінних: лапки та регістр літер

Можна викорстовувати як одинарні так і подвійні лапки. Але слід бути послідовними, напркилад якщо відкрили подвійні лапки, то при їх закритті використовуємо також подвійні лапки. Значення регістру враховуються,  якщо наприклад в назві змінної є відмінність хоча б в одному регістрі хоча б однієї літери, то це будуть дві різні змінні.

#Використовуємо лапки
varibaleName1 = "James"
varibaleName2 = 'James'
print(varibaleName1, " ", varibaleName2)
#Регістр літер має значення.
varibaleName = "William"
varibalename = "Winston"
print("varibaleName equals ", varibaleName)
print("varibalename equals ", varibalename)

Створення змінних: правила назв

Змінна може мати коротку назву (наприклад, x і y) або більш описову назву (age, carname, total_volume). Правила для змінних Python:

  • Ім’я змінної має починатися з літери або символу підкреслення
  • Ім’я змінної не може починатися з числа
  • Ім’я змінної може містити лише буквено-цифрові символи та підкреслення (Az, 0–9 та _).
  • Назви змінних чутливі до регістру (age, aGe і AGE три різні змінні)
  • Ім’я змінної не може бути жодним із ключових слів Python.

Багатослівні імена змінних

Назви змінних, які містять більше одного слова, можуть бути складними для читання. Щоб зробити їх більш читабельними, можна скористатися кількома прийомами:

  • Camel case – кожне слово, крім першого, починається з великої літери: myVariableName = “John”
  • Pascal case – кожне слово починається з великої літери: MyVariableName = “John”
  • Snake case – кожне слово відокремлюється символом підкреслення: my_variable_name = “John”
#Валідні (дійсні) назви змінних
variablenum = 5
variale_Num = 5
_variablenum = 5
variableNum = 5
variableNum2 = 5

#Невалідні (недійсні) назви змінних
#3variableNum = 5
#variable-Num= 5
#varibale Num3 = 5

#Camel case
variableNumOperand1 = 10
# Pascal cae
VaraibleNumOperand2 = 20
#Snake case
variable_num_operand3 = 30 

Створення змінних: синтаксис для оголошення кількох змінних

Для кількох змінних ми можемо визначити значення, використовуючи коми. Для цього перераховуємо потрібні нам змінні через кому, далі використовуємо оператор «=» та перераховуємо послідовно потрібні нам значення.

Також для кількох змінних ми можемо встановити одне значення. Для цього через «=» переаховуємо зміннні, а далі вказуємо потрібне значення.

#Синтаксис для запису кількох значень у кілька змінних
car1, car2, car3 = "Dodge", "Ford", "Toyota"
print("Car 1"," ",car1)
print("Car 2"," ",car2)
print("Car 3"," ",car3)
#Синтаксис для запису одного значення у кілька змінних
car4 = car5 = car6 = "Chrysler"
print("Car 4"," ",car4)
print("Car 5"," ",car5)
print("Car 6"," ",car6)
#print function
print(car1 + car2 + car3)
car7 = str(7)
print(car7 + car5)

Створення змінних: глобальні змінні

Змінні, створені поза функцією (як у всіх наведених вище прикладах), відомі як глобальні змінні. Глобальні змінні можуть використовуватися як усередині функцій, так і поза ними.

Якщо ви створюєте змінну з таким же ім’ям у функції, ця змінна буде локальною та може використовуватися лише всередині функції. Глобальна змінна з такою ж назвою залишиться такою, якою була, глобальною та з початковим значенням.

#Глобальні змінні
name = "James"
def greetingFunction():
    print("Hello, my name is ", name)
    
greetingFunction()
#Глобальні змінні: змінна з тією самою назвою всередині функції
name = "James" #глобальна змінна
def greetingFunction():
    name = "Jenny" # локальна змінна всередині функції з тією самою назвою
    print("Hello, my name is ", name)
    
greetingFunction()

print("My name is ", name)

Ключове слово global

Зазвичай, коли ви створюєте змінну всередині функції, ця змінна є локальною та може використовуватися лише всередині цієї функції. Щоб створити глобальну змінну всередині функції, ви можете використати global  (ключове слово). Крім того, використовуйте global, якщо ви хочете змінити глобальну змінну всередині функції.

#Ключове слово global
def greetingFunction():
    global name #у функції створюємо глобальну змінну за допомогою ключового слова global
    name = "James"
    print("Hello, my name is ", name)
    
greetingFunction()
print("My name is ", name)
#Ключове слово global
name = "James"
print("My name is ", name)
def greetingFunction():
    global name # за допомогою ключового слова global вказуємо, що хочемо використати глобальну змінну всередині функції
    name = "Jenny"
    print("Hello, my name is ", name)
    
greetingFunction()
print("My name is ", name)
Змінні у Python

В цьому відео поговоримо про:
00:13 Створення змінних
02:30 Створення змінних: перетворення типів (кастинг та функція type)
05:20 Створення змінних: лапки і регістр літер
08:45 Назви змінних
13:09 Множинні змінні (створення кількох змінних в одному рядку)
18:20 Глобальні змінні

Урок 2. Створюємо перший проєкт

Створення проєкту

Для створення проєкту обираємо опцію «Створити проєкт» (Create a new project)

Create a new project

Далі обираємо тип проєкту. В нашому випадку – це звичайний консольний додаток (Python application).

Choose Python App option

Далі вносимо базові дані для проєкту, наприклад назву, місце зберігання тощо.

Configure project

В результаті наш проєкт створено.

Project created

Синтаксис Python

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

Python використовує відступи для позначення блоку коду. Кількість пробілів залежить від вас як програміста, найчастіше використовується чотири, але має бути принаймні один.

Змінні Python

У Python змінні створюються, коли ви присвоюєте їм значення:

variableNum1 = 10
varibleString1 = "Who is the one who knocks?"
print(variableNum1, " ", varibleString1)

Python не має команди для оголошення змінної. В цьому прикладі ми створюємо змінну variableNum1, якій присвоюємо значення 10. Далі створюємо змінну variableString1, якій присвоюємо рядкове значення «Who is the one who knocks?». Далі за допомогою функції print виводимо змінні на консоль, додаючи при цьому через кому окрім змінних ще й пробіл, щоб дані не зливалися.

Коментарі Python

Коментарі можна використовувати для пояснення коду Python. Також їх можна використовувати, щоб зробити код більш читабельним. Коментарі можна використовувати, щоб запобігти виконанню під час тестування коду.

Створення коментаря. Коментарі починаються з #, і Python їх ігноруватиме. Коментарі можна розміщувати в кінці рядка, і Python ігноруватиме решту рядка. Коментар не обов’язково має бути текстом, що пояснює код, він також може бути використаний, щоб запобігти Python виконувати код.

#Creation of varableNum2
variableNum2 = 15
print(variableNum2) #printing variableNum2

#Module for
#calculation and
#analysis of cost of sales
print("Cost of Sales analysis Report")

Багаторядкові коментарі. Python насправді не має синтаксису для багаторядкових коментарів. Щоб додати багаторядковий коментар, ви можете вставити #для кожного рядка.

Або, не зовсім за призначенням, ви можете використати багаторядковий рядок. Оскільки Python ігноруватиме рядкові літерали, які не призначені змінній, ви можете додати багаторядковий рядок (потрійні лапки) у свій код і розмістити в ньому свій коментар. Поки рядок не присвоєно змінній, Python читатиме код, але потім ігноруватиме його, і ви створите багаторядковий коментар.

"""
Module for
#calculation and
#analysis of cost of sales
"""
print("Cost of Sales analysis Report")
Створення проєкту

В цьому відео поговоримо про:
00:23 Створення проєкту у Visual Studio Community
01:17 Синтакс Python
04:33 Коментарі у Python

Приклади на Github

Урок 1. Мова Python

Python є популярною мовою програмування. Він був створений Гвідо ван Россумом і вийшов у 1991 році.

Ця мова програмування використовується для:

  • веб-розробки (на стороні сервера),
  • розробки програмного забезпечення,
  • розрахунках,
  • системних сценаріях.

Можливості Python

  • Python можна використовувати на сервері для створення веб-додатків.
  • Python можна використовувати разом із програмним забезпеченням для створення робочих процесів.
  • Python може підключатися до систем баз даних. Він також може читати та змінювати файли.
  • Python можна використовувати для обробки великих даних і виконання складних розрахунків.
  • Python можна використовувати для швидкого створення прототипів або для розробки готового програмного забезпечення.

Аргументи на користь Python

  • Python працює на різних платформах (Windows, Mac, Linux тощо).
  • Python має простий синтаксис, який є подібним до англійської мови.
  • Синтаксис Python дозволяє розробникам писати програми з меншою кількістю рядків, ніж деякі інші мови програмування.
  • Python працює в системі інтерпретатора, тобто код може бути виконаний відразу після його написання. Це загалом пришвидшує прототипування.
  • Python передбачає можливість застосування трьох ключових підходів до програмування, себто  процедурного, об’єктно-орієнтованого або функціонального.

Python версії

Наразі основною версією Python є Python 3, яку власне і будемо розглядати в межах цього курсу. Однак версія Python 2 є все ще досить популярною.

Синтаксичні відмінності Python

  • Python був розроблений для читабельності та має деякі подібності до англійської мови з впливом математики.
  • Python використовує нові рядки для завершення команди, на відміну від інших мов програмування, які часто використовують крапку з комою або круглі дужки.
  • Python покладається на відступи, використовуючи пробіли, щоб визначити область; такі як область циклів, функцій і класів. Інші мови програмування часто використовують для цієї мети фігурні дужки.

Встановлення Python

На багатьох комп’ютерах ПК і Mac вже буде встановлено Python.

Щоб перевірити, чи інстальовано python на комп’ютері з ОС Windows, знайдіть Python на панелі запуску або запустіть у командному рядку (cmd.exe): python –version .

Щоб перевірити, чи встановлено у вас python на Linux чи Mac, у відкрийте термінал і введіть: python –version .

Якщо ви виявите, що на вашому комп’ютері не встановлено Python, ви можете завантажити його безкоштовно з офіційного веб-сайту мови Python.

На цьому скріні приклад введення відповідної команди в командному рядку Windows.

Checking Python version in Windows command line.

На цьому скріні приклад введення відповідної команди в терміналі Linux Ubuntu.

Checking Python version in Linux Ubuntu.

Сайт мови програмування Python, з якого ви можете завантажити файл інсталяції, а також знайти багато цікавої інформації про саму мову.

Сайт мови Python

Альтернативи встановлення

Сайт Rextester містить цілу низку онлайн компіляторів для різних мов програмування. Якщо нема можливості встановлювати IDE, але є бажання отримати базову практику та попрацювати з мовою програмування, то це непоганий варіант. Тут можна працювати навіть без логіна. Але є певні функціональні обмеження. Тим не менше нескладний консольний додаток цілком можливо написати.

Сайт Rextester

Сайт Repplit пропонує цілу низку онлайн компіляторів для різних мов програмування. Є подібна опція і для мови програмування Python.
Однак потрібно створити аккаунт на сайті. Є також безкоштовна опція користування. Сподіваюсь вона буде збережена.

Сайт Repplit

Варіанти IDE

Visual Studio Code є цілком прийнятною опцією. Для більш повноцінної роботи доведеться встановити розширення Python.

Visual Studio Code

Скрін для встановлення розширення у Visual Studio Code.

Розширення Python для Visual Studio Code

Visual Studio Community цілком пристойний вибір для навчання з великою кількістю функціоналу. Однак портребуватиме значного місця на диску і певного рівня потужності комп’ютера для комфортної роботи. Саме цим IDE будемо користуватися в цьому курсі.

Visual Studio Community

Після завантаження інсталятора обираємо опцію Python з наявних і встановлюємо.

Python у Visual Studio Community

В цьому відео поговоримо про мову Python.
00:55 Мова Python
01:39 Можливості Python
02:47 Аргументи на користь Python
04:04 Версії Python
04:31 Синтаксичні відмінності Python
05:37 Встановлення Python
09:05 Ресурси для практики написання коду

Мова Python

ISTQB Certified Tester Foundation Level. Курс для початківців. Розділ 6. Практика.

В цьому відео робиться спроба розібрати кілька десятків питань по шостому розділу сілабусу ISTQB CTFL.

ISTQB Certified Tester Foundation Level. Курс для початківців. Розділ 6. Практика.

Всі питання з відео з правильними відповідями наводяться нижче.

Question 1

Which of the following is likely to benefit most from the use of test tools providing test capture and replay facilities?

  1. Integration testing.
  2. System testing.
  3. User acceptance testing.
  4. Regression testing.

Question 2

Which of the following benefits are MOST likely to be achieved by using test tools?
(i) Easy to access information about tests and testing.
(ii) Reduced maintenance of testware.
(iii) Easy and cheap to implement.
(iv) Greater consistency of tests.

  1. ii and iv
  2. ii and iii
  3. i and iv
  4. i and iii

Question 3

A company recently purchased a commercial off-the-shelf application to automate their bill-paying process. They now plan to run an acceptance test against the package prior to putting it into production. Which of the following is their most likely reason for testing?

  1. To detect bugs in the application.
  2. To gather evidence for a lawsuit.
  3. To build confidence in the application.
  4. To train the users.

Question 4

A tool that supports traceability, recording of incidents or scheduling of tests is called:

  1. A debugging tool.
  2. A test execution tool.
  3. A dynamic analysis tool.
  4. A test management tool.

Question 5

A typical commercial test execution tool would be able to perform all of the following EXCEPT:

  1. comparison of expected outcomes with actual outcomes.
  2. reading test values from a data file.
  3. generating expected outputs.
  4. recording test inputs.

Question 6

Capture and replay facilities are least likely to be used to:

  1. Recovery testing
  2. GUI testing
  3. User requirements.
  4. Performance testing

Question 7

When an organization considers the use of testing tools, they should:

  1. Use a tool in order to help define a good test process because the tool will force process repeatability and therefore enforce good test process.
  2. Always start by bringing in automated test execution tools as these tools have the greatest return on investment and therefore should be introduced first.
  3. Perform analysis of the test process and then assess whether it can be supported through the introduction of tool support.
  4. Allow the developers to select the testing tools because tools are technical and developers have the appropriate skills to advise on test tool selection and configuration.

Question 8

From the list below, select the recommended principles for introducing a chosen test tool in an organization?
1. Roll the tool out to the entire organization at the same time.
2. Start with a pilot project.
3. Adapt and improve processes to fit the use of the tool.
4. Provide training and coaching for new users.
5. Let each team decide their own standard ways of using the tool.
6. Monitor that costs do not exceed initial acquisition cost.
7. Gather lessons learned from all teams.

  1. 1, 2, 3, 5.
  2. 2, 3, 4, 7
  3. 1, 4, 6, 7.
  4. 3, 4, 5, 6.

Question 9

Which of the following would NOT be a typical target of testing support tools?

  1. Automate activities that require significant resources when done manually
  2. Automate activities that cannot be executed manually
  3. Automate repetitive tasks
  4. Automating repetitive inspections

Question 10

The place to start if you want a (new) test tool is:

  1. Invite a vendor to give a demo.
  2. Find out what your budget would be for the tool.
  3. Analyze your needs and requirements.
  4. Attend a tool exhibition.

Question 11

Given the following types of tool, which tools would typically be used by developers and which by an independent test team:
(i.) static analysis.
(ii.) performance testing.
(iii.) test management.
(iv.) dynamic analysis.
(v.) test running.
(vi.) test data preparation.

  1. developers would typically use ii, iv and vi; test team I, ii and v.
  2. developers would typically use i and iv; test team ii, iii, v and vi.
  3. developers would typically use i, iii, iv and v; test team ii and vi.
  4. developers would typically use i, iv and vi; test team ii, iii and v.

Question 12

A data driven approach to test automation design is best described as:

  1. Using action words to describe the actions to be taken, and the test data.
  2. Scaling to support large numbers of users.
  3. Being based on Equivalence Partitioning testing techniques.
  4. Separating out the test data inputs and using a generic script that can real the test data and perform the same test steps with different data.

Question 13

What are the potential benefits from using tools in general to support testing?

  1. Greater responsiveness of users, reduction of tests run, objectives not necessary.
  2. Greater repeatability of tests, reduction in repetitive work, objective assessment.
  3. Greater quality of code, reduction in paperwork, fewer objections to the tests.
  4. Greater quality of code, reduction in the number of testers needed, better objectives for testing.

Question 14

Dynamic Analysis Tools are used to:

  1. Determine differences between files or databases.
  2. Monitor and report on how a system behaves under a variety of conditions.
  3. Find defects, such as memory leaks, while software is executing.
  4. Measure the percentage of specific types of code structure that have been exercised.

Question 15

What is a potential risk in using tools to support testing?

  1. The tool will repeat exactly the same thing it did the previous time.
  2. Insufficient reliance on the tool, i.e. still doing manual testing when a test execution tool has been purchased.
  3. Unrealistic expectations, expecting the tool to do too much.
  4. The tool may find defects that aren’t there.

Question 16

What type of tools to be used for Regression Testing

  1. Performance
  2. Record/Playback
  3. A. & B.
  4. None

Question 17

Which of the following activities should be performed during the selection and implementation of a testing tool?
(i) Investigate the organisation’s test process.
(ii) Conduct a proof of concept.
(iii) Implement the selected tool on a project behind schedule to save time.
(iv) Identify coaching and mentoring requirements for the use of the selected tool.

  1. i, ii, iii.
  2. i, ii, iv.
  3. ii, iii, iv.
  4. i, iii, iv.

Question 18

Which of the following are advanced scripting techniques for test execution tools?

  1. Playback-driven and keyword-driven
  2. Data-driven and capture-driven
  3. Data-driven and keyword-driven
  4. Capture-driven and keyhole-driven

Question 19

Which of the following are potential benefits of adding tools to the test process?
(I.) Reduction of repetitive testing procedures.
(II. )Ability to hire testers with fewer technical skills.
(III.) Ability to get an objective assessment of progress.
(IV.) Greater consistency in testing procedures.

  1. II, III and IV
  2. I, II and III
  3. I, III and IV
  4. I, II and IV

Question 20

Which of the following is likely to benefit most from the use of test tools providing test capture and replay facilities?

  1. Integration testing.
  2. System testing.
  3. User acceptance testing.
  4. Regression testing.

Question 21

Which of the following are potential benefits of using test support tools?

  1. Reducing repetitive work and gaining easy access to test information
  2. Ensuring greater consistency and minimizing software project risks
  3. Allowing for greater reliance on the tool to automate the test process
  4. Performing objective assessment and reducing the need for training