вторник, 7 февраля 2023 г.

Как парсить логи доступа nginx

 

Как спарсить журнал доступа Nginx для получения списка IP-адресов

sudo cat /var/log/nginx/access.log | awk '{ print $1}' | sort | uniq -c | sort

Как спарсить логи доступа Nginx для подсчета количества запросов в секунду

sudo cat /var/log/nginx/access.log | awk '{print $4}' | uniq -c | sort -rn | head

Как спарсить логи доступа Nginx для получения кодов ответов

cat /var/log/access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -e | sort -rn

четверг, 21 ноября 2019 г.

Linux - шпаргалка

1.
Отличие контейнера от виртуальной машины
Основное отличие контейнера от виртуальной машины заключается в том, что контейнер использует ядро хоста для обработки данных.
Контейнер - это виртуальная среда, которая обеспечивает интерфейс взаимодействия между пользовательскими приложениями и методами ядра.
Виртуальная машина - это полностью изолированная программная среда, эмулирующая аппаратное обеспечение некоторой платформы.
Создание виртуальной машины целесообразно, когда вы хотите самостоятельно управлять настройками ядра.
Например это может понадобиться:
- если установлено специфичное оборудование или возникает конфликт аппаратного обеспечения со
стандартным ядром;
- чтобы задействовать свойства, которых нет в поставляемых сборках ядра (например, поддержка high memory);
- для оптимизации ядра, удаляя ненужные драйверы для уменьшения времени загрузки;
- создания монолитного ядра, без модулей;
- для установки обновлённого или разрабатываемого ядра.



2. 

IPTABLES










понедельник, 27 февраля 2017 г.

виды тестирования

1. По знанию внутренностей системы:
  • черный ящик (black box testing);
  • серый ящик (grey box testing);
  • белый ящик (white box testing).
2. По объекту тестирования:
  • функциональное тестирование (functional testing);
  • тестирование интерфейса пользователя (UI testing);
  • тестирование локализации (localization testing);
  • тестирование скорости и надежности (load/stress/performancetesting);
  • тестирование безопасности (security testing);
  • тестирование опыта пользователя (usability testing);
  • тестирование совместимости (compatibility testing).
3. По субъекту тестирования:
  • альфа-тестировщик (alpha tester);
  • бета-тестировщик (beta tester).
4. По времени проведения тестирования:
  • до передачи пользователю — альфа-тестирование (alphatesting);
                – тест приемки (smoke test, sanity test или confidence test);

                – тестирование новых функциональностей (new featuretesting);

                – тест сдачи (acceptance or certification test);
  • после передачи пользователю — бета-тестирование (betatesting).
5. По критерию “позитивности” сценариев:
  • позитивное тестирование (positive testing);
  • негативное тестирование (negative testing).
6. По степени изолированности тестируемых компонентов:
  • компонентное тестирование (component testing), тестирование одного компонента;
  • интеграционное тестирование (integration testing), тестирование взаимодействия пары компонентов системы;
  • системное (или энд-ту-энд) тестирование (system or end to-end testing), полное тестирование системы.
7. По степени автоматизированности тестирования:
  • ручное тестирование (manual testing);
  • автоматизированное тестирование (automated testing);
  • смешанное/полуавтоматизированное тестирование (semiautomated testing).
8. По степени подготовки к тестированию:
  • тестирование по документации (formal/documented testing);
  • эд хок-тестирование (ad hoc testing).


воскресенье, 8 ноября 2015 г.

Вопросы на собеседовании тестировщика

Перевод вопросов с сайта Михаила Портнова https://www.portnov.com/ru


Что такое качество ?

  • Удовлетворение потребностей клиентов? Субъективный термин. Зависит от того, кто является "клиентом". Каждый клиент будет иметь свою собственную точку зрения на "качество"

Что такое качество ПО ?

  • Степень соответствия ожиданиям
  • Удовлетворение потребностей клиентов
  • Качественное ПО: ПО в  разумной степени свободное от багов, изготовленное в срок, уложившееся в рамки бюджета, отвечающее требованиям и ожиданиям, удобное в сопровождении.

Что такое обеспечение качества ?

  • Это процесс мониторинга и улучшения всех видов деятельности, связанных с разработкой программного обеспечения, начиная  со сбора требований, дизайна и обзоров на кодирование( на совсем понял, что  тут имелось в виду, возможно проектирование), заканчивая кодированием, тестированием и внедрением.

