AT.info ПОСИДЕЛКИ  vKontakte   facebook группа  
Фреймворк

Архитектура и инфраструктура автоматизации тестирования

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

at.info news #11 - Автоматизация за неделю

at.info news #8 - Автоматизация за неделю

Улучшаем автоматизированое регресионное тестирование

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

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

 

Зачем автоматизировать выполнение теста?

Существует несколько причин для того, чтобы автоматизировать выполнение тестов. Вот короткий обзор наиболее обычных причин.

Последовательное выполнение тестов

При автоматизации выполнения тестов человеческий фактор можно вычеркнуть из уравнения. Несмотря на все усилия тестировщика, сложно неоднократно выполнить тесты точно таким же образом при тех же самых условиях. Дело в том, что не каждый шаг теста выполняется таким же образом, которым он выполнялся во время более раннего теста. Такие различия в выполнении могут привести к ошибкам и влиять на результат теста. При маленьких ошибках во вводе могут быть серьезные последствия в сценарии тестирования.

Оптимизация использования времени

Для тестировщиков, оптимизация использования времени является, вероятно, важнейшей причиной автоматизации выполнения тестов. В идеальном мире тестировщики могут выполнить свой недавно выполненный скрипт автоматически немедленно. Таким образом, они не должны выполнять его вручную и начинать с других (тестовых) действий. После автоматизированного теста они могут проанализировать результаты и интерпретировать полученные данные, а также повторить тест снова, при необходимости.

Сокращение времени тестирования, также хороший мотив для автоматизации выполнения тестов. ‘Тестовый Робот’ может выполнять запланированные тесты круглосуточно и семь дней в неделю. Это поможет существенно сократить общее время тестирования, а также увеличить емкость тестов. Имея возможность выполнять более обширные тесты, одновременно, вы сократите Время выхода на рынок и/или увеличите Качество при выходе на рынок.

Более высокое качество результатов и конечного продукта

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

 

Factory pattern (Python recipe)

## {{{ http://code.activestate.com/recipes/86900/ (r2)
"""
A generic factory implementation.
Examples:
>>f=Factory()
>>class A:pass
>>f.register("createA",A)
>>f.createA()
<__main__.A instance at 01491E7C>

>>> class B:
... 	def __init__(self, a,b=1):
... 		self.a=a
... 		self.b=b
... 		
>>> f.register("createB",B,1,b=2)
>>> f.createB()
>>> b=f.createB()
>>> 
>>> b.a
1
>>> b.b
2

>>> class C:
... 	def __init__(self,a,b,c=1,d=2):
... 		self.values = (a,b,c,d)
... 
>>> f.register("createC",C,1,c=3)
>>> c=f.createC(2,d=4)
>>> c.values
(1, 2, 3, 4)

>>> f.register("importSerialization",__import__,"cPickle")
>>> pickle=f.importSerialization()
>>> pickle
<module 'cPickle' (built-in)>
>>> f.register("importSerialization",__import__,"marshal")
>>> pickle=f.importSerialization()
>>> pickle
<module 'marshal' (built-in)>

>>> f.unregister("importSerialization")
>>> f.importSerialization()
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
AttributeError: Factory instance has no attribute 'importSerialization'
"""

class Factory:      
    def register(self, methodName, constructor, *args, **kargs):
        """register a constructor"""
        _args = [constructor]
        _args.extend(args)
        setattr(self, methodName,apply(Functor,_args, kargs))
        
    def unregister(self, methodName):
        """unregister a constructor"""
        delattr(self, methodName)

class Functor:
    def __init__(self, function, *args, **kargs):
        assert callable(function), "function should be a callable obj"
        self._function = function
        self._args = args
        self._kargs = kargs
        
    def __call__(self, *args, **kargs):
        """call function"""
        _args = list(self._args)
        _args.extend(args)
        _kargs = self._kargs.copy()
        _kargs.update(kargs)
        return apply(self._function,_args,_kargs)
        
## end of http://code.activestate.com/recipes/86900/ }}}

Отчет. 7я встреча автоматизаторов

"Что опять?" - Скажут те, кто так и не смог попасть на очередную встречу автоматизаторов тестирования. А те кто смог - потратили время не зря. Ведь и в самом деле, было чертовски интересно. Компания GlobalLogic принимала нас в своем публичном месте - GClub. За что им очередное спасибо! 
Встречала началась нестандартно - с задания. Все участники поделились на три группы. Мы же заранее подготовили задания для каждой из них. Первой комманде  нужно было составить решение по автоматизации приложения с условием, что на сам проект есть 2 недели.  Второй команде нужно было предложить самое стабильное решение по автоматизации. Третьей - нужно было продать решение функционального и нагрузочного тестирования
Условным заказчким для всех был наш любимый ресурс - automated-testing.info

На подготовку - 20 минут. Поехали!

 

Aвтоматизированный генератор тестовых скриптов, основанный на модели

В этой статье представлено вступление в новый способ генерирования тестовых скриптов для тестирования GUI (основанного на web или rich клиентах) используя model-based подход, а также описание того, как это меняет процесс тестирования. Описанный инструмент для генерирования тестовых кодов (Abstract Testing Tool) был разработан автором, при сотрудничестве с одним из наших клиентов. Сгенерированный код для автоматизации может использоваться для тестирования рабочих характеристик или функционального тестирования.

Видео: Test Automation Framework Designs

Будущее инструментов и инфраструктуры автоматизации тестов

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

Эволюция

Давайте немного вернемся назад и посмотрим, как развивались инструменты и фреймворки по автоматизации тестирования. 

  • Главным в любом фреймворке автоматизации является процессор ядра системы. 
  • Традиционный набор инструментов записи и воспроизведения находится над этим ядром. 
  • Так как скрипты, сделанные с помощью record&playback, имели проблемы с устойчивостью и сложностью, поэтому это стало причиной того, что был добавлен новый слой – а именно самописные фреймворки

История развития автоматизации тестирования

RSS-материал