TVAC Electronic Call Sheet System Team HeatWave Summer 2007.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Apache Struts Technology
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Online School Registration System Solomon Ng Pei-Yu Wang Evan Chiu Curtis Wong.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Ch6: Software Verification. 1 Statement coverage criterion  Informally:  Formally:  Difficult to minimize the number of test cases and still ensure.
Procurement Card Training Strategic Account Management (SAM)
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Chapter 13 & 14 Software Testing Strategies and Techniques
System/Software Testing
Configuration Management and Server Administration Mohan Bang Endeca Server.
CSCI 6962: Server-side Design and Programming JDBC Database Programming.
IMS 4212: Application Architecture and Intro to Stored Procedures 1 Dr. Lawrence West, Management Dept., University of Central Florida
Moving into the Testing Phase Revised for October 22, 2008.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
Data File Access API : Under the Hood Simon Horwith CTO Etrilogy Ltd.
Tom Castiglia Hershey Technologies
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Using Web Services to Create Events Web Services Explained And a Production Ready Example.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Test Case Manager v 3.0 Pierce Business Systems High Bridge Road Monroe, WA with customization by Ron Utz of Esker, Inc.
Exploring an Open Source Automation Framework Implementation.
NMED 3850 A Advanced Online Design January 12, 2010 V. Mahadevan.
© 2001 Business & Information Systems 2/e1 Chapter 8 Personal Productivity and Problem Solving.
Lead Black Slide Powered by DeSiaMore1. 2 Chapter 8 Personal Productivity and Problem Solving.
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
Computer Emergency Notification System (CENS)
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Plant Accession Application Maintenance Manual. Accession Application Website Environment Overview WinHost.com ASP Pages VBScript Procs Constants Style.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
New perfSonar Dashboard Andy Lake, Tom Wlodek. What is the dashboard? I assume that everybody is familiar with the “old dashboard”:
Software Construction Lecture 18 Software Testing.
Improving Eligibility Documents November, Improving Data Collection The State Office of AIDS (OA) is now working with providers to improve the quality.
3-Tier Client/Server Internet Example. TIER 1 - User interface and navigation Labeled Tier 1 in the following graphic, this layer comprises the entire.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Software Architecture in Practice Practical Exercise in Performance Engineering.
The Software Development Process
INSERT BOOK COVER 1Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall. Exploring Getting Started with VBA for Microsoft Office 2010 by.
Software Engineering Saeed Akhtar The University of Lahore.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Presentation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
DETAILED DESIGN, IMPLEMENTATION AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
IMS 4212: Application Architecture and Intro to Stored Procedures 1 Dr. Lawrence West, Management Dept., University of Central Florida
Apache Struts Technology A MVC Framework for Java Web Applications.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Architecture Review 10/11/2004
Working in the Forms Developer Environment
Software Testing.
The Client/Server Database Environment
Chapter 13 & 14 Software Testing Strategies and Techniques
PHP / MySQL Introduction
Design and Maintenance of Web Applications in J2EE
UNIT-4 BLACKBOX AND WHITEBOX TESTING
James Blankenship March , 2018
Lecture 1: Multi-tier Architecture Overview
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Systems integration in general
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

TVAC Electronic Call Sheet System Team HeatWave Summer 2007

The Paper Call Sheet FrontBack

Advantages  Electronic data can be made more secure than paper storage with backup systems and redundancy on geographically dispersed servers  Electronic call sheets can be searched instantly  Data can be shared more quickly and easily with other emergency services and municipal organizations  Enables data mining for statistics that can be used to improve procedures and detect patterns

System Architecture  3-tier architecture  Built on latest Java EE framework (EE 5, EJB 3.0, JPA)  All server functionality exposed via Web Service  Built entirely with open- source components DB Internet Client EJB Containter Web Containter App Server mySQL WSB | EJB Servlet

System Capabilities (Release 1)  Create call sheet  Search call sheets  View call sheet details  Edit call sheet  Delete call sheet

Walk-thru: Call Sheet Creation Tom’s Restaurant

Call sheet created successfully. (id=54234) 54234

Walk-thru: Call Sheet Search Corner of Deli New York

Search selection Search results stored in JTable View detail (driven by search selection) Walk-thru: Call Sheet Search

Critical code paths: GUI  CallSheetSearchUI : Covers 80% of use cases Procedures followed  Blackbox testing  Boundary value analysis  Whitebox testing  Statement coverage  Branch coverage  Control flow path coverage  Data flow path coverage

