Diario del objetivo

Типы тестирования
Юзабилити тестирование
Функциональное тестирование
Регрессионные тесты
Smoke-тестирование
Санитарное тестирование
Front-end тестирование
UNIT - тестирование
Тестирование безопасности
Дымовое и санитарное тестирование
Smoke-тесты созданы для того, чтобы проверить основную функциональность и должны быть неотъемлемой частью процесса тестирования. Они могут включать что-то простое, вроде “Могу ли я зарегистрироваться?”. Smoke-тестирование предполагает ответы ДА/НЕТ и все тест-кейсы должны быть пройдены с положительным результатом. Smoke test должны быть быстрыми и легковесными, для того, чтобы их можно было запускать часто. Данный тип тестирования определяет, пригоден ли продукт для дальнейшего, более полного тестирования. В отличии от дымового (Smoke testing), санитарное тестирование (Sanity testing) направлено вглубь проверяемой функции, в то время как дымовое направлено вширь, для покрытия тестами как можно большего функционала в кратчайшие сроки.
Регрессионное тестирование
Регрессионное тестирование (regression testing) – это механизм проверки, который направлен на обнаружение различных проблем в уже проверенных участках программ. Делается это не для окончательного убеждения в отсутствии неработающих участков кода, а чтобы найти и исправить регрессионные ошибки. Под ними понимают баги, которые появляются не во время написания программы, а при добавлении новых участков кода или исправлении допущенных ранее промахов в синтаксисе кода.
Функциональное тестирование
Функциональное тестирование является одним из ключевых видов тестирования, задача которого – установить соответствие разработанного программного обеспечения (ПО) исходным функциональным требованиям заказчика. То есть проведение функционального тестирования позволяет проверить способность информационной системы в определенных условиях решать задачи, нужные пользователям.
Модульное тестирование
Модульное тестирование — это, собственно проверка, что данный модуль работает именно так как ожидается. Написав один раз тесты, всякий раз когда вы внесете изменения в код, вам останется только запустить тесты, для проверки, что всё правильно. Таким образом вы всегда будете уверены, что своими изменениями вы не сломаете систему.

Нормализация
Нормализация заключается в разделении данных на основе логических взаимоотношений с целью минимизировать дублирование данных.
1 нормальная форма
1.Ни одна таблица не должна иметь повторяющихся столбцов, содержащих одинаковые по смыслу значения.
2.Обязательно должен быть определен первичный ключ, который уникальным образом описывал бы каждую строку.
3. Все столбцы должны содержать единственное значение.
2 нормальная форма
1.Вторая нормальная форма ликвидирует избыточность данных в столбцах
2.Таблицы уже соответствуют требованиям первой НФ.
3.Нужно определить, какие из ее столбцов содержат одни и те же данные для нескольких строк. Такие столбцы нужно поместить в отдельную таблицу, связав ее с первоначальной по ключу.
3 нормальная форма
1. Таблицы уже соответствуют требованиям первой и второй НФ.
2. нужно просмотреть таблицы и выделить данные, которые не зависят от первичного ключа, но зависят от других значений.

Правильные имена для вашего кода
Правило первое — соответствие уровню абстракции. Это означает, что ваше имя должно быть привязано к окружающему коду, раскрывать свое назначение.
Допустим, у нас есть база данных студентов, куда внесены ФИО, возраст, пол и пр. Нам надо создать функцию, которая бы выводила имена всех студентов с одного курса. Варианты плохих имен: ShowAll (CourseName), DisplayStudents (CourseName), DisStudN (CourseName), ShowStudentsNamesFromCourse (CourseName). Лишь последнее из них обладает требуемой информативностью, но его длина избыточна для столь простой функции. Вариант удачного имени: ShowStudentsNames(CourseName). Любой разработчик, который будет читать код, сразу поймёт назначение функции.
Второе правило — создавать уникальные типы, большинство языков это позволяет делать. Например, для задания возраста не нужно использовать int, так как диапазон допустимых значений избыточен. Поэтому мы можем создать новый тип (класс) age, наследовать его от int, ограничить от 0 до 100 и использовать его для соответствующей переменной. Этим мы исключим нежелательные значения и повысим читаемость кода.
Правило три — компактность. Никакой избыточной информации и подробных описаний. К примеру, возьмём название ValueAddedTax — лаконичное и понятное. Но в данном случае более узнаваемой и понятной будет аббревиатура НДС (VAT). Или в описанном выше примере про студентов имя ShowStudentsNamesFromCourse (CourseName) функция содержит ненужную часть «FromCourse», которая является аргументом.
Грамотный выбор имён для будущего кода — операция не менее важная, чем тестирование или отладка. Она позволяет избежать ошибок, повышая читаемость. Перед тем, как приступить к коду, потратьте пару часов на составление списка переменных и их имён. В будущем это время окупится многократно.

Инкапсуляция - это скрытие переменных в классе от пользователя. Т.е. все переменные (свойства) класса Вы делаете скрытыми (private), а методы открытыми (public). Т.е. можно будет взаимодействовать со свойствами класса через методы.
Прелесть данного подхода в том, что в методах можна вставить код для проверки всяких ошибок, и потом о них не думать, когда вызывается метод.
Наследование — механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.
Полиморфизм — взаимозаменяемость объектов с одинаковым интерфейсом.
Классы могут иметь одинаковые методы, но разную их реализацию. Разрабатывая код сценария, мы можем знать лишь общую для группы классов спецификацию их методов, но не иметь представления, экземпляр какого именно класса будет использоваться в конкретный момент времени.
Comentarios

Доброго времени суток!
Отличная цель, успехов!
Хочу спросить, вы уже начали заниматься по данному курсу, уже начались вебинары по PHP? Как впечатление?
Просто натыкался на курсы ГБ в интернете, смотрел одним глазком, и качество их оставляло желать лучшего, как техническая так и преподавательская сторона, да и в обществе о ГБ плохие отзывы, вот и хотелось бы узнать, как оно на самом деле, лично для вас.
Сам не раз рассматривал возможность воспользоваться этими курсами, но всегда пугала протяженность * цена и качество.
Как знать, может ваш опыт развеет некоторые страхи.