TesterCity

A place where software quality lives

Certification for Software Test Engineers

There are recognized ‘brands’ of certification authorities that may you offer proof of your knowledge, for example ISTQB/BCS (former ISEB). They have many different levels and often employers may state they desire at least Foundation level certificate from job seekers.

Nonetheless, there are another provides, yet your local Software Testing Qualification Board or community may have different programms.

I have collected links to the most known certification authorities and local boards. Hope, this can be helpful someone.

Read the rest of this entry »

Linux: No network connection. Turn network adapter on.

I’ve got this issue recently when installed VirtualBox on my Manjaro Linux (this distro based on Arch Linux, so the solution would work there as well).

It seems that VirtualBox, while installing its virtual network adapters, had messed up the existing physical ones. That led to the situation when, once you reboot your machine, there is no network connection to the internet.

➜ ~ ping google.com
ping: google.com: Name or service not known

Well, this is pretty easy to fix.
Read the rest of this entry »

Как удалить встроенные приложения в Windows 10

Вместе с установкой Windows 10 приходит довольно много разнообразных пользовательских приложений, часть из них постоянно висит в фоне и отнимает ресурсы системы. Возможно, вы захотите удалить часть из этих Windows Store apps, тем более если вы не пользуетесь ими (эй, кто-нибудь знает зачем на корпоративной версии Windows 10 предустановлены приложения Xbox?)

Стандартными средствами Windows (в «Установке и удалении программ») приложения типа Photos, Feedback, Camera нельзя найти, и следовательно удалить их оттуда. Но есть другой способ.

Необходимый disclaimer: всё, что вы делаете со своей системой — на ваш страх и риск. Делайте бэкапы перед экспериментами 🙂

Собственно, процесс удаления состоит из двух шагов:

  1. Запускаем PowerShell с правами администратора
  2. Выполняем команду вида «Get-AppxPackage *photo* | Remove-AppxPackage«, где между звёздочками укажите название Windows App, которое вы хотите удалить. После нажатия Enter приложение будет удалено из системы.

Простыми словами о Big O (Time Complexity)

Есть у программистов понятие «временная сложность» (time complexity or Big O) для сравнительной оценки эффективности алгоритма.

