SlideShare a Scribd company logo
Software Test Automation-Best Practices Leonard Fingerman Email: lfingerman@gmail.com
Cost vs. Quality Dilemma
Why Automate Testing ? Improve  software quality  while reducing time to market … not simply increase test coverage Improve reliability and consistency of testing processes 3. Allow manual testers do more complex & more suited for human kinds of testing (exploratory, usability etc.) Enforce SLAs (service level agreements) Bottom line is save your company $$$
Common Types of Automated Testing Unit Testing (xUnit, TestNG …) Performance Testing (LoadRunner, JMeter …) Web Service Testing (SOAPUI, HP ST, iTKO LISA…) Security Testing (WebInspect, WireShark…) Functional Testing  (via UI, API, Web Services… ) Component- level System- level Integration- level
Common Functional Automated Test Tools No GUI Object repository Only web-based application support Tool support is limited Good browser support Good language support (Java, Ruby,C# ) Can be easily extended as JUnit suite Open-source (no license cost) Selenium RC & IDE VisualBasic scripting is limited No IDE (changing in release 10) License cost Supports Web 2.0, Java or .NET applications Full GUI Object Map repository Seamless integration with QualityCenter HP/Mercury Quick Test Pro (QTP) Insufficient browser support License cost Built as Eclipse Plug-In with full IDE, Java support & Source Mgmt Supports Web 2.0, Java or .NET applications Full GUI Object Map repository IBM/Rational Functional Tester (RFT) Cons Pros Tool
Typical Test Automation Pitfalls You selected a Tool…now what? A tool is supposed to do it all, right… ? Don’t fall into tool vendor’s sales pitch …remember Capture & Playback is not real test automation According to recent IDT study ( www.idtus.com )
Tips for Test Automation Strategy * Essentially automated test system is a piece of  software  designed to test your application    treat it as such Evaluate  an automated tool POC (proof of concept) based on your native apps Choose a tool that fits your business requirements & internal technical expertise Plan  Establish  goals & objectives ; budget; use or hire  competent resources Be ready to have quality metrics to validate the ROI (return of investment)  Design  Keep in mind the user community of TA system (Usability) Choose an architecture that reduces  maintenance   &  extensible Implement   Practice OOD principles of  reusability  &  modularity   (employ encapsulation & abstraction) Introduce version control of your code Establish code review process Test & Maintain   Unit test your code Constantly re-evaluate reasons of maintenance & improve TA architecture to minimize maintenance.  Application  testability  usually plays a big factor. Evaluate defect rate with root cause analysis
Note: the testing tool is abstracted by higher-level framework component library
2 nd  Generation Automation Frameworks “Data-driven” Automation is data-centric Test Tool – dependent (due to flow control in the script) User defines just data sets to drive tests with Data is de-coupled from script & defined in external data source (Data pools, Excel spreadsheets etc. for data sets) Flow control (navigation) is normally done by the test script not via the data source Example: data set exercises creation of new sales accounts functionality; stored in a DB table account_data MA Boston 02111 2332 Washington st Mick Jagger Jr. RollingStones Inc. GA Atlanta 30075 5775 Main st Phil Collins Genesis Inc. State City Zip Street PrimarySalesPerson CompanyName
Java Code Snipet of Data-Driven RFT Script public   void  testMain(Object[] args)  { String name;String primarySalesPerson;String address;String zip;String city;String state; String query = &quot;Select * from account_data&quot;;String AccessDBPath = Constants.FL_DB_PATH; //Data abstraction class DataHandler – methods process data and return data values  DataHandler dlrAcctData =  new  DataHandler (AccessDBPath,query);  ArrayList listDlrAcctData = dlrAcctData.getRowsOfData(); try  { for  ( int  i=0;i<listDlrAcctData.size();i++){ coName = dlrAcctData.getValueForColumnName(i,“CompanyName&quot;); primarySalesPerson = dlrAcctData.getValueForColumnName(i,&quot;primarySalesPerson&quot;); Type.text(CustomerCreate. field_name (),coName ); Click.object(CustomerCreate. image_primarySalesPersonIcon () ); Type.text(text_employeeModalPanelCommonN(),primarySalesPerson); … } dlrAcctData .closeDB(); } …
3 rd   Generation Automation Framework “Keyword-Driven” Automation is action-centric Tool-agnostic (abstracted from tool if implemented correctly) Users  de-compose test cases  into  granular  &  re-usable  Action Keywords  The idea is for non-coders to be able to author automated test cases with Action Keywords User defines flow control of the test via Action Keywords Example:   Test Case “Verify Checking Account Balance” Enter  Username and Password and  Click  submit button (entire step 1 may become action  Login)  Enter  “Phil Collins” as a Sales Person and   Click   Submit button Verify  the Sales Person was successfully created and  Logout So you may want to choose the following re-usable action keywords: Login ;  Enter;   Click;   Verify; Logout
Benefits of “Keyword-Driven” Approach Test Case definition is abstracted from the tool and can reside in external data sources (DB tables, Excel spreadsheets ...) or Test Case Management Tool that supports keyword based test cases (QualityManager, QualityCenter …) Lands itself well with Agile methodology Keywords can be extended to emulate domain language Customers and non-technical testers can define tests that map to business workflow more easily Example of Keyword-driven test case: .url:=.*createdSalesPerStatus.html .id:=SubmitSalesPer Button Click CreateSalesPerson Click Submit 3 UserLogin Module .value:=User Created Successfully .id:=CreationStatus DIV VerifyExists CreateSalesPersonStatus Verify Sales Person Creation Successful  4   .value:=Phil Collins .text:=SalesPerName Field EnterText CreateSalesPerson Enter New Sales Person data 2 .text:=Login Successful .id:=LoginSubmit N/A Login Home Login 1 Expected Object Type Action Page Description Step
Java Code Snipet of Keyword Library Class package framework.keywords; … public class Verify { … public static boolean exists(GuiTestObject object) { logInfo(&quot;Action: VerifyExists&quot;); try { object.exists(); logInfo(&quot;Object Found&quot;); passed(); result = true;   } catch(NullPointerException e) { logError(&quot;Object Not Found&quot;); failed(); } return result; } }
Hybrid Test Automation Framework Combines the best of both worlds (Keyword-driven + Data-driven) User defines data sets to drive tests with User also defines flow control of the test via action keywords Data is separated from script and is stored external data source (DB tables, Excel spreadsheets, XML for data sets) with action keywords in addition to generic and test case specific data sets
Framework Type  Recommendations   Takes more effort to design & implement and may require more coding expertise Data driven iterations may not be implemented  Non-coders can author automated test cases with action keywords Makes it possible to scale Test Automation Creation & Execution  User defines flow control of the test via action keywords (Login, Click …) Creates Domain Language Powerful technique for Agile Testing Keyword-driven Takes the most effort to evolve and thus requires the most investment with design & implementation Non-coders can author automated test cases with action keywords User defines flow control of the test via action keywords (Login, Click …) Users can data-drive the iterations of test execution Data is separated from the script Hybrid Flow control is not abstracted & implemented in the script Difficult to use for non-coders Takes less time to design & implement compare to keyword or hybrid (less of initial investment) Data-driven Cons Pros Framework Type
Test Execution Phase Based on personal experience 20 step UI-driven test case would take about 2 minutes to execute with 1 run box To scale total test execution time linearly add run boxes to the pool, e.g. with 5 run boxes of the same HW grade you can execute up to  100 steps   in 2 minutes Now compare how long it would take a manual tester to execute 100 steps    that alone will self- justify value of test automation
Service Oriented Architecture Definition:  SOA is an architectural style whose goal is to achieve loose coupling among components which leads to greater re-use of business logic As a result , SOA Streamlines applications Standardizes multiple system interfaces between consumer and backend systems Centralizes commonly used functions  Provides a communication layer between the application  and backend systems After  SOA Application A DB Application B DB Application A Presentation Layer Application A DB Before  SOA (3-tier architecture) Application A Biz Logic Layer Application B DB Application B Biz Logic Layer Application A SOA Services Application B
Web Service versus GUI-based  Testing Web Service has no preventative input validation like the GUI Greater reliance on  Data  – data handling under positive, boundary, negative, null conditions  Impact:  Single low-quality service can impact  multiple  consuming clients Consuming  Client GetWeatherInfoByLocation (‘Atlanta’,‘MA’,’Mexico’) Web  Service ???
Challenges Testing SOA Testing Middleware/SOA is inherently more complex than testing traditional enterprise GUI-driven applications : Middleware is head-less (no GUI) and thus testing is similar to API Middleware is not built with viewer in mind hence messages require and return far more data (like XML) than human-oriented user interfaces That means: Greater need for SOA architectural and developer skills throughout the lifecycle of testing in a SOA Tester (WS-I, WSDL, SOAP, XML, Java, .NET) Greater need for collaborative cross-functional test teams The good news is: SOA testing will run it’s own Full Life Cycle Testing independent of the application testing Continuous testing across the delivery lifecycle must be part of quality management strategy – automation plays greater role especially with regression and performance
Layered Testing Approach Like an onion a deployed web service has many layers How do we approach testing complexity of web service layers ? A layered testing approach is also required (core component-level to integration-level to system-level testing).  More rigorous testing with completion of proper testing at each level Greater reliance on automated testing
Automating Testing of Web Service Components HP Service Test (WSDL-Generated TCs) Inbound Request  Service Operation  under test   Ex: NameandAddress Service 1 Using SOA test tool (HP Service Test) generate inbound service request based on SUT (Service Under Test) artifacts  i.e. WSDL, XSD schema, design documents and familiarity of source code.  Drive inbound requests parameters with negative, positive, boundary and null data values. Configure outbound response of SUT to point to calling client ( HP Service test) Response is validated via checkpoints in SOA Test Tool (HP Service Test) addressValidation 1 2 Outbound Response 2 Emulated Service Subscriber  Or Calling Client Web Service Operation under test 3 3 Test/Defect  Management System HP Quality Center  Test Exec  Result Log  Validate
Methodology to Reduce Test LifeCycle   and Accelerate Parallel Development - iTKO VSE DELAY Web Services (under construction) Time Time Front-End Dev & SOA Test Teams  DELAY Back-end under development/ 3 rd  Party  Service dependencies Virtualized Web Services based on WSDL Web Services DEV & TEST Teams Web Services DEV Team Front-End Dev & Web Service Test Teams  VSE Before After VSE
Calculating the ROI   Time Cumulated Costs ($) Initial Investment Automated Testing Manual Testing Cumulative Cost Saving ROI= Net Value / Investment Cost * The maintenance cost of TA is usually not trivial but if you keep enhancing your TA framework, improve application testability and overall testing processes high ROI is very much achievable
STAF – Software Test Automation Framework  http://staf.sourceforge.net/ Automated Testing Institute  http://www.automatedtestinginstitute.com/home/ LinkedIn User Groups http://www.linkedin.com/groups?home=&gid=159501&trk=anet_ug_hm http://www.linkedin.com/groups?home=& gid =46748&trk= anet_ug_hm Resources
Q  &  A Leonard Fingerman [email_address]
Bibliography Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality   by Thom Garrett, Elfriede Dustin;  ISBN-10:  0321580516 ;  ISBN-13:  978-0321580511   Agile Testing: A Practical Guide for Testers and Agile Teams   by Lisa Crispin, Janet Gregory  ISBN-10:  0321534468 ; ISBN-13:  978-0321534460  http://www.stpcollaborative.com/magazine
Ad

More Related Content

What's hot (20)

Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
Hai Tran Son
 
Test Automation
Test AutomationTest Automation
Test Automation
rockoder
 
Test automation methodologies
Test automation methodologiesTest automation methodologies
Test automation methodologies
Mesut Günes
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
Raymond Adrian (Rad) Butalid
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
Sun Technlogies
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8
a34sharm
 
Test automation process
Test automation processTest automation process
Test automation process
Bharathi Krishnamurthi
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
Mihai-Cristian Fratila
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
suwalki24.pl
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
Gaya1985
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
Ken McCorkell
 
Introduction to Software Test Automation
Introduction to Software Test AutomationIntroduction to Software Test Automation
Introduction to Software Test Automation
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Edureka!
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
Kaizenko
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Testing Services
Testing ServicesTesting Services
Testing Services
QA Programmer
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
Hai Tran Son
 
Test Automation
Test AutomationTest Automation
Test Automation
rockoder
 
Test automation methodologies
Test automation methodologiesTest automation methodologies
Test automation methodologies
Mesut Günes
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8
a34sharm
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
suwalki24.pl
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Archana Krushnan
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
Gaya1985
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
Ken McCorkell
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Edureka!
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
Kaizenko
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 

Similar to Test Automation Best Practices (with SOA test approach) (20)

Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
Margaret_Dickman
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
Globant
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
David Solivan
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEV
Krit Kamtuo
 
Resume_QA_8_Yrs_Exp_Vijay
Resume_QA_8_Yrs_Exp_VijayResume_QA_8_Yrs_Exp_Vijay
Resume_QA_8_Yrs_Exp_Vijay
Vijay Bichkar
 
Susan windsor soft test 16th november 2005
Susan windsor soft test   16th november 2005Susan windsor soft test   16th november 2005
Susan windsor soft test 16th november 2005
David O'Dowd
 
The first looks at VSTS2010
The first looks at VSTS2010The first looks at VSTS2010
The first looks at VSTS2010
Pascal van der Horst
 
Automation frameworks
Automation frameworksAutomation frameworks
Automation frameworks
Vishwanath KC
 
04 test controlling and tracking
04   test controlling and tracking04   test controlling and tracking
04 test controlling and tracking
Clemens Reijnen
 
Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]
Munirathnam Naidu
 
software testing technique
software testing techniquesoftware testing technique
software testing technique
Rana assad ali
 
Performance Engineering Basics
Performance Engineering BasicsPerformance Engineering Basics
Performance Engineering Basics
Impetus Technologies
 
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
QueBIT Consulting
 
Getting Started With QA Automation
Getting Started With QA AutomationGetting Started With QA Automation
Getting Started With QA Automation
Giovanni Scerra ☃
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
ukdpe
 
Test-Driven Development Introduction
Test-Driven Development IntroductionTest-Driven Development Introduction
Test-Driven Development Introduction
Samsung Electronics
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
veehikle
 
SPCA2013 - Test-driven Development with SharePoint 2013 and Visual Studio
SPCA2013 - Test-driven Development with SharePoint 2013 and Visual StudioSPCA2013 - Test-driven Development with SharePoint 2013 and Visual Studio
SPCA2013 - Test-driven Development with SharePoint 2013 and Visual Studio
NCCOMMS
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing
sthicks14
 
2016_George Baker
2016_George Baker2016_George Baker
2016_George Baker
George Baker
 
Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
Margaret_Dickman
 
Lightning Talks by Globant - Automation (This app runs by itself )
Lightning Talks by Globant -  Automation (This app runs by itself ) Lightning Talks by Globant -  Automation (This app runs by itself )
Lightning Talks by Globant - Automation (This app runs by itself )
Globant
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
David Solivan
 
Software Project Management - NESDEV
Software Project Management - NESDEVSoftware Project Management - NESDEV
Software Project Management - NESDEV
Krit Kamtuo
 
Resume_QA_8_Yrs_Exp_Vijay
Resume_QA_8_Yrs_Exp_VijayResume_QA_8_Yrs_Exp_Vijay
Resume_QA_8_Yrs_Exp_Vijay
Vijay Bichkar
 
Susan windsor soft test 16th november 2005
Susan windsor soft test   16th november 2005Susan windsor soft test   16th november 2005
Susan windsor soft test 16th november 2005
David O'Dowd
 
Automation frameworks
Automation frameworksAutomation frameworks
Automation frameworks
Vishwanath KC
 
04 test controlling and tracking
04   test controlling and tracking04   test controlling and tracking
04 test controlling and tracking
Clemens Reijnen
 
Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]
Munirathnam Naidu
 
