SlideShare a Scribd company logo
Copyright © SELA Software & Education Labs, Ltd. | 14-18 Baruch Hirsch St., Bnei Brak 51202, Israel | www.selagroup.com
SELA DEVELOPER PRACTICE
May 23-25, 2017
Arnon Axelrod
Test Automation & Architecture
About myself
Senior Architect and Test Automation Team Lead
at Sela Group
Professional Software Developer
since 1995 (and amateur since 1984)
Currently writing the book “The Complete Guide to
Test Automation” by Apress.
E-mail: arnona@sela.co.il
Blog: http://blogs.microsoft.co.il/ArnonA
Phone: 052-5327296
Architecture
Simplistic view on a computer system
Processing
InputsOutputs
Simplistic view on Test Automation
Processing
(SUT)
InputsOutputs
TestExpected?
Pass/Fail
A more realistic view on computer systems…
Test automation and architecture
Real-time monitoring of smart meters
Communication Server
(3rd party)
Web server
DB
Data
Aggregator
Data Layer
Web Client
Real-time monitoring of smart meters
Automated tests
Water meters
simulator
Selenium
Web server
DB
Data
Aggregator
Data Layer
Web Client
Forex site
UI (web)
Web server
DB
Trading proxy
(3rd party)
Trading server
Stock
Exchange
Stock
Exchange
Stock
Exchange
Simulator
Cars fleet management
Communication
Server
Main DB
Web Application
Data Transfer
Engine Real-time DB
Cars fleet management
Main DB
Web Application
Data Transfer
Engine Real-time DB
Automated tests
Selenium
Embedded Google Maps
Embedded Google Maps
Test automation and architecture
Simulators should be stupid!
What about state?
Persistent State (Database)
Isolation
Use dedicated customer/user
Only use what you create
Reset state before each run/test
Cleanup
Choosing the appropriate test scope
UI
View Model
Client Logic
Server Proxy
Service Layer
Business Logic
DAL
ORM
DBFake DB (e.g.
SqlLite)
Other architectural considerations…
Feasibility (e.g. unique UI technology)
Importance vs. Risk (e.g. is there BL in the UI?)
Speed
What’s likely to change? (e.g. UI vs. API)
Reliability of the technology
Resources (hardware, SW licenses, etc.)
Extensibility
Questions

More Related Content

PPTX
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
PPTX
.NET MAUI with .NET 6 (December 2021, Preview 10)
PPTX
Serverless Orchestration with Azure Durable Functions
PDF
Engineering Manager, Edge Insights @Netflix
PPTX
Move Fast;Stay Safe:Developing & Deploying the Netflix API
PPTX
1 module04 dev ops
PDF
Open Source based API Functional and Performance Testing
PPTX
TechX Azure 2015 - Application Insights
POST/CON 2019 Workshop: Design, Develop, and Mock APIs with Postman
.NET MAUI with .NET 6 (December 2021, Preview 10)
Serverless Orchestration with Azure Durable Functions
Engineering Manager, Edge Insights @Netflix
Move Fast;Stay Safe:Developing & Deploying the Netflix API
1 module04 dev ops
Open Source based API Functional and Performance Testing
TechX Azure 2015 - Application Insights

What's hot (20)

PDF
Automate REST API Testing
PDF
Developing and deploying the Netflix API service
PPTX
API Test Automation Tips and Tricks
PDF
Developer cloud roadmap keynote
PPTX
WIT Lightning Talk: Agility at Scale with the Netflix API
PPTX
Four Practices to Fix Your Top .NET Performance Problems
PPTX
From Dev To Prod: How theScore deploys Elixir applications
PDF
Intuitive APIs and Developer Education
PPTX
Blazor Stability Testing Tools for Bullet Proof Applications
PDF
Frail & Cast Iron tools - a Postman Case Study
PDF
10 things you can do at the edge
PDF
Serverless Architecture
PPTX
API Testing with Open Source Code and Cucumber
PPTX
Spring 5.0 meets reactive programming
PPTX
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
ODP
Eclipse based products
PDF
WSO2Con EU 2015: API Readiness: Is Your API Ready for Primetime?
PPTX
Speed upyourtest with_appium
PDF
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
Automate REST API Testing
Developing and deploying the Netflix API service
API Test Automation Tips and Tricks
Developer cloud roadmap keynote
WIT Lightning Talk: Agility at Scale with the Netflix API
Four Practices to Fix Your Top .NET Performance Problems
From Dev To Prod: How theScore deploys Elixir applications
Intuitive APIs and Developer Education
Blazor Stability Testing Tools for Bullet Proof Applications
Frail & Cast Iron tools - a Postman Case Study
10 things you can do at the edge
Serverless Architecture
API Testing with Open Source Code and Cucumber
Spring 5.0 meets reactive programming
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
Eclipse based products
WSO2Con EU 2015: API Readiness: Is Your API Ready for Primetime?
Speed upyourtest with_appium
Postman Webinar: "From APIs to Serverless Cloud Applications in Minutes"
Ad