К примеру, для некоторой структуры может быть линейное время доступа (искомый элемент либо встретится сразу, либо он может быть в самом конце, и если структура очень большая (n — это число элементов), а элемент в самом конце, то поиск может быть долгим. Обычно рассматривают время доступа в среднем и худшем случае. Big O — обозначение верхней границы, т.е. худшего случая. Для нашего примера O(n).

Также есть константное время доступа (например, когда мы знаем индекс элемента в структуре и обращаемся к элементу по его индексу), тогда где бы элемент не находился, мы всегда можем получить к нему доступ за O(1).

Так вот, поездка на машине в снежную погоду — это скорее O(n) (неизвестно за сколько доберёшься из-за пробок), а на метро — O(1) (всегда примерно одинаковое время на дорогу).

Эффективность алгоритмов варьируется от O(1) до O(n!), их полный список можно найти на вики (ссылка в конце статьи).

В своё время мне помогли «войти в тему» следующие статьи, их я очень советую прочесть:

  • Знай сложности алгоритмов — Краткая шпаргалка по сложности алгоритмов. Теперь вам будет проще выбрать наиболее эффективный тип данных и алгоритм, подходящий под ваши задачи.
  • Введение в анализ сложности алгоритмов — Лёгкий для чтения и понимания материал. Идеально, чтобы начать разбираться во всех этих алгоритмах и «читать» их сложность. Обязательно прочтите все части.
  • Big O notation — Orders of common functions — не пугайтесь длинного списка, просто запомните что сложность от O(1) до O(n) норм, а всё что больше — уже не норм.

Python: передача значения переменной в контексте экземпляра класса

Пример ниже показывает как в Python реализована передача значений между методами используя контекст экземпляра класса (т.е., когда мы порождаем переменную в выражении «c = A()», обращаясь к ней, мы обращаемся к экземпляру класса).

Как известно, в Python функции могут существовать вне класса, в этом случае в параметрах такой функции может ничего не передаваться. Однако, когда мы определяем функцию внутри класса, первым параметром идёт «self«, т.е. ссылка на контекст экземпляра класса, и такую функцию мы уже будем называть методом. Эта ссылка неявно передаётся в метод интерпретатором каждый раз когда мы вызываем метод, таким образом нам не нужно указывать это значение самостоятельно.

class A:
    list1 = []

    def method_a(self):
        self.list1 = [1, 2, 3]

    def method_b(self):
        print(self.list1)

Теперь запускаем код в интерпретаторе

   # create instance of class A() and name the instance 'c'
c = A()
   # call method_a() for instance 'c', this will set value to list1 on the instance-wide
c.method_a()
   # call mathod_b() for instance 'c', this will get value of list1 from instance
c.method_b()
>>> [1, 2, 3]
   # we can also get the value of 'list1' by calling the attribute of instance 'c'
c.list1
>>> [1, 2, 3]

Это свойство Python, как объектно-ориентированный языка, позволяет передавать значения из одного тестового метода в другой тестовый метод.

Бесплатный доступ: все курсы DataCamp и LinkedIn

Компания Microsoft в очередной раз преподнесла подарок всем любителям онлайн-курсов. Если раньше можно было получить бесплатный 3-месячный доступ к полной базе курсов Pluralsight, то теперь из аккаунта Visual Studio Dev Essentials (если его у вас ещё нет, то заведите — это бесплатно) можно активировать ваучеры на бесплатную 2-месячную подписку на DataCamp и 3-месячную подписку на LinkedIn Premium.

Активировать их можно в любое удобное время, скорее всего эта «акция» будет довольно продолжительной, вы можете активировать подписки как одновременно, так и по очереди, по мере необходимости.

Чем интересны перечисленные MOOC площадки?

  • Data Camp (обработка и анализ данных, искусственный интеллект, Python, R)
  • LinkedIn Premium (для бизнеса, технических и творческих специалистов)

Бесплатная книга: Selenium WebDriver

Хороший источник информации на русском языке по работе с Selenium WebDriver, с примерами кода на Java. Книгу на GitBooks можно смотреть онлайн (зелёная кнопка Read), а также скачать в популярных форматах (PDF/ePub/Mobi).

https://www.gitbook.com/book/kreisfahrer/selenium-webdriver/details

Case Study: JUnit4, Selenium WebDriver and Allure

I just recently made an example project which shows the abilities of automated testing using JUnit4, Selenium WebDriver and Allure.

This relatively simple project with code written on Java requires only Maven to run, it works on Internet Explorer, however you may tweek it to work on any Webdriver compatible browser (both desktop and mobile). Allure itself could be tuned to use most using automated testing framework, so not only JUnit is supported. Worth to note, you may import project with your Java IDE and use it as base for your experiments.

The source code, including project configuration pom.xml, as well as setup and usage guide are available on my GitHub space:
https://github.com/niki4/automated-testing-yandex-market-example

OWASP Top 10 2017 RC2 Final has been published

A second release candidate for the list of Most Critical types of vulnerabilities/risks for Web Apps by version of OWASP, has been published recently on their GitHub space.

There was significant changes since the previous OWASP Top 10 2013 list: some threats are not so actual these days, but another ones arose (such as XML External Entity (XXE), Insecure Deserealization, and Insufficient Logging & Monitoring).

The RC2 has Final postfix in its name meaning the document is ready to review and investigation.

Read the rest of this entry »

Kali Linux 2017.2 Release

A state-of-art Linux build for all those who interested in security testing has been upgraded. For more details, including what’s new and upgrade instructions please proceed the link https://www.kali.org/news/kali-linux-2017-2-release/