software testing technique
software testing techniquesoftware testing technique
software testing technique
Rana assad ali
 
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
QueBIT Consulting
 
Getting Started With QA Automation
Getting Started With QA AutomationGetting Started With QA Automation
Getting Started With QA Automation
Giovanni Scerra ☃
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
ukdpe
 
Test-Driven Development Introduction
Test-Driven Development IntroductionTest-Driven Development Introduction
Test-Driven Development Introduction
Samsung Electronics
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
veehikle
 
SPCA2013 - Test-driven Development with SharePoint 2013 and Visual Studio
SPCA2013 - Test-driven Development with SharePoint 2013 and Visual StudioSPCA2013 - Test-driven Development with SharePoint 2013 and Visual Studio
SPCA2013 - Test-driven Development with SharePoint 2013 and Visual Studio
NCCOMMS
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing
sthicks14
 
Ad

Recently uploaded (20)

Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Ad

Test Automation Best Practices (with SOA test approach)

  • 1. Software Test Automation-Best Practices Leonard Fingerman Email: [email protected]
  • 3. Why Automate Testing ? Improve software quality while reducing time to market … not simply increase test coverage Improve reliability and consistency of testing processes 3. Allow manual testers do more complex & more suited for human kinds of testing (exploratory, usability etc.) Enforce SLAs (service level agreements) Bottom line is save your company $$$
  • 4. Common Types of Automated Testing Unit Testing (xUnit, TestNG …) Performance Testing (LoadRunner, JMeter …) Web Service Testing (SOAPUI, HP ST, iTKO LISA…) Security Testing (WebInspect, WireShark…) Functional Testing (via UI, API, Web Services… ) Component- level System- level Integration- level
  • 5. Common Functional Automated Test Tools No GUI Object repository Only web-based application support Tool support is limited Good browser support Good language support (Java, Ruby,C# ) Can be easily extended as JUnit suite Open-source (no license cost) Selenium RC & IDE VisualBasic scripting is limited No IDE (changing in release 10) License cost Supports Web 2.0, Java or .NET applications Full GUI Object Map repository Seamless integration with QualityCenter HP/Mercury Quick Test Pro (QTP) Insufficient browser support License cost Built as Eclipse Plug-In with full IDE, Java support & Source Mgmt Supports Web 2.0, Java or .NET applications Full GUI Object Map repository IBM/Rational Functional Tester (RFT) Cons Pros Tool
  • 6. Typical Test Automation Pitfalls You selected a Tool…now what? A tool is supposed to do it all, right… ? Don’t fall into tool vendor’s sales pitch …remember Capture & Playback is not real test automation According to recent IDT study ( www.idtus.com )
  • 7. Tips for Test Automation Strategy * Essentially automated test system is a piece of software designed to test your application  treat it as such Evaluate an automated tool POC (proof of concept) based on your native apps Choose a tool that fits your business requirements & internal technical expertise Plan Establish goals & objectives ; budget; use or hire competent resources Be ready to have quality metrics to validate the ROI (return of investment) Design Keep in mind the user community of TA system (Usability) Choose an architecture that reduces maintenance & extensible Implement Practice OOD principles of reusability & modularity (employ encapsulation & abstraction) Introduce version control of your code Establish code review process Test & Maintain Unit test your code Constantly re-evaluate reasons of maintenance & improve TA architecture to minimize maintenance. Application testability usually plays a big factor. Evaluate defect rate with root cause analysis
  • 8. Note: the testing tool is abstracted by higher-level framework component library
  • 9. 2 nd Generation Automation Frameworks “Data-driven” Automation is data-centric Test Tool – dependent (due to flow control in the script) User defines just data sets to drive tests with Data is de-coupled from script & defined in external data source (Data pools, Excel spreadsheets etc. for data sets) Flow control (navigation) is normally done by the test script not via the data source Example: data set exercises creation of new sales accounts functionality; stored in a DB table account_data MA Boston 02111 2332 Washington st Mick Jagger Jr. RollingStones Inc. GA Atlanta 30075 5775 Main st Phil Collins Genesis Inc. State City Zip Street PrimarySalesPerson CompanyName
  • 10. Java Code Snipet of Data-Driven RFT Script public void testMain(Object[] args) { String name;String primarySalesPerson;String address;String zip;String city;String state; String query = &quot;Select * from account_data&quot;;String AccessDBPath = Constants.FL_DB_PATH; //Data abstraction class DataHandler – methods process data and return data values DataHandler dlrAcctData = new DataHandler (AccessDBPath,query); ArrayList listDlrAcctData = dlrAcctData.getRowsOfData(); try { for ( int i=0;i<listDlrAcctData.size();i++){ coName = dlrAcctData.getValueForColumnName(i,“CompanyName&quot;); primarySalesPerson = dlrAcctData.getValueForColumnName(i,&quot;primarySalesPerson&quot;); Type.text(CustomerCreate. field_name (),coName ); Click.object(CustomerCreate. image_primarySalesPersonIcon () ); Type.text(text_employeeModalPanelCommonN(),primarySalesPerson); … } dlrAcctData .closeDB(); } …
  • 11. 3 rd Generation Automation Framework “Keyword-Driven” Automation is action-centric Tool-agnostic (abstracted from tool if implemented correctly) Users de-compose test cases into granular & re-usable Action Keywords The idea is for non-coders to be able to author automated test cases with Action Keywords User defines flow control of the test via Action Keywords Example: Test Case “Verify Checking Account Balance” Enter Username and Password and Click submit button (entire step 1 may become action Login) Enter “Phil Collins” as a Sales Person and Click Submit button Verify the Sales Person was successfully created and Logout So you may want to choose the following re-usable action keywords: Login ; Enter; Click; Verify; Logout
  • 12. Benefits of “Keyword-Driven” Approach Test Case definition is abstracted from the tool and can reside in external data sources (DB tables, Excel spreadsheets ...) or Test Case Management Tool that supports keyword based test cases (QualityManager, QualityCenter …) Lands itself well with Agile methodology Keywords can be extended to emulate domain language Customers and non-technical testers can define tests that map to business workflow more easily Example of Keyword-driven test case: .url:=.*createdSalesPerStatus.html .id:=SubmitSalesPer Button Click CreateSalesPerson Click Submit 3 UserLogin Module .value:=User Created Successfully .id:=CreationStatus DIV VerifyExists CreateSalesPersonStatus Verify Sales Person Creation Successful 4   .value:=Phil Collins .text:=SalesPerName Field EnterText CreateSalesPerson Enter New Sales Person data 2 .text:=Login Successful .id:=LoginSubmit N/A Login Home Login 1 Expected Object Type Action Page Description Step
  • 13. Java Code Snipet of Keyword Library Class package framework.keywords; … public class Verify { … public static boolean exists(GuiTestObject object) { logInfo(&quot;Action: VerifyExists&quot;); try { object.exists(); logInfo(&quot;Object Found&quot;); passed(); result = true; } catch(NullPointerException e) { logError(&quot;Object Not Found&quot;); failed(); } return result; } }
  • 14. Hybrid Test Automation Framework Combines the best of both worlds (Keyword-driven + Data-driven) User defines data sets to drive tests with User also defines flow control of the test via action keywords Data is separated from script and is stored external data source (DB tables, Excel spreadsheets, XML for data sets) with action keywords in addition to generic and test case specific data sets
  • 15. Framework Type Recommendations Takes more effort to design & implement and may require more coding expertise Data driven iterations may not be implemented Non-coders can author automated test cases with action keywords Makes it possible to scale Test Automation Creation & Execution User defines flow control of the test via action keywords (Login, Click …) Creates Domain Language Powerful technique for Agile Testing Keyword-driven Takes the most effort to evolve and thus requires the most investment with design & implementation Non-coders can author automated test cases with action keywords User defines flow control of the test via action keywords (Login, Click …) Users can data-drive the iterations of test execution Data is separated from the script Hybrid Flow control is not abstracted & implemented in the script Difficult to use for non-coders Takes less time to design & implement compare to keyword or hybrid (less of initial investment) Data-driven Cons Pros Framework Type
  • 16. Test Execution Phase Based on personal experience 20 step UI-driven test case would take about 2 minutes to execute with 1 run box To scale total test execution time linearly add run boxes to the pool, e.g. with 5 run boxes of the same HW grade you can execute up to 100 steps in 2 minutes Now compare how long it would take a manual tester to execute 100 steps  that alone will self- justify value of test automation
  • 17. Service Oriented Architecture Definition: SOA is an architectural style whose goal is to achieve loose coupling among components which leads to greater re-use of business logic As a result , SOA Streamlines applications Standardizes multiple system interfaces between consumer and backend systems Centralizes commonly used functions Provides a communication layer between the application and backend systems After SOA Application A DB Application B DB Application A Presentation Layer Application A DB Before SOA (3-tier architecture) Application A Biz Logic Layer Application B DB Application B Biz Logic Layer Application A SOA Services Application B
  • 18. Web Service versus GUI-based Testing Web Service has no preventative input validation like the GUI Greater reliance on Data – data handling under positive, boundary, negative, null conditions Impact: Single low-quality service can impact multiple consuming clients Consuming Client GetWeatherInfoByLocation (‘Atlanta’,‘MA’,’Mexico’) Web Service ???
  • 19. Challenges Testing SOA Testing Middleware/SOA is inherently more complex than testing traditional enterprise GUI-driven applications : Middleware is head-less (no GUI) and thus testing is similar to API Middleware is not built with viewer in mind hence messages require and return far more data (like XML) than human-oriented user interfaces That means: Greater need for SOA architectural and developer skills throughout the lifecycle of testing in a SOA Tester (WS-I, WSDL, SOAP, XML, Java, .NET) Greater need for collaborative cross-functional test teams The good news is: SOA testing will run it’s own Full Life Cycle Testing independent of the application testing Continuous testing across the delivery lifecycle must be part of quality management strategy – automation plays greater role especially with regression and performance
  • 20. Layered Testing Approach Like an onion a deployed web service has many layers How do we approach testing complexity of web service layers ? A layered testing approach is also required (core component-level to integration-level to system-level testing). More rigorous testing with completion of proper testing at each level Greater reliance on automated testing
  • 21. Automating Testing of Web Service Components HP Service Test (WSDL-Generated TCs) Inbound Request Service Operation under test Ex: NameandAddress Service 1 Using SOA test tool (HP Service Test) generate inbound service request based on SUT (Service Under Test) artifacts i.e. WSDL, XSD schema, design documents and familiarity of source code. Drive inbound requests parameters with negative, positive, boundary and null data values. Configure outbound response of SUT to point to calling client ( HP Service test) Response is validated via checkpoints in SOA Test Tool (HP Service Test) addressValidation 1 2 Outbound Response 2 Emulated Service Subscriber Or Calling Client Web Service Operation under test 3 3 Test/Defect Management System HP Quality Center Test Exec Result Log Validate
  • 22. Methodology to Reduce Test LifeCycle and Accelerate Parallel Development - iTKO VSE DELAY Web Services (under construction) Time Time Front-End Dev & SOA Test Teams DELAY Back-end under development/ 3 rd Party Service dependencies Virtualized Web Services based on WSDL Web Services DEV & TEST Teams Web Services DEV Team Front-End Dev & Web Service Test Teams VSE Before After VSE
  • 23. Calculating the ROI Time Cumulated Costs ($) Initial Investment Automated Testing Manual Testing Cumulative Cost Saving ROI= Net Value / Investment Cost * The maintenance cost of TA is usually not trivial but if you keep enhancing your TA framework, improve application testability and overall testing processes high ROI is very much achievable
  • 24. STAF – Software Test Automation Framework http://staf.sourceforge.net/ Automated Testing Institute http://www.automatedtestinginstitute.com/home/ LinkedIn User Groups http://www.linkedin.com/groups?home=&gid=159501&trk=anet_ug_hm http://www.linkedin.com/groups?home=& gid =46748&trk= anet_ug_hm Resources
  • 25. Q & A Leonard Fingerman [email_address]
  • 26. Bibliography Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality by Thom Garrett, Elfriede Dustin; ISBN-10: 0321580516 ; ISBN-13: 978-0321580511 Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin, Janet Gregory ISBN-10: 0321534468 ; ISBN-13: 978-0321534460 http://www.stpcollaborative.com/magazine