AQUA Focus on Testing Patricio Merino Software Engineer June 2014 ADC Overview 1. Objective of AQUA 2. Technical aspects 3. Core functionalities 4. How to test AQUA 5. Regression tests and test cases 6. Futures goals ALMA Objective of AQUA AQUA (ALMA Quality Assurance software) is a Web Application that permits to deliver to the PI(Principal Investigator) a reliable final data product that has reached the desired control parameters outlined in the science goals, that is calibrated to the desired accuracy and free of calibration or imaging artifacts. The QA process analysis will be based on a calibration plan that specifies which observations must be acquired and at which intervals in order to monitor system performance and environmental time evolution. QA states: QA0: At the time of data acquisition QA1: Observatory-Task Quality Assurance QA2: Data Reduction QA3: Post Data Reduction ALMA Objective of AQUA AQUA (ALMA Quality Assurance software) is a Web Application that permits to deliver to the PI(Principal Investigator) a reliable final data product that has reached the desired control parameters outlined in the science goals, that is calibrated to the desired accuracy and free of calibration or imaging artifacts. The QA process analysis will be based on a calibration plan that specifies which observations must be acquired and at which intervals in order to monitor system performance and environmental time evolution. QA states: QA0: At the time of data acquisition QA1: Observatory-Task Quality Assurance QA2: Data Reduction QA3: Post Data Reduction ALMA Technical Aspects Development and Deployment http://almascience.nao.ac.jp/documents-and-tools AQUA uses CASA authentication AQUA is a Web Interface Developed in Java Server Pages + AJAX (JQuery) + Spring + Hibernate + Oracle Database Deployed in Apache Tomcat 7 ALMA Technical Aspects Tier Architecture: Three layers ALMA Technical Aspects Database Schema ################################################################## # relational section, ie. the rest of subsystems accessing the DB # directly, but not monitor, log or statearchive data. This is # currently used only by the Shiftlog archive.relational.connection=jdbc:oracle:thin:@ALMAI3.SCO.CL archive.relational.user=alma archive.relational.passwd=alma$dba archive.relational.driverClassName=oracle.jdbc.OracleDriver ############################################## # TMCDB section # maybe later... archive.tmcdb.connection=ALMA archive.tmcdb.connection=jdbc:oracle:thin:@ALMAI3.SCO.CL archive.tmcdb.user=tmc archive.tmcdb.passwd=tmc$dba ALMA Core Functionalities 1. The basic unit of a Report is the ObsUnitSet, which represents a scientific goal stated by the PI during Phase 1 (project creation and review). 2. An ObsUnitSet will typically contain several executions of Sbs. 3. For each execution QA0 and QA1 reports are generated by the AoDs using the information available at the time of the observations, which includes TelCal outputs and other monitoring data (weather, total power levels, Corr GUI outputs, etc). 4. A given execution is only cleared for reduction if it has passed both QA0 and QA1. 5. There will be only one QA2 report for the whole ObsUnitSet generated by DMG at the end of the data reduction process that also has to be cleared for the data products to be deliverable to the PI. 6. The final report per ObsUnitSet delivered to the PI will be a concatenation of all the relevant QA0,QA1 reports per execution and the QA2 report. 7. Comments on each stage of the QA process (with supporting images, if required) will be added to the Report. ALMA Core Functionalities ObsUnitSet life-cycle ALMA How to Test AQUA ALMA How to Test AQUA ALMA Regression Tests and Test Cases ICT-833 Add search parameters to AQUA ICT-1104 AQUA - List OUSs in Processed state, search OUSs based on their state ICT-1151 "Deep-linking" among AQUA, Web Shift Log Tool and Project Tracker ICT-1175 AQUA - Create a QA1 report ICT-1228 AQUA - a tool/script/interface to set QA0 flag by group of EBs ICT-1230 AQUA - specific user roles ICT-1638 Identify ExecBlocks (EBs) that contain potentially useful data, but which are not used in generation of final science products ICT-1968 Life-cycle Modifications: SB level Suspended -> FullyObserved automatically trigger by QA0 flag ICT-2322 AQUA: A new flag "QA2_SemiPass" is needed ICT-2450 Updating of the QA0 status to Pass/Fail/SemiPass/[Empty] ICT-2735 QA0: Add plots for Calibration summaries ICT-2774 Display the Baseline length in meter (currently in km) in the "Phase" QA0 panel ICT-2786 ALMA Mosaic coverage of an EB ICT-2885 Handling of fractional execution counts Test Case Template For each (ICT-JIRA of AQUA) { Eval Precondition Create Positive Test Case #1: Title 1 Execute the Functionality Check the Expected Result Passed: OK/NOK Create Negative Test Case #1: Title 1 Execute the Functionality Check the Expected Result Passed: OK/NOK Create Positive Test Case #N: Title N Execute the Functionality Check the Expected Result Passed: OK/NOK Create Negative Test Case #N: Title N Execute the Functionality Check the Expected Result Passed: OK/NOK If (all the Test Cases are Passed OK) then The ICT-JIRA is Verified like Passed Else The ICT-JIRA is Verified like Failed } ALMA ICT-JIRA Test Data Flow ALMA Future Goals Automate the regression test executions Automate the test case executions Automate the creation of a report of tests oriented to testers and final users ALMA