Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Supplemental Testing CSE CSE 2102 2102 Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-2155 Storrs, CT 06269-2155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 – 4818 (860) 486 – 3719 (office) 1 Overview of Supplemental Testing CSE 2102 Explore Five Different Categories of Testing Unit and White-Box Testing User Interface Testing Black Box Testing General Performance Testing Software Quality Attainment Discuss each Category in Detail Available Tools and Techniques Examples of Test Cases/Results 2 Unit and White-Box Testing CSE 2102 Focused on Functional and Correctness of Code Procedural Language Check Functions For C, .h/.c Combinations Object-Oriented Language Method Based Testing Public for other Users of Class Protected (Ancestor to Descendant) Private (Inaccessible Outside the Class) How would you Test Mobile Apps like PHA? What Else Might you Focus on? 3 Unit and White-Box Testing CSE 2102 Myriad of Products Available junit junit.sourceforge.net/ Objective-C OCUnit cocoadev.com/wiki/OCUnit Check for C check.sourceforge.net/ C/C++ https://code.google.com/p/googletest/ MS Test for Visual Studio Mobile Platforms Titanium Recommends jsunity (Javascript) Sensa Touch (Selenium, CasperJS, Siesta) 4 Unit and White-Box Testing CSE 2102 Also Includes General Testing of Capabilities Assume that GUIs are Working Correctly Now, Test Particular Feature Under Different Cases CT Insurance – Renew Licenses on Periodic Basis Scan Batches of Submitted Renewals Renewal Form(s) + check(s) Need to Test all Possible Combinations Does System Work as Expected 5 Testing Producer Licenses CSE CSE 2102 2102 6 Testing Producer Licenses CSE CSE 2102 2102 7 User Interface Testing CSE 2102 Extensive Tests of Business Function and Logic Utilized Business Process Logic Often Provide by Domain Expert Does Graphical User Interface Behave as Expected? Is Each Screen Sufficient? Are Screens Correctly Linked? Are Data Entries Checked for Validity? No illegal dates Only numbers in zips and phone numbers Only valid states Consistency of State and Zip Code? Do Required Minimums work? Think about all you do when you use a web site! 8 User Interface Testing – Varies by Domain CSE 2102 E-Commerce Focused on correctly Registering User, Processing an Order, Account Maintenance, etc. Mostly Mouse/Keyboard Oriented Gaming Checking that all of the buttons (on touch screen) and/or options work correctly Check to be sure there is consistency in placement across multiple screens Mobile Apps Linkages to other Apps (Facebook, etc.) Checking individual screens, order of screens Minimums need to be able to complete a screen to submit or go to the next screen 9 Sample from TestScenario.pdf CSE CSE 2102 2102 10 Sample from TestScenario.pdf CSE CSE 2102 2102 11 Sample from TestScenario.pdf CSE CSE 2102 2102 12 Sample from TestScenario.pdf CSE CSE 2102 2102 13 Sample from TestScenario.pdf CSE CSE 2102 2102 14 WebTesting.pdf – Results from Testers CSE CSE 2102 2102 15 WebTesting.pdf – Results from Testers CSE CSE 2102 2102 16 WebTesting.pdf – Results from Testers CSE CSE 2102 2102 17 LicenseTesting.pdf – Java Application CSE CSE 2102 2102 GUI Changes: Look and Feel/Readability/Usability 18 LicenseTesting.pdf – Java Application CSE CSE 2102 2102 Top : GUI Issue Bottom: DB Issue 19 LicenseTesting.pdf – Java Application CSE CSE 2102 2102 Both are Business Logic to be Enforced by GUI 20 Black Box Testing CSE 2102 Treat Class, Procedure, Function, as a Black Box Given “What” Box is Supposed to Do Understand its Inputs and Expected Outputs Execute Tests and Assess Results Formulate Test Cases Based on What Program is Supposed to Do without Knowing Programming Paradigm (OO, Functional, etc.) Code Structure (Modularity, Inheritance, etc.) Inputs Class Procedure Function Expected Outputs No Access to Code Usually Testing Software Engineer Speciality 21 Black Box Testing for PHA CSE 2102 If PHA as Deployed App, what would you Test? Testing when User has MSHV Account? w/o? Testing Creation of New Medication Create, Store, Logoff, Logon and see After Create/Store, logon to MSHV Directly Testing Entry of Information on Condition Different Conditions Can you Check these in MSHV? Testing Entry on Exercise Create, Store, Logoff, Logon and see After Create/Store, logon to MSHV Directly What Else Might be Tested? 22 Black Box Testing in CSE4940 CSE 2102 Senior Design Project Sequence Have Teams Exchange “Compiled Code” Each Team Provide Test Cases/Scenarios What are Objectives of Testing Engineers? Run All Tests Given Tweak Tests Try to Break “Code” Crazy Input Unexpected Actions One Important Tool to Assist in Testing: Screen Capture and Annotation Available Packages: http://camstudio.org/ or http://www.wisdomsoft.com/products/screenhunter_free.htm 23 General Performance Testing CSE 2102 Focus on the Actual Performance of Code Specific Portions of Code Sorting or Searching Algorithms Key Time Critical Functional Capabilities Role of Database Explore Volume of Information from Database Explore Concurrent Access to Database Interactions Across Network Explore Potential Bottlenecks in Network Traffic Examine Potential Issues Across Hardware Platforms Overhead Regarding Logging/Transaction Tracking Including Actual Calls to System Clock in Code Often Consider a Software Architecture View 24 Where are Potential Bottlenecks? CSE 2102 Medication/ Supplement Interaction Checker PHA Provider ODL and Chronic Disease Analyzer Medication & Observations of Chronic Disease Daily Living (ODL) Management PHA Patient Apache/Tomcat Web/Application Server MySQL Database Server OpenEMR Personal Health Record (PHR) Microsoft Healtvault Figure 1: Architecture Diagram of the Project this Semester. 25 Where are Potential Bottlenecks? CSE CSE 2102 2102 XACML XML-RR Health Vault Middle-Layer Server Harvard SMART EMR ASP.Net API SMART Container RDF XML MS Health Vault XACML Rest API RDF-RR JSON JSON SMARTSync Personal Health Assistant (PHA) Patient App • • • • Medications Allergies Procedures Demographic Provider List Security Policies JSON Proivder App • • • • Medications Allergies Procedures Demographic RxTerms NDF-RT RxNorm Patient List Authorization by Role 26 Testing Web and Mobile Applications CSE 2102 Stress testing What points the application breaks Simulate Traffic Increased Hits to Application or Web Server Increased Simultaneous Users at Client Side What are Available Tools? jmeter (http://jmeter.apache.org) sends multiple http requests to check traffic capacity http://www.webperformance.com/ load testing of web apps – can record and replay testing 27 Testing Gaming Applications CSE 2102 How Would you Test Massively Multiplayer Online Games? What are Some of Issues? Size of “World” Maintain World over Time Ability to Generate and Manipulate Maps Interactions with Players in Real Time Number of Concurrent Players Game State Size to Save Does Game Every Stop? What other Things Might you Test? 28 Testing Databases CSE 2102 Database are Tested from Varied Perspectives SQL Injection Testing Web GUIs – What if User Puts in DB Command for an Address? SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME='John' AND MINIT='B’ AND LNAME='Smith’ Can Someone Access Database Directly? https://addons.mozilla.org/en-us/firefox/addon/sql-inject-me/ Specialized Database Testing DBUnit (http://www.dbunit.org/) complements JUnit Search and Test large repositories 29 Software Quality Attainment CSE 2102 How would you Measure Non-Functional Qualities: Understandability, maintainability Evolvability, user friendliness Many Questions to Consider: Is your system each to understand from both the developer and end user perspectives? How can you demonstrate its maintainability? Was there a recent problem that you identified and fixed, and if so, was it easy or hard? Can you make changes easily? Was there an evolution you had to do in the last prototype that wasn’t anticipated, and if so, was it difficulty or easy? How user friendly is your system? Did you get any feedback from the black box testing? See: http://www.softwareqatest.com/index.html and http://www.aptest.com/resources.html 30