Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees.

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

Test process essentials Riitta Viitamäki,
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
SDLC – Beyond the Waterfall
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project.
Software Architecture Prof.Dr.ir. F. Gielen
Alternate Software Development Methodologies
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
Fundamentals of Information Systems, Second Edition
Introduction to Systems Analysis and Design
Introduction to Software Testing
Types and Techniques of Software Testing
Software Testing & Strategies
Design, Implementation and Maintenance
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
S/W Project Management
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Testing Lifecycle Practice
Dr Andy Brooks1 FOR0383 Software Quality Assurance Lecture 1 Introduction Forkröfur/prerequisite: FOR0283 Programming II Website:
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
TESTING.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Testing Life Cycle
CPIS 357 Software Quality & Testing
Introduction Telerik Software Academy Software Quality Assurance.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
End HomeWelcome! The Software Development Process.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Testing Workflow In the Unified Process and Agile/Scrum processes.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Software Construction Lecture 18 Software Testing.
Systems Life Cycle A2 Module Heathcote Ch.38.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
CHAPTER 9: VERIFICATION AND VALIDATION 1. Objectives  To introduce software verification and validation and to discuss the distinction between them 
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Smart Home Technologies
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
ICT Systems and Principles Introduction. Timetable Thursday 9:00 -11:00 Customer Support (Rachelle Berry) 11:00 -12:00 Tutorial (Rachelle Berry) 12:00.
Software Testing History, Trends, Perspectives – a Brief Overview.
Embedded Systems Software Engineering
Items to consider before automating an application
Methodologies and Algorithms
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
SOFTWARE TESTING OVERVIEW
Systems Analysis and Design
CHAPTER 2 Testing Throughout the Software Life Cycle
Important Software Performance Testing That Ensure High Quality Solutions.
Strategies For Software Test Documentation
Introduction to Software Testing
Fundamental Test Process
CS240: Advanced Programming Concepts
Software Testing Lifecycle Practice
Think about your view of QA
Presentation transcript:

Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees

What is test automation? “In software testing, test automation is the use of special software to control the execution of tests and the comparison of actual outcomes with predicted outcomes.” – Wikipedia, 12/06/2015 Test automation is used to automate tasks that happen often where a test process is in place, or a process that would be difficult to do manually.

THE AUTOMATED TEST LIFECYCLE METHODOLOGY (ATLM) structured methodology geared toward ensuring successful implementation of automated testing

Advantages of Automation Test faster Testing a string table with a program would always be quicker than by hand. Test more Faster testing allows for broader testing scope. Machines can find defects a human technician either may not look for or accurately be able to test.

Advantages of Automation Potential observations: Fixable bug finding rate Find rate spikes Fix rate Testing being made possible Nightmares averted Test cycle time

Advantages of Automation Potential observations (cont.): Development and test cycle time Management confidence Technical support costs Customer retention Reputation Delivered solutions

Disadvantages of Automation GUI test procedures may not survive some development styles e.g. Agile, Extreme Programming, etc. Additional code must be maintained Technicians may adapt to changes in test procedure rather than changes in the tested program Automated testing may miss things that a human tester would be able to find

Disadvantages of Automation Very expensive In some cases, automation is not cost-effective Regression testing and reduced test time helps offset the cost Not everything can be automated e.g. password input

Types of Automation GUI testing API testing Black box testing Data-driven testing

What should be tested? Product installation Test data creation GUI interaction Problem detection Defect logging

Types of Automated Tests Code Auditing Coverage Monitor Functional Tests Load Tests Test Management

Code Auditing Automatic qualification testing Ensures compliance of code to specified standards

Coverage Monitor Determines quantitative measure of code coverage when tests are ran. Very valuable for white-box testing

Functional Tests Aimed at examining overall functionality of the product Replaces manual black-box testing Only focuses on externally visible behavior

Load Tests Testing the application under heavy loads and measures response. Can simulate many aspects Change of hardware Change of scenario Virtual events

Test Management Involves people carrying out tests and correcting the detected errors This test monitors performance of every item on test case files

Test Automation in Extreme Programming Test-driven development (TDD) Write a failing test, then write code that will pass the test Regression testing Test automation fits well into regression testing and is performed frequently in XP

Test Automation in Extreme Programming From the report Agile Test Automation by James Bach: One “toolsmith”, or dedicated programmer, should be appointed to the testing team Provides tool support for entire test project, not just test execution Reports to requests made by testers Solutions valued based on how much they help testers and test managers perform their jobs Focus on short term testing

Toolsmith’s Duties in Test Automation Respond rapidly to requests for assistance from testers Seek out test productivity problems Investigate possible solutions in concert with testers Apply technology to improve the test process

Toolsmith’s Duties in Test Automation Advocate for specific testability features in products Research available tools and learn how to use them Gather tools that developers or testers produce Review upcoming product plans to assess automation possibilities

Risks to Consider with Agile Automation Testers must be familiar with testing or automation will not cause significant improvements in productivity The number of test cases created or executed in a day can be very misleading and can lead to the number of tests more important than the errors that the tests find. Testers may not want to work with technicians. Cooperation is paramount or the system will fail.

Risks to Consider with Agile Automation Technicians may deliver testing solutions that are too maintenance intensive when compared to the value they provide The technicians won’t be the end-all for test innovation; cooperation will help pool the knowledge to be able to create efficient and effective test solutions.

Conclusion Test automation lets you test more software faster Really good for regression testing but must be careful how it’s implemented Only worth using in Agile if implemented in fewer than 40 man-hours When used properly, it helps create better quality software

Sources Bach, J. (2003, December 1). Agile Test Automation. Retrieved December 6, 2015, from Haria, M. (2009). Automated Software Testing. Retrieved December 6, 2015, from mxh06u.doc mxh06u.doc