We live in changeable world, and our applications are also very inconstant. As a result we have to know how to improve project quality. The subject of my presentation is related to the modern approaches of designing and implementing automated functional tests, by using, for instance, design patterns, improving test execution time based parallel execution, scaling by distributing tests on several machines, creating strategy for generation of big sets of test data and setup skeleton for organizing tests for typical Django project. I am pleased to share with you my acquired experience in this field.
6. ABOUT SELENIUM:
• PIP
INSTALL
-‐U
SELENIUM
• SELENIUM
WEBDRIVER
API
NOW
IN
W3C
DRAFT
SPECIFICATION
• RUN
IN
MANY
BROWSERS
• AND
OS
• CAN
BE
CONTROLLED
BY
DIFFERENT
PROGRAMMING
LANGUAGES
8. WHEN
NUMBER
OF
TESTS
IS
GROWING:
• WE
NEED
TO
DECREASE
TEST
EXECUTION
TIME
• WE
NEED
TO
USE
DESIGN
PATTERNS
(I.E
PAGEOBJECT,
PAGEFACTORY)
• WE
NEED
TO
USE
SKELETON
FOR
ORGANIZING
TESTS
19. SCHEME
FOR
SELENIUM
GRID
+
CONCURRENT
TEST
EXECUTION
py.test
unittest.TestCase
Node
Node
Node
Hub
20. BEST
PRACTICE
FOR
TEST
DATA
GENERATION
AND
• DJANGO
LOREM
IPSUM
UTILS
• DON’T
USE
FIXTURES
• USE
FACTORY
BOY
+
FAKER
INSTEAD
OF
FIXTURES
21. BEST
PRACTICE
FOR
CREATION
FT
TESTS:
• USE
EXPLICIT
WAITS
RATHER
THAN
IMPLICIT
WAITS.
• USE
CODE—HELPER
METHODS
IN
BASE
CLASS,
OR
PAGE
PATTERN.
• AVOID
DOUBLE-‐TESTING
FUNCTIONALITY
• LOOK
INTO
BDD
TOOLS
• USE
CONTINUOUS
INTEGRATION