Software Development Tools

Similar documents
Professional Java Tools for Extreme Programming. Ant, XDoclet, JUnit, Cactus, and Maven

Java Software Quality Tools and techniques

Web Applications Testing

Automation using Selenium

Hudson Continous Integration Server. Stefan Saasen,

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

How To Write Unit Tests In A Continuous Integration

Testing Tools Content (Manual with Selenium) Levels of Testing

Software Quality Exercise 2

SOA Solutions & Middleware Testing: White Paper

WEB DEVELOPER Reports to: Technical Lead. Digital and Media

DESIGN OF AUTOMATION SCRIPTS EXECUTION APPLICATION FOR SELENIUM WEBDRIVER AND TestNG FRAMEWORK

Performance Testing and Optimization in Web-Service Based Applications

Continuous Integration

Testing Rails. by Josh Steiner. thoughtbot

Apache Jakarta Tomcat

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

SOFTWARE TESTING TRAINING COURSES CONTENTS

GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS Software AG. All rights reserved. For internal use only

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

Certified Selenium Professional VS-1083

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Experiences with Online Programming Examinations

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

AUTOMATING THE WEB APPLICATIONS USING THE SELENIUM RC

Realizing Continuous Performance Management

Modern Software Development Tools on OpenVMS

Table of Contents. LESSON: The JUnit Test Tool...1. Subjects...2. Testing What JUnit Provides...4. JUnit Concepts...5

Digital Asset Management System Quality Assurance Testing A Case Study

Aaron Evans Software Quality Assurance, Test Automation, SDET, Web Developer

Effective unit testing with JUnit

Jenkins on Windows with StreamBase

GUI Test Automation How-To Tips

A Practical Guide to implementing Agile QA process on Scrum Projects

GLOBAL JOURNAL OF ENGINEERING SCIENCE AND RESEARCHES

Th3 - Open Source Tools for Test Management

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

The AppSec How-To: Achieving Security in DevOps

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Team Name : PRX Team Members : Liang Yu, Parvathy Unnikrishnan Nair, Reto Kleeb, Xinyi Wang

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming

Practical QA in a Nutshell

Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.

Content. Development Tools 2(63)

Automated Web Testing with Selenium

Upping the game. Improving your software development process

Lab work Software Testing

Hudson configuration manual

Automating Functional Tests Using Selenium

Web Programming Languages Overview

"Build and Test in the Cloud "

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Benefits of Test Automation for Agile Testing

Continuous integration with Jenkins CI

Introduction to Automated Testing

Automated Integration Testing & Continuous Integration for webmethods

Extreme Programming and Embedded Software Development

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Test Automation Tool comparison HP UFT/QTP vs. Selenium - Prashant Malhotra

Continuous integration End of the big bang integration era

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

In depth study - Dev teams tooling

Business & Computing Examinations (BCE) LONDON (UK)

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

zen Platform technical white paper

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Meta-Framework: A New Pattern for Test Automation

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

Unit Testing JUnit and Clover

Test-Driven Development

Applets, RMI, JDBC Exam Review

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the

Chapter 1. Introduction to web development

LECTURES NOTES Organisational Aspects of Software Development

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

SOA & Web Services Development Survey

An Introduction to Software Development Process and Collaborative Work

Maven or how to automate java builds, tests and version management with open source tools

Transcription:

Software Development Tools COMP220/COMP285 Sebastian Coope More on Automated Testing and Continuous Integration These slides are mainly based on Java Tools for Extreme Programming R.Hightower & N.Lesiecki. Wiley, 2002 1

Automated Testing Testing software continuously validates that - the software works and - meets the customer s requirements Automating the tests ensures that - testing will in fact be continuous Without testing, a team is just guessing that its software meets those requirements. 2

Need for automation Humans make mistakes Humans sometimes don t care! Manual testing is slow, hard to gather statistics Automated testing can be done at all hours Automated testing is fast, 10,000 tests/second Regression testing builds up with the project size 3

Tests and refactoring Refactoring is changing existing code for simplicity, clarity and/or feature addition. - cannot be accomplished without tests. Even the most stable or difficult-to-change projects require occasional modification. That is where automated testing comes in. 4

Tests and refactoring Comprehensive tests (running frequently) - verify how the system should work, - allow the underlying behaviour to change freely. Any problems introduced during a change are - automatically caught by the tests. With testing, programmers - refactor with confidence, - the code works, and - the tests prove it 5

Types of Automated Testing 1. Unit Testing testing of a unit of a code - everything that could possibly break usually exercises all the methods in public interface of a class verifies that - the unit of code behaves as expected with this verification - the public interface gains meaning 6