Разница между тестированием и обеспечение качества ПО ?

  • Тестирование это в основном процесс поиска ошибок
  • Обеспечение качества это "средство предотвращения ошибок" ("Обеспечение качества" измеряет качество процессов, используемых для создания качественного продукта)

Что такое тестирование ?

  • Тестирование - это процесс анализа ПО с целью выявить различие между реальным и ожидаемым поведением ПО (программного обеспечения).
  • Цель тестирования
    • Валидация
    • Верификация
    • Error Detection
Верификация (verification) - это процесс оценки системы или её компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа [IEEE]. Т.е. выполняются ли наши цели, сроки, задачи по разработке проекта, определенные в начале текущей фазы.

Валидация (validation) - это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе [BS7925-1].


Возможно ли найти все баги, до того, как продукт уйдет клиентам ?

  • Все баги найти невозможно.


Что такое черное и белое тестирование ?

  • Тестирование черного ящика - тестирование ПО без доступа к исходному коду
  • Тестирование белого ящика - тестирование ПО с доступом к коду. Поиск багов осуществляется на уровне кода, а не логики ПО.  

Что такое баг ?

  • Баг (bug) — это отклонение фактического результата (actual result) от ожидаемого результата (expected result).

Что такое use case ?

  • Use case используется бизнес аналитиками в качестве формы (шаблона) для технических требований. Каждый use case представляет законченную бизнес-операцию совершенную пользователем.  С точки зрения обеспечения качества нам нужно выполнить End-To-End тест, чтобы убедиться, что требование выполняется. (Use case описывает поведение ПО при соприкосновении с внешним миром)
  • Больше инофрмации можно найти поссылке http://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci334062,00.html

Влияние QA на процесс развития продукта ?


  • Разъяснение требований
  • Снижения процента переписывания кода из-за изменения требований



Что такое негативное тестирование ? Позитивное ?

  • Цель позитивного тестирование показать что ПО работает так, как надо, когда пользователь совершает корректные действия. 
  • Или Позитивное” тестирование – это тестирование на данных или сценариях, которые соответствуют нормальному (штатному, ожидаемому) поведению системы.Основной целью “позитивного” тестирования является проверка того, что при помощи системы можно делать то, для чего она создавалась. (Информация взята отсюда
  • Цель негативного тестирование показать что ПО работает так, как надо, когда пользователь совершает некорректные действия.
  • Или Негативное” тестирование – это тестирование на данных или сценариях, которые соответствуют нештатному поведению тестируемой системы – различные сообщения об ошибках, исключительные ситуации, “запредельные” состояния и т.п.
  • Основной целью “негативного” тестирования является проверка устойчивости системы к воздействиям различного рода, валидация неверного набора данных, проверка обработки исключительных ситуаций (как в реализации самих программных алгоритмов, так и в логике бизнес-правил).
Во многих ресурсах по тестированию, при описании последовательности выполнения видов тестирования, негативное тестирование отделяют в отдельную процедуру и ставят на 4-е место.

При этом приводится следующий план тестирования:

  1. Изучение документации (для того, чтобы понять что, собственно тестируем)
  2. Дымовое тестирование или Smoke testing (первый прогон программы, чтобы понять работает ли она вообще)
  3. Позитивное тестирование (для того, чтобы проверить работу программы при получении ею "правильных" входных данных)
  4. Негативное тестирование (Информация взята отсюда)


Что такое жизненный цикл разработки ПО ? (ответ на данный вопрос я взял из книги Романа Савина "Тестирование посопособие по жестокому обращению с багами в интернет-стартапах")


Цикл (процесс) разработки ПО (software development life cycle) — это путь от идеи до поддержки готового продукта. Чем более отлажены каждая из стадий цикла и координация между ними, тем эффективнее работает интернет-компания, тем выше качество и тем счастливее пользователи. 
  • ИДЕЯ
  • РАЗРАБОТКА ДИЗАЙНА ПРОДУКТА И СОЗДАНИЕ СПЕКА
  • КОДИРОВАНИЕ
  • ИСПОЛНЕНИЕ ТЕСТИРОВАНИЯ И РЕМОНТ БАГОВ
  • РЕЛИЗ

Что такое тест-кейс ?

Набор условий и параметров, необходимых для проверки реализации тестируемой функции или её части.



Что включает в себя тест-кейс ?

При планировании
  • ID 
  • Название и описание 
  • Шаги 
  • Ожидаемый результат 

При выполнении тест-кейса можно добавить еще две колонки
  • Фактический результат 
  • Поле индикации PASS/FAIL

Что такое тест-план ?

Это документ, описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.


Что включает в себя тест-план ?


1) Что надо тестировать?
  • описание объекта тестирования: системы, приложения, оборудования
