CSC444F'06Lecture 81 Testing. CSC444F'06Lecture 82 Quality Assurance for Software Humans are fallible. –Infeasible to completely fix the humans –Need.

Slides:



Advertisements
Similar presentations
By Rick Clements Software Testing 101 By Rick Clements
Advertisements

Making the System Operational
Configuration management
Configuration management
Test-First Programming. The tests should drive you to write the code, the reason you write code is to get a test to succeed, and you should only write.
Test process essentials Riitta Viitamäki,
Chapter 4 Quality Assurance in Context
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Execution and Reporting Adrian Marshall.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Automated Unit Testing. Test Automation Manual testing is laborious and time consuming. Computer automation has transformed many sectors of our economy.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Software Testing & Strategies
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
Separating VUI from business logic Caller Experience-centered design approach Alex Kurganov, CTO Parus Interactive
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Testing Life Cycle
S oftware Q uality A ssurance Part One Reviews and Inspections.
CSC444F'06Lecture 111 Process Control. CSC444F'06Lecture 112 The Process Document A document that concisely describes the steps we go through to produce.
Integrating Automation into Manual Testing
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
 CS 5380 Software Engineering Chapter 8 Testing.
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.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Assurance Session 13 INFM 603. Bugs, process, assurance Software assurance: quality assurance for software Particularly assurance of security.
Automated Testing Presentation to EPICS Collaboration Meeting DESY Paul Gibbons PhD Diamond Light Source Ltd.
LCG-SPI: SW-Testing LCG AppArea internal review (20/10/03)
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
M Gallas CERN EP-SFT LCG-SPI: SW-Testing1 LCG-SPI: SW-Testing QMTest test framework LCG AppArea meeting (16/07/03) LCG/SPI LCG Software.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
EMBEDDED REAL-TIME, INC. December 8, 2015 Java Unit Mark Mosher Rochester Java Users Group.
CSC444F'05Lecture 71 Source Control & Build. CSC444F'05Lecture 72 Source Control THE most important tool for commercial software development. Source –as.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Approaches to ---Testing Software Some of us “hope” that our software works as opposed to “ensuring” that our software works? Why? Just foolish Lazy Believe.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
Software Quality Assurance and Testing Fazal Rehman Shamil.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
CS 160 and CMPE/SE 131 Software Engineering April 12 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Software Engineering Lecture 11 Software Testing Presenter: Josef Hallberg 1.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Test Granularities Unit Testing and Automation
Software Engineering (CSI 321)
Approaches to ---Testing Software
Chapter 8 – Software Testing
Verification and Testing
Leanne Guy EGEE JRA1 Test Team Manager
Maintaining software solutions
Testing and Test-Driven Development CSC 4700 Software Engineering
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Bringing more value out of automation testing
CMPE/SE 131 Software Engineering April 11 Class Meeting
Presentation transcript:

CSC444F'06Lecture 81 Testing

CSC444F'06Lecture 82 Quality Assurance for Software Humans are fallible. –Infeasible to completely fix the humans –Need to double and triple check their work to find the problems Testing –Running the software to see if it works the way it is supposed to. Works according to specifications Ensures specifications are reasonable (that they solve the intended problem) Reviews –Inspecting written work products looking for errors requirements, specifications, designs, and code Proofs –Proving that the software behaves according to a written, formal specification Important in control systems and other critical software amenable to proof Useful for general-purpose software as well

CSC444F'06Lecture 83 Unit Test Testing performed by the coder as they are coding. Will test in their dev debug build Will want to build “test scaffolding” to test the code they have written independent of the final application. –Can use pre-build unit testing frameworks such as xUnit (Kent Beck – Extreme Programming) JUnit, CUnit, CPPUnit, PyUnit Test::Unit, VbUnit, … –Best practices is to not just test and discard, but consistently maintain the automated unit tests and have them execute after every nightly build. –Try to break dependence on any other modules, use “mockups” instead. –Catches problems very early, right at the source. –Confident in changing a module –Living “documentation” of how to use a module –Strengthens interface v.s. implementation PatternPurpose FixtureCreate a common test fixture. Test CaseCreate the stimulus for a test case. CheckCheck the response for a test case. Test SuiteAggregate Test Cases.