Types of Automated Testing Unit Testing part of the cycle of everyday coding writing tests before coding test as a guide to assist in implementation 7

Types of Automated Testing Unit Testing tests grouped into test suites run multiple times per day all tests should always pass results in high quality system leads to clean architecture 8

Types of Automated Testing Unit Tests: JUnit tool is lightweight unit testing framework for testing Java code implemented itself also in Java by - Erich Gamma and Kent Beck 9

Types of Automated Testing 2. Integration Tests Unit tests are deliberately supposed to be - isolated and - as independent as possible, Integration testing ensures that - all the code cooperates, and - differences between expectation and reality are precisely localized. 10

Types of Automated Testing Integration Tests: Cactus tool Testing of Web applications with multiple tiers becomes significantly more difficult. More (and more complex) testing tools are needed. Cactus is such a tool extending JUnit - to support testing server-side code (specific classes and methods). 11

Types of Automated Testing 3. Acceptance/Functional Tests Functional testing ensures that - the whole system behaves as expected - called also acceptance testing to verify for the customer that the system is complete - For example, an e-commerce web site is not done until it - can log in users, - display products, and - allow online ordering 12

Types of Automated Testing Acceptance/Functional Tests: HttpUnit There exists no universal acceptance testing tool to be used for arbitrary applications But we have HttpUnit as a specialised Acceptance/Functional testing tool for programmatic calls to Web resources and inspection of the responses 13

Types of Automated Testing Acceptance/Functional Tests: Cactus vs. HttpUnit - Both these tools test Web application components - Cactus is more unit-oriented to exercise the behaviour of specific classes and methods - HttpUnit is designed to exercise requests to specific resources on a server 14

Cactus Works with Java servlets Cactus will Create JVM for client (prepares the request) Create JVM for server (handles request) Run test across both server and client Essentially tests across a Java servlet interface Limitation Servlets only very coupled with Java technology 15

HttpUnit Makes requests to external website Relies on Java to make requests External website can be written using anything you like PHP, ASP.NET, Perl, Ruby on rails 16

HttpUnit example WebConversation wc = new WebConversation(); WebResponse resp = wc.getresponse("http://www.google.com/"); WebLink link = resp.getlinkwith("about Google"); link.click(); WebResponse resp2 = wc.getcurrentpage(); 17

Web testing frameworks HttpUnit Low level simplistic web API Poor Javascript support HtmlUnit A lot better Javascript support Better support at the document level JWebUnit Essentially a wrapper for HtmlUnit Selenium (Browser based test frame-work) 18

Types of Automated Testing 4. Performance Tests: JUnitPerf and JMeter - the most functional system in the world won t be useful if end users give up on the software because of poor performance 19

Types of Automated Testing Performance Tests: JUnitPerf and JMeter JUnitPerf does - unit performance testing - it decorates existing JUnit tests so that they fail if running times exceed expectations - Is for Java testing, not web testing - supports refactoring by verifying that performance-critical code remains within expected boundaries 20

Types of Automated Testing Performance Tests: JUnitPerf and JMeter - JMeter provides - functional performance testing times to requests sent to a remote server like: the Web server will maintain a three-second response time to requests with a 150 users simultaneous load Jmeter is Site agnostic (code can be PHP etc.) Does NOT run Javascript 21

Continuous Integration Continuous Integration: - building a complete copy of the system so far (and running its full test suite) - several times per day - to be sure that the current version of the system is ready to walk out the door at any moment - should be relatively automatic, or no one will ever do it 22

Continuous Integration Continuous Integration: - allows the customer and team to see the progress, - integration bugs are reduced, and - the tests run frequently - reduces integration pain: makes sure the incompatible dance partners meet within hours or minutes How to make it automatic? 23

Continuous Integration & Ant Ant will help! - Unlike many other practices of XP, continuous integration is mainly a technical problem - These lectures will cover Ant, the emerging standard for build automation in Java - Ant allows to invoke tests - Ant is cross-platform and easy to extend and modify 24

Continuous Integration & Ant Ant performs all the basic tasks of a build tool: - compilation, - archiving, - classpath management, - supports testing - FTP, etc. All of this in an automatic way! 25

Continuous Integration & Ant With a single Ant command, a Java application can be - built, - customized to its intended environment, - tested, and - deployed to a remote server 26

Testing and Continuous Integration: Software Tools Amongst all these testing and integration tools, we will devote the most part of our lectures to Ant, which can also invoke JUnit. We will also consider Eclipse Integrated Development Environment (IDE) mainly for Java programs which can also invoke both JUnit and Ant. 27