2) Что будете тестировать?
  • список функций и описание тестируемой системы и её компонент в отдельности
3) Как будете тестировать?
  • стратегия тестирования, а именно: виды тестирования и их применение по отношению к объекту тестирования
4) Когда будете тестировать?
  • последовательность проведения работ: подготовка (Test Preparation), тестирование (Testing), анализ результатов (Test Result Analisys) в разрезе запланированных фаз разработки
5) Критерии начала тестирования:
  • готовность тестовой платформы (тестового стенда)
  • законченность разработки требуемого функционала
  • наличие всей необходимой документации
...
6) Критерии окончания тестирования:
  • результаты тестирования удовлетворяют критериям качества продукта:
  • требования к количеству открытых багов выполнены
  • выдержка определенного периода без изменения исходного кода приложения Code Freeze (CF)
  • выдержка определенного периода без открытия новых багов Zero Bug Bounce (ZBB)

Что включить в баг репорт ?



пятница, 6 ноября 2015 г.

Тестирование. Общие понятия и определения.

На данной страничке я попытался собрать для себя основные определения по тестированию ПО.

1) Определение тестирования   
1а) Качество программного обеспечения (Software Quality)
2) Баг (Понятие серьезности и приоритета)
3) Спецификация
4) Цели и задачи тестирования
5) Жизненный цикл ПО
6) Требования
7) Виды тестирования
8) Покрытие кода

Тестирование -проверка соответствия между реальным и ожидаемым поведением ПО (программного обеспечения).
Или согласно книге Роман Савина (стр. 20) - это поиск багов.


Качество ПО (Software Quality) - степень соответствия 
а) описанным требованиям
б) ожиданиям и потребностям пользователей

Обеспечение качества (англ. Quality Assurance, QA) — это процесс или результат формирования требуемых свойств и характеристик продукции по мере её создания, а также — поддержание этих характеристик при хранении, транспортировании и эксплуатации продукции[1]

Обеспечение качества определено в стандарте ISO 9000:2005 «Системы менеджмента качества. Основные положения и словарь» как «часть менеджмента качества, направленная на создание уверенности в том, что требования к качеству будут выполнены».


Так же можно посмотреть определение Обеспечения качества и Контроля качества по ссылке http://www.protesting.ru/qa/


Баг

Где баг (bug) — это отклонение фактического результата (actual
result) от ожидаемого результата (expected result).


Баг живет и процветает лишь при одновременном
выполнении всех трех условий:
1. Известен фактический результат;
2. Известен ожидаемый результат;
3. Известно, что результат из пункта 1 не равен результату из
пункта 2.

(Роман Савин стр.20 )

Серьезность багаэто степень воздействия бага (magnitude of impact) на ПО, исходя из принадлежности бага к определенной технической категории


Приоритет бага это показатель важности бага для бизнеса компании.



Спецификация

Источник ожидаемого результата - спецификация, жизненный опыт, здравый смысл, общение, стандарты, авторитетное мнение.

Спецификация (или spec — читается "спек". Далее употребляется
в мужском роде) — это детальное описание того, как должноработать ПО. Вот так, ни много ни мало.В большинстве случаев баг — это отклонение от спецификации


Цели и задачи тестирования

Цель тестирования - обеспечение такого ёмкого (совокупного) понятия как Качество, с учётом всех или наиболее критичных для данного конкретного случая составляющих. 
Цель тестирования — это нахождение багов до того, как их найдут пользователи

Задачи тестирования программного обеспечения – снизить стоимость разработки путем раннего обнаружения дефектов


Жизненный цикл ПО

Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.

Требования

Требования бывают прямы и косвенные. Функциональные и нефункциональные.


Виды тестирования. (ссылка)

Покрытие кода (code coverage) — это метод анализа, определяющий, какие части ПО были проверены (покрыты) набором тестов, а какие нет, например, покрытие операторов, покрытие альтернатив или покрытие условий. 



Источники


  • Роман Савин тестирование dot com или Пособие по жестокому обращению с багами в интернет-стартапах
  • http://www.protesting.ru/testing/bugpriority.html
  • http://www.intuit.ru/
-----------------------------------------