Similar to Test automation and architecture (20)

PPTX
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
PDF
Automation Culture: Essential to Agile Success
PPTX
.NET Fest 2019. Arnon Axelrod. Test automation for developers
PDF
An Automation Culture: The Key to Agile Success
PPTX
Maximizing UI Automation – A Case Study
PPTX
Test Automation Architecture That Works by Bhupesh Dahal
PPTX
QAorHighway2016
PDF
A practical guide for using Statistical Tests to assess Randomized Algorithms...
PDF
3 Must-Know Details About Automation Testing
PDF
TMF2014 Mobile Testing Workshop Michael Palotas
 
PDF
Web Application Testing with Selenium
PDF
Test Automation for Dynamic Applications _ Applitools in Action.pdf
PDF
ElasTest Webinar
PDF
A Modern Dive into QA Automation and Beyond
PPTX
Solving the Automation Puzzle - how to select the right automation framework ...
PDF
Ten10 Seminar: Test Automation, Tooling and the Future (slides)
PDF
Meet Big Agile: Testing on Large-Scale Projects
PPT
Innovative Test Automation Solution
PDF
How the JDeveloper team test JDeveloper at UKOUG'08
PPTX
Building your first windows store app in html5 js phonegap
Test Automation Maturity Model (Israel Test Automation meetup 12/11/2018)
Automation Culture: Essential to Agile Success
.NET Fest 2019. Arnon Axelrod. Test automation for developers
An Automation Culture: The Key to Agile Success
Maximizing UI Automation – A Case Study
Test Automation Architecture That Works by Bhupesh Dahal
QAorHighway2016
A practical guide for using Statistical Tests to assess Randomized Algorithms...
3 Must-Know Details About Automation Testing
TMF2014 Mobile Testing Workshop Michael Palotas
 
Web Application Testing with Selenium
Test Automation for Dynamic Applications _ Applitools in Action.pdf
ElasTest Webinar
A Modern Dive into QA Automation and Beyond
Solving the Automation Puzzle - how to select the right automation framework ...
Ten10 Seminar: Test Automation, Tooling and the Future (slides)
Meet Big Agile: Testing on Large-Scale Projects
Innovative Test Automation Solution
How the JDeveloper team test JDeveloper at UKOUG'08
Building your first windows store app in html5 js phonegap
Ad

More from Arnon Axelrod (10)

PPTX
Defect free development - QS Tag2019
PPTX
ATDD open house
PPTX
Competitive code
PPTX
Effective refactoring
PPTX
Beyond pageobjects
PPTX
Unit Testing, TDD and ATDD
PPTX
Software quality - no more bugs!
PPTX
C# in depth
PPTX
ATDD with SpecFlow
PPTX
Automation at Philips Healthcare
Defect free development - QS Tag2019
ATDD open house
Competitive code
Effective refactoring
Beyond pageobjects
Unit Testing, TDD and ATDD
Software quality - no more bugs!
C# in depth
ATDD with SpecFlow
Automation at Philips Healthcare

Recently uploaded (20)

PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administraation Chapter 3
PDF
Cost to Outsource Software Development in 2025
PPTX
history of c programming in notes for students .pptx
PPTX
Transform Your Business with a Software ERP System
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
System and Network Administration Chapter 2
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Introduction to Artificial Intelligence
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Designing Intelligence for the Shop Floor.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Operating system designcfffgfgggggggvggggggggg
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administraation Chapter 3
Cost to Outsource Software Development in 2025
history of c programming in notes for students .pptx
Transform Your Business with a Software ERP System
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Reimagine Home Health with the Power of Agentic AI​
System and Network Administration Chapter 2
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Odoo Companies in India – Driving Business Transformation.pdf
Computer Software and OS of computer science of grade 11.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Introduction to Artificial Intelligence
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)

Test automation and architecture

Editor's Notes

  • #4: מה זה בכלל ארכיטקטורה של תכנה? לפי ויקיפדיה יש הרבה הגדרות. אחת מהן היא "מה שחשוב". והדבר הכי חשוב בבדיקות אוטומטיות זה אמינות ויציבות ובזה נתמקד היום. ישנם כמובן אספקטים חשובים אחרים, כגון קלות תחזוקה וכדו', אבל זה נושא נפרד... בשביל להבין למה בכלל יכולות להיות לנו בעיות של יציבות, נתחיל במבט פשטני מאד על מה זאת בכלל מערכת מחשב?
  • #5: כפי שבד"כ מלמדים בשיעור הראשון של כל קורס מבוא לתכנות: מערכת מחשב מורכת מקלט, עיבוד ופלט
  • #6: באופן פשטני ודומה, בדיקות אוטומטיות הן תוכנה שמזינה קלט מסויים לתוך המערכת הנבדקת, בוחנת את הפלט ומדווחת אם הפלט מתאים לתוצאה הצפויה או לא. באופן עקרוני, הפלט של כל מערכת (והמערכת הנבדקת בפרט) תלוי אך ורק בקלט שלה! בהנתן שזה המצב, אין כל סיבה שבדיקה אוטומטית לא תתן גם היא תמיד את אותה תוצאה עבור כל עוד המערכת הנבדקת לא השתנתה. הבעיה היא שבפועל, רוב המערכות לא נראות כ"כ פשוטות, אלא נראות יותר כמו משהו כזה:...
  • #7: למעשה יש לנו כאן אוסף של מערכות שכל אחת מהן מקבלת קלט ממספר מקורות, כולל: § תתי מערכות אחרות § מערכות חיצוניות § בסיסי נתונים § מידע מחיישנים שונים תאריך ושעה... כולל שעון התזמון של מערכת ההפעלה שמשפיע על תזמון של thread-ים... שאלה: מי פה כותב את הבדיקות האוטומטיות על סמך תסריטים שבודקים ידניים מגדירים? (מי מגדיר בעצמו?) מה הבעיה עם זה? □ לבודקים ידניים פחות חשוב העניין של יציבות כי הם יכולים להפעיל שיקול דעת ולהבין אם התוצאה שהם קיבלו שונה מהתוצאה הצפויה בגלל באג או בגלל שאיזשהו "קלט" שהם לא שולטים בו לא היה בדיוק מה שתוכנן. □ בגלל זה בודקים ידניים הרבה פעמים גם לא טורחים להגדיר במדוייק את התוצאה הצפויה, אלא שוב, מסתמכים על השיקול דעת שלהם בזמן הרצת הבדיקה □ לעתים קרובות לבודקים הידניים אין את היכולת לשלוט בקלט שמגיע ממקורות שונים מלבד ממשק המשתמש (ולעתים ה-database) ו/או לבדוק את הפלט שנשלח למקורות אחרים מלבד ה-UI לעומת זאת, באוטומציה, חשוב שנהיה מסוגלים לשלוט בכל מקור קלט שיכול להשפיע על תוצאות הבדיקה! כמו כן, רצוי מאד שנהיה מסוגלים לבחון יעדי פלט אחרים מלבד ה-UI, בעיקר אם זאת המהות של המערכת... § למעשה, אנחנו צריכים "לסמן מסגרת" מסביב לרכיבים שאנחנו רוצים לבדוק, ולזהות את כל מקורות הקלט שיכולים להשפיע על הפלט שאותו אנחנו רוצים לבדוק <תמונה> הערה: אם אנחנו יכולים להבטיח במידה מספיק גבוהה של אמינות שקלט מסויים לא יכול להשפיע על הפלט הנבדק, אז אנחנו לא חייבים לשלוט בו.
  • #9: הסתבר שבכלל לא בודקים את ה-Data Aggregator למרות שהוא רכיב מאד חשוב... ולא בדקו תקשורת *אל* המודדים
  • #11: קראו לי בגלל בעיות יציבות רציתי לחקור ביום ראשון את התוצאות... בעיה: הטסטים לא רצים ביום ראשון! הטסטים הכילו הרבה לוגיקה... פתרון: סימולטור
  • #13: בהתחלה הציעו לעשות נסיעה מיוחדת שעליה נבצע את הבדיקות!
  • #14: נתקלתי בכמה פרוייקטים עם Google maps או גרפים (Telerik Kendo)
  • #16: אם יש תשתית של UT ו-DI זה עוזר מאד...
  • #17: טסטים אוטומטיים לא צריכים דטה מורכב כמו במציאות! הטסטים רק צריכים לקשר קלט לפלט...
  • #18: יש עוד בעיה מהותית: כשאמרנו שהפלט של מערכת תלוי אך ורק בקלט שלה, זה נכון רק אם אנחנו מתחילים כל פעם את כל המערכת מחדש. אנחנו יכולים לוותר על ההנחה הזו, אם נאמר שהפלט של מערכת תלוי ב-2 דברים: במצב (state) ובקלט.
  • #19: כמעט שאין מערכת שאין לה גם database או קבצים שמאפשרים לה לשמור state. למעשה, DB זה משהו שמאפשר גם קלט וגם פלט, אך מבטיח שנתונים ששלחנו אליו כפלט (מהמערכת אל ה-DB), ניתן לקרוא ממנו בחזרה בצורת קלט (מה-DB אל המערכת). אך אם נתייחס ל-DB כאל חלק מהמערכת (ולא כאל ממשק חיצוני), אז אפשר לאמר שה-DB שומר State לרוב, לא מעשי להחזיר את כל המערכת, כולל ה-DB, למצב ההתחלתי לפני כל טסט וטסט (שרצוי גם שיהיו קצרים...)
  • #20: לכן אנחנו צריכים לנהל את זה בצורה חכמה שתבטיח שלכל בדיקה אוטומטית תהיה שליטה מלאה גם על ה-state הרלוונטי של המערכת לתכונה הזו קוראים ISOLATION לכל הפחות Isolation אמור להבטיח לנו: שטסט אחד לא יושפע מזה שטסט אחר רץ לפניו או לא שכשלון של טסט קודם לא ישפיע על הטסט הנוכחי שאם נריץ את אותו הטסט פעמיים הוא תמיד יתן את אותה התשובה בנוסף, אם אנחנו חולקים את אותה הסביבה גם עם בודקים ידניים ו/או מאפשרים לבדיקות אוטומטיות לרוץ במקביל מול אותה מערכת נבדקת, תכנון נכון יכול להבטיח לנו: שהטסטים לא יושפעו מפעולות שבודקים ידניים ביצעו לפני שהטסטים לא יושפעו מפעולות שבודקים ידניים מבצעים במקביל לבדיקה האוטומטית שטסטים אוטו' יוכלו לרוץ במקביל על אותה סביבה מבלי להשפיע האחת על השניה להלן כמה טכניקות:
  • #21: מתאים במקרה שלכל משתמש או לקוח יש גישה רק לנתונים שלו להפריד בין סביבה ידנית לאוטומטית! רצוי שלכל מי שמריץ יהיה משתמש משלו!
  • #22: כל טסט יוצר את המידע שהוא צריך
  • #23: לפני כל ריצה – פותר חלקית אבל יותר מעשי דוגמאות: DB backup VM Snapshot Containers Re-install מחיקת נתונים מטבלאות
  • #24: יותר זול מ-Reset כשהטסט עושה משהו יחודי ולא רוצים לשלם את המחיר לכל שאר הטסטים מנגנון... חשוב לציין: אם מפסיקים טסט באמצע – זה לא יתבצע!