Critical code paths: GUI (cont) Results obtained  Search by Call Sheet ID, location, town, date range  Boundary value errors  View call sheet detail based on JTable selection of search results  Statement, control and data flow path errors  Edit a call sheet  Control and data flow path errors  Delete call sheets  No errors

Critical code paths: Controller  Requests from the client module are intercepted by the servlet and forward to the processRequest method in CallSheetServlet.java  This method draws all the subsystems together and performs the following tasks: Reads the client’s XML request Converts the request to a call sheet object Invokes the appropriate database method Returns the request result to the client  The centrality of this method and the abundance of custom code make this the most critical method of the Controller.

Critical code paths: Data Store  Managed persistence and connections eliminated most of the data store “plumbing”  CallSheetFacade.java (stateless EJB) contains most of the custom logic  findBySearchCriteria() method involves building an EJB-QL query from our custom SearchCriteria object  Custom code, EJB-QL syntax, and direct coupling with the Controller make CallSheetFacade the most critical section of code in the data store

Code inspection: GUI  Line by line review of the critical section  Q & A format  17 Issues documented and prioritized in issue tracker:issue tracker

Code inspection: Controller  CallSheetServlet Procedures followed  Formal code review Results obtained  Edit and delete functionality not implemented  Missing comments  Missing / incorrect Java Doc  Dead code

Code inspection: DataStore  Line by line review of the critical section, CallSheetFacade.java  Issues discovered Dead code Missing error handling Missing comments

Testing: Statement Adequacy Coverage  Coverage testing was done to ensure that each line of code in the critical paths was run at least once.  Due to the reduction in code size brought about by Java EE 5 and the familiarity with the code brought about by the code reviews, coverage tests were designed to reach each line and were verified with a visual debugger.  Unit, integration, and acceptance tests exercised the paths more rigorously by testing a variety of paths through the critical code

Testing: GUI (CallSheetSearchUI.java)  Code for UI construction and layout does not branch Normal testing covers the straight-line code (lines 1-131, methods CallSheetSearchUI(), draw(), createSection1(), createSection2(), and createSection3()  Updating functions require specific actions and data to achieve full code coverage (presented in the next two slides)  In the following test cases, expected results are that the application reports problems when the action cannot be performed and otherwise completes the operation successfully.  In addition to the following actions and data, perform one test case where you resize the search screen (lines ).

Testing: GUI (actions) SearchDeleteUpdate Perform search action with no call sheets in the database Perform delete action with no call sheets in the database Perform update to create a new call sheet (no call sheet number specified) Perform search with representative test data loaded but with no matching results Perform delete with representative data loaded but specified call sheet does not exist Perform update action where the new call sheet data is invalid (e.g. bogus date info) Perform search with representative test data and search criteria returns matching results Perform delete with representative data and delete is successful Perform update to modify an existing call sheet (with call sheet number specified) Results in 27 test cases using 3 sets of data for each of the 9 boxes. Using these 27 tests, all lines of code are executed.

Testing: GUI (data) LocationDateCoverage (lines) = null<> null <> null= null102 <> null Normal case, covers most code When creating a representative set of data. Be sure that you have at least three records with the following fields set as indicated. This data will ensure that the specified lines of code are covered.

Testing: GUI (data) Test type Lines not executed Search/Delete with no data Update with invalid data We ensured that all code is covered by tests as indicated in the charts above. However, to gain full confidence in the code it was necessary to cover some of the same lines of code but by following different code paths to get there. Tests described here were designed to skip lines of code to see the impact when those lines are not executed.

Testing: Controller  Procedures followed Create call sheet Search for call sheets View call sheet detail Edit a call sheet Delete call sheets

Testing: Controller (cont)  Results obtained Create call sheet SAVE SUCCESS …. Search for call sheets SEARCH SUCCESS Broadway New York View call sheet detail … … … Edit a call sheet SAVE SUCCESS 2 …… Delete call sheets DELETE SUCCESS 1

Testing: Data Store (CallSheetFacade.java)  Class under test is very limited in code size due to implementation of EJB.  Due to limited code size, coverage testing was accomplished by using debugger and manually tracking the covered lines.  Developed small test classes to invoke methods in CallSheetFacade.java. Was able to accomplish both black box and white box testing with these acceptance and unit tests.