Testing tools Jonas Minelga, IFME-0/2. Why do we need testing tools? Testing is faster Testing is cheaper Testing is more effective We get better quality.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Testing and Quality Assurance
Programming Basic Concepts © Juhani Välimäki 2003.
Systems Analysis, Prototyping and Iteration Systems Analysis.
Abirami Poonkundran 2/22/10.  Goal  Introduction  Testing Methods  Testing Scope  My Focus  Current Progress  Explanation of Tools  Things to.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Software Testing Prasad G.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Types and Techniques of Software Testing
Bottom-Up Integration Testing After unit testing of individual components the components are combined together into a system. Bottom-Up Integration: each.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
By Ryan Mowry.  Graphical models of system  Entire system or just parts  Complex systems easier to understand  “Capture key requirements and demonstrate.
Your Interactive Guide to the Digital World Discovering Computers 2012.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Computer Programming 12 Mr. Jean March 3 rd, 2014.
System/Software Testing
Testing Tools. Categories of testing tools Black box testing, or functional testing Testing performed via GUI. The tool helps in emulating end-user actions.
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
Software testing.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Introduction to Unit Testing Jun-Ru Chang 2012/05/03.
Categories of Testing.
Automated SW testing Lukáš Miňo
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.
(1) Automated Quality Assurance Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
Testing in NetBeans. SWC Testing The ideal test: When the test is passed, the product is ready for delivery! Ideal – but (almost) impossible –Number of.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
What is Testing? Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Architecture Analysis Techniques
Black Box Testing : The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Click to add text Systems Analysis, Prototyping and Iteration.
Software Engineering Saeed Akhtar The University of Lahore.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Unit Testing by Jon Edgar. Structure of Presentation Structure What is Unit Testing? Worked Example Extreme Programming (XP) Implementation Limitation.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Net-centric Computing Web Services. Lecture Outline  What is Web Service  Web Service Architecture  Creating and using Java Web Services  Apache Axis.
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees.
Software Testing By Souvik Roy. What is Software Testing? Executing software in a simulated or real environment, using inputs selected somehow.
Testing PA165 Dec 9, 2014 Petr Adámek, Tomáš Pitner.
Automated Software Testing
Development and Testing Ch4.1. Algorithm Analysis
Quality Management Perfectqaservices.
Software Testing.
Some Simple Definitions for Testing
WHITEBOX TESTING APPROACH
CSE 403 Lecture 13 Black/White-Box Testing Reading:
Software Verification and Validation
POWERPOINT PRESENTATION
Software Verification and Validation
Automated test.
Software Verification and Validation
Java & Testing.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Automated test.
Chapter 10: Testing and Quality Assurance
Presentation transcript:

Testing tools Jonas Minelga, IFME-0/2

Why do we need testing tools? Testing is faster Testing is cheaper Testing is more effective We get better quality software for almost the same price.

Types of testing tools Unit testing tools Model-based testing tools Functional (GUI) testing tools Non-functional testing tools Code analysis testing tools

Unit testing Unit testing is a method by which individual units of source code are tested to determine if they are fit for use. interface Adder { int add(int a, int b); } class AdderImpl implements Adder { int add(int a, int b) { return a + b; } } interface Adder { int add(int a, int b); } class AdderImpl implements Adder { int add(int a, int b) { return a + b; } }

Unit testing public class TestAdder { public void testSum() { Adder adder = new AdderImpl(); assert(adder.add(1, 1) == 2); assert(adder.add(1, 2) == 3); assert(adder.add(2, 2) == 4); assert(adder.add(0, 0) == 0); assert(adder.add(-1, -2) == -3); assert(adder.add(-1, 1) == 0); assert(adder.add(1234, 988) == 2222); } public class TestAdder { public void testSum() { Adder adder = new AdderImpl(); assert(adder.add(1, 1) == 2); assert(adder.add(1, 2) == 3); assert(adder.add(2, 2) == 4); assert(adder.add(0, 0) == 0); assert(adder.add(-1, -2) == -3); assert(adder.add(-1, 1) == 0); assert(adder.add(1234, 988) == 2222); }

Unit testing Tools: csUnit, Nunit, NUnitASP, EMTF, CppUnit, Cput, C++test, UnitTest++, Dunit, Jtest, JUnit, TestNG, NUTester, JSUnit, QUnit, jsUnity… Today we have unit testing tools for more than 70 programming languages.

Model-based testing Model-based testing is an approach in which you define the behavior of a system in terms of actions that change the state of the system. Such a model of the system results in a well-defined Finite State Machine (FSM) which helps us to understand and predict the system’s behavior.

Model-based testing Steps: 1.Build the model; 2.Generate expected inputs; 3.Generate expected outputs; 4.Run tests; 5.Compare actual outputs with expected outputs; 6.Decide on further actions (modify the model, generate more tests, stop testing and etc.)

Model-based testing Advantages: Forces detailed understanding of the system behavior; Early bug detection (which is much cheaper); Test suite grows with the product; Manage the model instead of the cases (useful when features changing constantly); Can generate endless tests (since test cases are machine generated);

Model-based testing Tools: MaTeLo, SpecExplorer, GraphWalker…

Functional (GUI) testing Functional testing is a type of black box testing that bases its test cases on the specifications of the software component under test. Functions are tested by feeding them input and examining the output, and internal program structure is rarely considered.

Functional (GUI) testing public void testAddUserFail() throws Exception { solo.sendKey(Solo.MENU); solo.clickOnText(“Add”); Assert.assertTrue(solo.searchText(“Name:”)); Assert.assertTrue(solo.searchText(“Surname:”)); solo.clickOnText(“Ok”); Assert.assertTrue(solo.searchText(“Error”)); } public void testAddUserFail() throws Exception { solo.sendKey(Solo.MENU); solo.clickOnText(“Add”); Assert.assertTrue(solo.searchText(“Name:”)); Assert.assertTrue(solo.searchText(“Surname:”)); solo.clickOnText(“Ok”); Assert.assertTrue(solo.searchText(“Error”)); }

Functional (GUI) testing Tools: Abbot, AutoHotkey, CubicTest, Dogtail, FitNesse, Linux Desktop Testing Project, Maveryx, Qaliber, Selenium, Robotium…

Non-functional testing Non-functional testing is the testing of a software application for its non-functional requirements.

Non-functional testing Non-Functional Testing covers: Load and Performance Testing Ergonomics Testing Stress & Volume Testing Compatibility & Migration Testing Data Conversion Testing Security / Penetration Testing Operational Readiness Testing Installation Testing Security Testing

Non-functional testing Tools: AppLoader, IBM Rational Performance Tester, Jmeter, LoadRunner, Apache Bench, Httpperf, SLAMD…

Code analysis Static code analysis. A methodology of detecting errors in program code based on the programmer's reviewing the code marked by the analyzer in those places where potential errors may occur.

Code analysis The earlier an error is determined, the lower is the cost of its correction. Correction of an error at the testing stage is ten times more expensive than its correction at the construction (coding) stage.

Code analysis Tools: Copy/Paste detector, Sonar, Yasca, FxCop, Gendarme, StyleCop, cppcheck, Checkstyle, FindBugs, Hammurapi, Closure Compiler, JSLint…

Questions?

Questions Why do we need testing tools? List types of testing tools. What is static code analysis? What are the steps of model-based testing? What non-functional testing covers?