CSC444F'06Lecture 84 Component or Function Test Started when a feature is relatively complete and stable. Occurs during coding phase (pre-dcut). Performed by a tester, not by the coder. Uses a nightly dev release build. Tester will: –try out those parts of the feature that the coder says are supposed to work –communicate issues back to the coder in an informal fashion i.e., not counted as “defects” yet –re-test as coder works out issues –develop a test plan for the feature a document describing how the feature will be tested –develop automated tests for the feature

CSC444F'06Lecture 85 Integration Test After dcut. All features of all executables have been coded Testers begin executing their test plans Test that the features work together as expected Problems are recorded as formal “defects”. System Test As the system stabilizes. Tests of full production installs Tests on how this application works with other related applications Final Release Test Last minute checklist before a release goes out the door

CSC444F'06Lecture 86 Regression Testing Tests made to ensure that functionality that once worked continues to work. Test made to ensure that previously discovered and corrected defects do not re-appear. –a fertile source of defects Can be performed manually –but would take too long

CSC444F'06Lecture 87 Automated Regression Testing An extension of the nightly builds Software scripts will execute a set series of tests and report the results back into a database QA will examine the results each morning –4 reasons for a failure: the function was broken the function was changed the function was improved the test is faulty The function of the test team is to ensure good coverage on automated regression tests –each new function should get a suite of regression tests should be formalized in the feature creation process –each defect should get a test that would have caught it should be formalized in the defect resolution process

CSC444F'06Lecture 88 Performance Regressions Easy to build test cases and forget to measure the time it takes to execute them Systematically –collecting this information, –consolidating it, –and reporting on it will show up performance trends Required because sometimes coders will check-in a change that looks to be functionally ok, but has very negative performance implications –e.g., if coder only tested on a few simple test cases and did not notice because the run-time was swamped by the overhead

CSC444F'06Lecture 89 Memory Leak Regressions Run a special version of the software, instrumented to find memory leaks, bad memory allocation errors, and bad pointer chasing –e.g., Purify from IBM/Rational/Pure Runs slowly, but can use a representative sample of the nightly regression tests.

CSC444F'06Lecture 810 Benefits of Regression Testing Locks-in quality –once you achieve quality, you don’t backslide –everybody focuses on new features and forgets the old Finding defects sooner –finds the defect nearest the point in time it was injected –freshest in the coder’s mind –least expensive time to fix it Development aid –can work on complex, central bits of the code without fear of breaking something major on not finding out Releasing –if need a last minute critical defect fix to release –if no/poor a.r.t., might have to delay until re-tested

CSC444F'06Lecture 811 Regression Coverage To manage a program to institute or improve automated regression testing, you require a coverage metric. What % of the application is tested. –can count functions from the outside coverage of all functions # of tests per function –can count lines of code traversed excellent coverage metric will not necessarily get all combinations Coverage may refer to –baselined test to see if results are the same each day –validated baselined + baseline has been validated to be correct

CSC444F'06Lecture 812 GUI versus Scripting for A.R.T. 2 general approachs to testing GUI-based apps: –use a GUI test tool pumps UI events at the app extracts results from text widgets, bitmaps, files Problems: –very sensitive to changes in the gui –very sensitive to changes in gui sequencing –many false positives –costly to maintain –easy to drive the app, hard to see if results are correct –hard to get at the results –throw it all away if make a big gui change –architect to test at a layer just beneath the GUI create an a.r.t. API might use an embedded interpreter –Perl, Python, VBScript might hit the app from outside –COM –C/C++ API Problems: –not testing the gui, testing something a bit different –coders need to develop and maintain APIs

CSC444F'06Lecture 813 web browser test marshal test driver test plugin Test Platform RDBMS for test data test service web server Test Server application under test COM test data and baselines (from source control) results log result files sccs service depot Source Code Server A.R.T. Architecture execute nightly, and from dev/test desktops cross-platform plug-ins for new types of tests extreme fault tolerance –constantly monitoring itself –re-start if hangs or dies –try last test again –if fails then go on log all actions –maintain history prior to a crash records results to an rdbms records timings as well reports accessible via web browsers all test cases and baselines in source control