Critical Design Review

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

1 PFP IPDR 2010/6/ Particles and Fields Package (PFP) GSE Timothy Quinn.
GLAST LAT ProjectNovember 18, 2004 I&T Two Tower IRR 1 GLAST Large Area Telescope: Integration and Test One and Two Tower Integration Readiness Review.
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
Instrument TrainingIDPU - 1 UCB, Dec 6, 2006 THEMIS INSTRUMENT TRAINING IDPU.
Yongho Kim Aug 2, : My Job TLM_ReceiverRS decoderGSEOS Nothing.. Interface - Serial line - TCP/IP connection with MPS Functions - CCSDS frame,
MAVEN CDR May 23-25, 2011 Particles and Fields Package Pre-Environmental Review May , 2012 Flight Software Peter R. Harvey Mars Atmosphere and Volatile.
Solar Probe Plus FIELDS ICU/FSW Peter R. Harvey Dorothy Gordon –ICU Will Rachelson – FSW Dec 1, 2012.
Rocky Mountain RAPS Process Validation Presentation 6/7/06 By Clay Anselmo.
SwRR 4/28/ Telecon MAVEN Particles and Fields Flight Software Requirements Review SwRR Peter R. Harvey April 28, 2010.
PACS IBDR 27/28 Feb 2002 SPU High Level Software1 H. Bischof, A.N. Belbachir (TUVIE) F. Kerschbaum, R. Ottensamer, P. Reegen, C. Reimers (UVIE)
ISUAL Instrument Software S. Geller. CDR July, 2001NCKU UCB Tohoku ISUAL Instrument Software S. Geller 2 Topics Presented Software Functions SOH Telemetry.
Barbara PlanteFIELDS iPDR – DCB Flight Software Solar Probe Plus FIELDS Instrument PDR DCB Flight Software Barbara Plante UC Berkeley SSL
TIM Phase A 1 SSL, 8/15/2007 Electric Field and Waves Instrument (EFW) Technical Interchange Meeting EFW Digital Electronics Digital Control Board (DCB)
1Texas Nodal Texas Nodal Market Trials and Data Verification ROS Meeting By Steve Grendel, ERCOT Thursday, 01/11/2007.
1Sep 30-Oct 1, 2009EFW I-CDR Instrument Critical Design Review EFW Flight Software Peter R. Harvey 2009 Aug 31 RBSP Radiation Belt Storm Probes RBSP Radiation.
21-1 MAVEN IPSR October 30,31, 2012 Particles and Fields Package Pre-Ship Review October 30,31, : Flight Software Peter R Harvey Mars Atmosphere.
GLAST LAT ProjectDOE/NASA Peer Review, March 19-20, 2003 GLAST Large Area Telescope: Electronics, Data Acquisition & Instrument Flight Software Flight.
TRIO-CINEMA 1 UCB, 2/08/2010 Cinema Stein Interface FPGA (CSI) [Part II] Karthik Lakshmanan CINEMA - EE Team Space Sciences Laboratory University of California,
24-1 MAVEN IPSR October 30,31, 2012 Particles and Fields Package Pre-Ship Review October 30,31, : ATLO Support Dave Curtis Mars Atmosphere and Volatile.
Solar Probe Plus FIELDS RFS Peter R. Harvey Oct 25, 2013.
Network design Topic 6 Testing and documentation.
Plante/HarveyFIELDS iPDR – Flight Software Solar Probe Plus FIELDS DCB FSW Development Plans Barbara Plante Peter Harvey University of California 1.
RBSP Radiation Belt Storm Probes RBSP Radiation Belt Storm Probes 12/25/20151 Flight Software Template for Instrument Critical Design Review Gary M. Heiligman.
AES Encryption FIPS 197, November 26, Bit Block Encryption Key Lengths 128, 192, 256 Number of Rounds Key Length Rounds Block.
GLAST Large Area Telescope LAT Flight Software System Checkout TRR Systems Engineering Mike DeKlotz GSFC Stanford Linear Accelerator Center Gamma-ray Large.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
RBSP Radiation Belt Storm Probes RBSP Radiation Belt Storm Probes RBSP/EFW I-PER 21 January EFW Flight Software Summary Peter Harvey Space Sciences.
Pre-PDR Peer Review 1 UCB MAVEN Particles and Fields Flight Software Peer Review Requirements Definition Peter R. Harvey May 12, 2010.
HarveyFIELDS iCDR – Flight Software Solar Probe Plus FIELDS DCB FSW Requirements Peter Harvey University of California 1.
RBSP Radiation Belt Storm Probes RBSP Radiation Belt Storm Probes 3-4 Sept. 2008EFW INST+SOC PDR447 Command, Telemetry, and Ground Support Equipment (CTG)
Timothy QuinnFIELDS SOC CDR – CTG Solar Probe Plus FIELDS SOC CDR Command, Telemetry, and Ground Support (CTG) Timothy Quinn UCB 1.
GoetzPre-PDR Peer Review October 2013 FIELDS Time Domain Sampler Peer Review Keith Goetz University of Minnesota 1.
13-1 MAVEN PFP ICDR, May 23 – 25, 2011 Particles and Fields Package Critical Design Review May , 2011 GSE Timothy Quinn.
HarveyFIELDS iCDR – Flight Software Solar Probe Plus FIELDS DCB Flight Software Design Peter Harvey University of California 1.
Solar Probe Plus FIELDS RFS Peter R. Harvey. RFS FSW Requirements.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
CTG Command, Telemetry, and GSE (CTG) Software Design Will Rachelson
THEMIS CDR 1 UCB, June 16, 2004 ESA & SST (ETC) Interface Board Critical Design Review Robert Abiad University of California - Berkeley.
THEMIS Instrument CDR 1 UCB, April 20, 2004 ESA & SST (ETC) Interface Board Critical Design Review Robert Abiad University of California - Berkeley.
TRIO-CINEMA C&DH- 1 KHU, 10/19/2009 Command & Data Handling System (C&DH) Peter Harvey David Curtis David McGrogan Space Sciences Laboratory University.
NCKU_UCB_TohokuISUAL-IFR : DCM (version 2.0) July 9, 2001Tong-Long Fu 1 Data Compression Module ( DCM ) Tong-Long Fu Laboratory of RF-MW Photonics, Department.
RBSP Radiation Belt Storm Probes RBSP Radiation Belt Storm Probes RBSP/EFW CDR /30-10/1 647 Ground Support Equipment Will Rachelson University of.
Pre-PDR Peer Review 1 UCB MAVEN Particles and Fields Flight Software Peer Review RFAs and Recommendations Peter R. Harvey.
Acceptance Test Readiness Review
Operational Flight Software
Solar Probe Plus FIELDS MEP iPSR SOC Marc Pulupa April 10, 2017
Particles and Fields Package (PFP) SWEA Pre-CDR Peer Review
Command & Data Handling
University of California - Berkeley
Overview of SOIS Electronic Data Sheets (EDS) & Dictionary of Terms (DoT) SOIS APP WG Fall 2012.
Topics Introduction Hardware and Software How Computers Store Data
I&T&C Organization Chart
Solar Probe Plus FIELDS
Software Configuration Management
Cluster Active Archive – Wideband data BM2 mode
Ground Support Software
ESA GSE.
Detlef Koschny Research and Scientific Support Department ESA/ESTEC
Acceptance Test Review
Electrical Ground Support Equipment Verification Test Support
Engineering Processes
Topics Introduction Hardware and Software How Computers Store Data
GLAST Large Area Telescope
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
October 24 Programming problems? Read Section 6.1 for November 5
PSS verification and validation
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Integration & Test Instrument Operations Coordination
Instructor Materials Chapter 5: Windows Installation
Presentation transcript:

Critical Design Review MAVEN Particles and Fields Flight Software Critical Design Review Testing Section Peter R. Harvey

Test Agenda I. Management Section Introduction Project Overview Management Overview Development Process and Plans Software status II. Requirements & Operational Concept III. Design Section Software Overview Module Descriptions Issues, etc. IV. Software Testing Test Plans, Documents, Databases Delivery, Installation, and Maintenance V. Abbreviations and Acronyms Agenda defined by MAVEN Software Management Plan, rev B format for SwCDR

Test Intro Test team Test Script Development, Execution : Peter Harvey DCB Support : Dorothy Gordon GSEOS Support, Network, Utilities: Tim Quinn Instrument Simulation: Brent M. Documentation Software Test Plan : MAVEN_PF_FSW_006_STP.doc Verification Matrix : included in STP Traceability Matrix : MAVEN_PF_FSW_002_SRS_Tables.xls Procedures : Boot procedures in June 2011, Op in Dec 2011-Jan 2012 Test levels Function Simulation w/Single Stepping, Standard Log Book Records Function Simulation w/Scripted Input, Standard Log Book Records Function Real-Time on DVF System, Standard Log Book Records Module Real-Time on DVF System w/Script, Automated Log Long Duration Stress Test on DVF w/Script, Automated Log Comp. Performance Test on DVF System w/Script, Automated Log FSW Support to DCB, PFDPU I&T Test Completeness All Arms/Disarms, Errors and Events Verified All Telemetry and Commands Used All Requirements Verified CPU Resource Usage Measured

Test Preparations Database & Display Preps

Test Example Reqs Test Case: On Board Data Analysis – E & B Spin Fits Sine-Wave Least Squares Fit Calculations are Performed 32 16-bit data points are taken at Equal Angles and Stored in Array Spin Fit Reduces 32 samples to Offset, Sine & Cosine terms 5

Test Example Reqs Test Case: On Board Data Analysis – E & B Spin Fits Spin Fit Matrix Results are A, B, C, Sigma (floating point), N (1 byte) Fast Flt Point = 1 sign bit, 7 exponent bits, 16 mantissa bits Each fit time tagged in MET (4 seconds, 2 subseconds) Each Spin Generates 3+3+13+13= 32 bytes Spin Packet is 8 Spins or 208 bytes Performance: Fit Requires ~720,000 cycles (~43 msec est., 35 measured) Angular Error at 6 RPM (worst case) is +/- 0.5 degrees (sampling) 6

Test Script Stds Script Demonstration Requirement identification Overall Consistent Format Library Support (efw, util) Function Definitions """ TEST_SPIN_1 : TEST SPIN FIT Computations REV -, 8/21/09 PRH SPIN_1 : SPIN shall compute a sine wave least squares fit of a 32 element array of 16-bit A/D values. The basic formula is x[i] = A + B*cos(i) + C*sin(i) from math import * from efw import * from util import * from __main__ import * # required for access to APID_nnn telemetry blocks def load_waveform( adr, A, B, C): cmd.EFW_CMDS( 1 ) wait(APID_263, lambda: APID_263.CMDFLAG==1, flTimeout=20) adstr = "0000" + hex(0x10000+adr)[3:7] bytes = " " for i in range(32): phi = 2*pi*i/32 val = A + B*cos(phi) + C*sin(phi) ival= int(val) bytes = bytes + hex( 0x100+(ival&0xff))[-2:]+" " bytes = bytes + hex( 0x100+ ((ival>>8)& 0xff))[-2:]+" " efw.idpu_load(adstr, bytes) wait(APID_263, lambda: APID_263.CMDFLAG==0, flTimeout=20) def ffptoflt( val ): sign = val & 0x800000 exp = ((val & 0x7F0000) >> 16) - 64 - 16 mant = val&0xffff if((val&0x8000)==0): return(0) flt = mant*2**exp if(sign!=0): flt = -flt return(flt)

Test Script Names Script Development Uses Cmds & Tlm names Result Logging Pass/Fail criteria Error Accounting def spin_test( adr, OffsetA, CostermB, SintermC): log('------ GENERATING NEW WAVEFORM --------- ', color=BLUE, attr=BOLD ) PF=("FAIL","PASS") load_waveform( adr, OffsetA, CostermB, SintermC) fcnt = APID_267.FITCOUNT #We'll watch this count up cmd.EFW_FITSIM() #Perform Fit wait(APID_267, lambda: APID_267.FITCOUNT>fcnt, flTimeout=20) log(" Simulated A,B,C = %8.3f %8.3f %8.3f" %(OffsetA,CostermB,SintermC),\ color=BROWN, attr=BOLD ) wait(APID_26A, lambda:True, flTimeout=20) #SW packet scale = 32768.0 A = ffptoflt(APID_26A.Ex_OFFSET)*scale B = ffptoflt(APID_26A.Ex_COSINE)*scale C = ffptoflt(APID_26A.Ex_SINE)*scale S = ffptoflt(APID_26A.Ex_STDDEV)*scale log(" SPIN Results A,B,C,S = %8.3f %8.3f %8.3f %8.3f" %(A,B,C,S), color=BROWN, attr=BOLD ) difA = abs(A-OffsetA) difB = abs(B-CostermB) difC = abs(C-SintermC) A_range = B_range = C_range = 1 #PASS if( difA > max(1,.002*abs(OffsetA) ) ): A_range=0 #FAIL if( difB > max(1,.002*abs(CostermB)) ): B_range=0 if( difC > max(1,.002*abs(SintermC)) ): C_range=0 log(" Verification A,B,C = %8s %8s %8s" % (PF[A_range],PF[B_range],PF[C_range]),\ return( 3 - A_range - B_range - C_range) #number of errors TEST_SPIN_1.py RBSP_EFW_FSW_005_CTM.XLS

Test Script Format Script Development Script Banner Consistent Format Name match to requirements Section 1 typical setup Section 2-N subtests Section N+1 Cleanup&Summary def main(): log('========================================', color=BLUE, attr=BOLD ) log('SPIN_1 : Spin Fit Calculations Check ', color=BLUE, attr=BOLD ) PF=("FAIL","PASS") errs=0 ebuf = 0x9a00 #EFIELD BUFFER START bbuf = ebuf+0x100 #BFIELD BUFFER START log('1.1 Increasing TM Rate, Clear Start ', color=BLUE, attr=BOLD ) cmd.EFW_FITMODE(0,1,1) #No Sampling, E12,Bx calcs cmd.EFW_TABLE(4,4) #OUTPTR=0 (start of buffer) cmd.EFW_LOAD(0) # SC_SPIN(6) #Get Space Weather faster DUMPADR(ebuf) cmd.EFW_TMDUMPSIZE(128) cmd.EFW_CLEAR() log('---------------------------------------', color=BLUE, attr=BOLD ) log('2.0 Injecting Cosine Scales ', color=BLUE, attr=BOLD ) OffsetA=0. CostermB=0. SintermC=0. for CostermB in (32768.0, 16384.0, 0.0, -8192.0, -8192.0*3): errs = errs+spin_test( ebuf, OffsetA, CostermB, SintermC) log('3.0 Injecting Sine Scales ', color=BLUE, attr=BOLD ) for SintermC in (32768.0, 16384.0, 0.0, -8192.0, -8192.0*3): log('4.0 Injecting Offset Errors ', color=BLUE, attr=BOLD ) SintermC=16384. for OffsetA in (1024.0, 128.0, -256.0, -768.0 ): log('5.0 Cleaning Up ', color=BLUE, attr=BOLD ) log('Error Summary = %d errors found.'% errs, color=BLUE, attr=BOLD ) log('Spin Fit Calculations : %s'% PF[errs==0], color=BLUE, attr=BOLD ) log('================END=====================', color=BLUE, attr=BOLD )

Test Script Output Fri Aug 21 16:48:08 2009 TEST_SPIN_1: Starting script TEST_SPIN_1.py Fri Aug 21 16:48:08 2009 TEST_SPIN_1: ======================================== Fri Aug 21 16:48:08 2009 TEST_SPIN_1: SPIN_1 : Spin Fit Calculations Check Fri Aug 21 16:48:08 2009 TEST_SPIN_1: 1.1 Increasing TM Rate, Clear Start Fri Aug 21 16:48:08 2009 TEST_SPIN_1: --------------------------------------- Fri Aug 21 16:48:08 2009 TEST_SPIN_1: 2.0 Injecting Cosine Scales Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_FITMODE(0, 1, 1) Fri Aug 21 16:48:08 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_TABLE(4, 4) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_LOAD(0) Fri Aug 21 16:48:08 2009 efw_cmd_log: SCE_CTRL_SET_SPIN_PULSE_TIME(6000000) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_DUMPADRX(0) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_DUMPADRE(0) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_DUMPADRH(154) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_DUMPADRL(0) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_TMDUMPSIZE(128) Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_CLEAR() Fri Aug 21 16:48:08 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:48:08 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 80, 8A, 7D, 41, 76, 6D, 6A, 82, 5A, 1C, 47, FB, 30, F8, 18, 00, 00, 08, E7, 05, CF, E4, B8, 7E, A5, 93, 95, BF, 89, 76, 82, 00, 80, 76, 82, BF, 89, 93, 95, 7E, A5, E4, B8, 05, CF, 08, E7, 00, 00, F8, 18, FB, 30, 1C, 47, 82, 5A, 6D, 6A, 41, 76, 8A, 7D)) Fri Aug 21 16:48:13 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:48:21 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 32768.000 0.000 Fri Aug 21 16:48:23 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 32764.500 -0.000 1.477 Fri Aug 21 16:48:23 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:48:23 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:48:23 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:48:24 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 40, C5, 3E, 20, 3B, 36, 35, 41, 2D, 8E, 23, 7D, 18, 7C, 0C, 00, 00, 84, F3, 83, E7, 72, DC, BF, D2, CA, CA, E0, C4, 3B, C1, 00, C0, 3B, C1, E0, C4, CA, CA, BF, D2, 72, DC, 83, E7, 84, F3, 00, 00, 7C, 0C, 7D, 18, 8E, 23, 41, 2D, 36, 35, 20, 3B, C5, 3E)) Fri Aug 21 16:48:29 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:48:37 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 16384.000 0.000 Fri Aug 21 16:48:41 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 16381.750 0.047 0.863 Fri Aug 21 16:48:41 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:48:41 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:48:41 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:48:42 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00)) Fri Aug 21 16:48:47 2009 efw_cmd_log: EFW_FITSIM()

Test Script Output Fri Aug 21 16:48:53 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 0.000 0.000 Fri Aug 21 16:48:59 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 0.000 0.000 0.000 Fri Aug 21 16:48:59 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:48:59 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:48:59 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:49:00 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, E0, 9E, E0, 70, E2, 65, E5, 60, E9, 39, EE, C2, F3, C2, F9, 00, 00, 3E, 06, 3E, 0C, C7, 11, A0, 16, 9B, 1A, 90, 1D, 62, 1F, 00, 20, 62, 1F, 90, 1D, 9B, 1A, A0, 16, C7, 11, 3E, 0C, 3E, 06, 00, 00, C2, F9, C2, F3, 39, EE, 60, E9, 65, E5, 70, E2, 9E, E0)) Fri Aug 21 16:49:05 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:49:13 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 -8192.000 0.000 Fri Aug 21 16:49:17 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 -8190.750 -0.033 0.504 Fri Aug 21 16:49:17 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:49:17 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:49:17 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:49:18 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, A0, D9, A1, 4F, A7, 2E, B0, 1F, BC, AB, CA, 44, DB, 46, ED, 00, 00, BA, 12, BC, 24, 55, 35, E1, 43, D2, 4F, B1, 58, 27, 5E, 00, 60, 27, 5E, B1, 58, D2, 4F, E1, 43, 55, 35, BC, 24, BA, 12, 00, 00, 46, ED, 44, DB, AB, CA, 1F, BC, 2E, B0, 4F, A7, D9, A1)) Fri Aug 21 16:49:23 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:49:29 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 -24576.000 0.000 Fri Aug 21 16:49:35 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 -24575.500 -0.170 0.494 Fri Aug 21 16:49:35 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:49:35 2009 TEST_SPIN_1: --------------------------------------- Fri Aug 21 16:49:35 2009 TEST_SPIN_1: 3.0 Injecting Sine Scales Fri Aug 21 16:49:35 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:49:35 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:49:36 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 00, F8, 18, FB, 30, 1C, 47, 82, 5A, 6D, 6A, 41, 76, 8A, 7D, 00, 80, 8A, 7D, 41, 76, 6D, 6A, 82, 5A, 1C, 47, FB, 30, F8, 18, 00, 00, 08, E7, 05, CF, E4, B8, 7E, A5, 93, 95, BF, 89, 76, 82, 00, 80, 76, 82, BF, 89, 93, 95, 7E, A5, E4, B8, 05, CF, 08, E7)) Fri Aug 21 16:49:41 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:49:49 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 0.000 32768.000 Fri Aug 21 16:49:53 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 -0.082 32764.500 1.477 Fri Aug 21 16:49:53 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:49:53 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:49:53 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:49:54 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 00, 7C, 0C, 7D, 18, 8E, 23, 41, 2D, 36, 35, 20, 3B, C5, 3E, 00, 40, C5, 3E, 20, 3B, 36, 35, 41, 2D, 8E, 23, 7D, 18, 7C, 0C, 00, 00, 84, F3, 83, E7, 72, DC, BF, D2, CA, CA, E0, C4, 3B, C1, 00, C0, 3B, C1, E0, C4, CA, CA, BF, D2, 72, DC, 83, E7, 84, F3)) Fri Aug 21 16:49:59 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:50:05 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 0.000 16384.000 Fri Aug 21 16:50:11 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 0.016 16381.750 0.863 Fri Aug 21 16:50:11 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS

Test Script Output Fri Aug 21 16:50:11 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:50:11 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:50:12 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00)) Fri Aug 21 16:50:17 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:50:25 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 0.000 0.000 Fri Aug 21 16:50:29 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 0.000 0.000 0.000 Fri Aug 21 16:50:29 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:50:29 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:50:29 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:50:30 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 00, C2, F9, C2, F3, 39, EE, 60, E9, 65, E5, 70, E2, 9E, E0, 00, E0, 9E, E0, 70, E2, 65, E5, 60, E9, 39, EE, C2, F3, C2, F9, 00, 00, 3E, 06, 3E, 0C, C7, 11, A0, 16, 9B, 1A, 90, 1D, 62, 1F, 00, 20, 62, 1F, 90, 1D, 9B, 1A, A0, 16, C7, 11, 3E, 0C, 3E, 06)) Fri Aug 21 16:50:35 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:50:41 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 0.000 -8192.000 Fri Aug 21 16:50:47 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 -0.010 -8190.750 0.504 Fri Aug 21 16:50:47 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:50:47 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:50:47 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:50:48 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 00, 46, ED, 44, DB, AB, CA, 1F, BC, 2E, B0, 4F, A7, D9, A1, 00, A0, D9, A1, 4F, A7, 2E, B0, 1F, BC, AB, CA, 44, DB, 46, ED, 00, 00, BA, 12, BC, 24, 55, 35, E1, 43, D2, 4F, B1, 58, 27, 5E, 00, 60, 27, 5E, B1, 58, D2, 4F, E1, 43, 55, 35, BC, 24, BA, 12)) Fri Aug 21 16:50:53 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:51:01 2009 TEST_SPIN_1: Simulated A,B,C = 0.000 0.000 -24576.000 Fri Aug 21 16:51:05 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 0.000 -0.057 -24572.000 1.734 Fri Aug 21 16:51:05 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:51:05 2009 TEST_SPIN_1: --------------------------------------- Fri Aug 21 16:51:05 2009 TEST_SPIN_1: 4.0 Injecting Offset Errors Fri Aug 21 16:51:05 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:51:05 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:51:06 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, 04, 7C, 10, 7D, 1C, 8E, 27, 41, 31, 36, 39, 20, 3F, C5, 42, 00, 44, C5, 42, 20, 3F, 36, 39, 41, 31, 8E, 27, 7D, 1C, 7C, 10, 00, 04, 84, F7, 83, EB, 72, E0, BF, D6, CA, CE, E0, C8, 3B, C5, 00, C4, 3B, C5, E0, C8, CA, CE, BF, D6, 72, E0, 83, EB, 84, F7)) Fri Aug 21 16:51:11 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:51:17 2009 TEST_SPIN_1: Simulated A,B,C = 1024.000 0.000 16384.000 Fri Aug 21 16:51:17 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 1024.000 0.059 16382.000 0.781 Fri Aug 21 16:51:17 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:51:17 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:51:17 2009 efw_cmd_log: EFW_CMDS(1)

Test Script Summary Fri Aug 21 16:51:18 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(80, 00, FC, 0C, FD, 18, 0E, 24, C1, 2D, B6, 35, A0, 3B, 45, 3F, 80, 40, 45, 3F, A0, 3B, B6, 35, C1, 2D, 0E, 24, FD, 18, FC, 0C, 80, 00, 04, F4, 03, E8, F2, DC, 3F, D3, 4A, CB, 60, C5, BB, C1, 80, C0, BB, C1, 60, C5, 4A, CB, 3F, D3, F2, DC, 03, E8, 04, F4)) Fri Aug 21 16:51:23 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:51:29 2009 TEST_SPIN_1: Simulated A,B,C = 128.000 0.000 16384.000 Fri Aug 21 16:51:35 2009 TEST_SPIN_1: SPIN Results A,B,C,S = 128.000 0.070 16382.250 0.672 Fri Aug 21 16:51:35 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:51:35 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:51:35 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:51:36 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, FF, 7C, 0B, 7D, 17, 8E, 22, 41, 2C, 36, 34, 20, 3A, C5, 3D, 00, 3F, C5, 3D, 20, 3A, 36, 34, 41, 2C, 8E, 22, 7D, 17, 7C, 0B, 01, FF, 84, F2, 83, E6, 72, DB, BF, D1, CA, C9, E0, C3, 3B, C0, 00, BF, 3B, C0, E0, C3, CA, C9, BF, D1, 72, DB, 83, E6, 84, F2)) Fri Aug 21 16:51:41 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:51:49 2009 TEST_SPIN_1: Simulated A,B,C = -256.000 0.000 16384.000 Fri Aug 21 16:51:53 2009 TEST_SPIN_1: SPIN Results A,B,C,S = -255.883 0.059 16382.750 0.531 Fri Aug 21 16:51:53 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:51:53 2009 TEST_SPIN_1: ------ GENERATING NEW WAVEFORM --------- Fri Aug 21 16:51:53 2009 efw_cmd_log: EFW_CMDS(1) Fri Aug 21 16:51:54 2009 efw: idpu_load(addr=0x00009A00, bytes=0x(00, FD, 7C, 09, 7D, 15, 8E, 20, 41, 2A, 36, 32, 20, 38, C5, 3B, 00, 3D, C5, 3B, 20, 38, 36, 32, 41, 2A, 8E, 20, 7D, 15, 7C, 09, 01, FD, 84, F0, 83, E4, 72, D9, BF, CF, CA, C7, E0, C1, 3B, BE, 00, BD, 3B, BE, E0, C1, CA, C7, BF, CF, 72, D9, 83, E4, 84, F0)) Fri Aug 21 16:51:59 2009 efw_cmd_log: EFW_FITSIM() Fri Aug 21 16:52:05 2009 TEST_SPIN_1: Simulated A,B,C = -768.000 0.000 16384.000 Fri Aug 21 16:52:11 2009 TEST_SPIN_1: SPIN Results A,B,C,S = -767.922 -0.023 16383.500 0.385 Fri Aug 21 16:52:11 2009 TEST_SPIN_1: Verification A,B,C = PASS PASS PASS Fri Aug 21 16:52:11 2009 TEST_SPIN_1: 5.0 Cleaning Up Fri Aug 21 16:52:11 2009 TEST_SPIN_1: Error Summary = 0 errors found. Fri Aug 21 16:52:11 2009 TEST_SPIN_1: Spin Fit Calculations : PASS Fri Aug 21 16:52:11 2009 TEST_SPIN_1: ================END===================== Fri Aug 21 16:52:11 2009 TEST_SPIN_1: Script TEST_SPIN_1.py completed

Test Environment Test Environment Test Platform ETU DCB or ETU PFDPU Test Equipment: GSE PC GSEOS Software Spacecraft Sim. Instrument Sim. Logic Analyser* Digital Scope* Data Storage: All instrument data and housekeeping Command/Event logs Network access (to Science and Remote GSE computers) *: Not shown Src: MAVEN_PF_FSW_006_STP Revision -, 4/22/2011

Test Environment Test Levels Function Simulation w/Single Stepping, Standard Log Book Records Function Simulation w/Scripted Input, Standard Log Book Records Function Real-Time on DVF System, Standard Log Book Records Module Real-Time on DVF System w/Script, Automated Log Long Duration Stress Test on DVF w/Script, Automated Log Comp. Performance Test on DVF System w/Script, Automated Log FSW Support to DCB, PFDPU I&T Real-Time, LDS, CPT Using DVF Simulations CodeWarrior PF I&T Support

Test Timeline Build test timeline and ordered list of components and requirements to be tested in each build Boot Build 2 All 65 testable reqs Testing June 2011 Op Build 2 Modules 1-9 (75 reqs) Testing Nov-Dec 2011 Modules 10-17 (96 reqs) Testing Jan-Feb 2012 Op Build 3 Updates as Needed Testing Apr-May 2012

FSW_021_CTM reads the Inst CTM spreadsheets to build PF-level Database PF I&T Testing PF I&T Preparation Organized Compatible CTM Data Bases Settle on Naming Convention Will Reuse Inst. Scripts & Displays Demonstrated at EM I&T with all Inst Review Safing Enables and Pull Any Scripted Arming Instrument Test Configurations FSW_021_CTM reads the Inst CTM spreadsheets to build PF-level Database PF Test Configuration

PF I&T Testing Instrument CDI commands (3-bytes) MAVEN_PF_GSE_001A_SWECTM.xls et al MAVEN_PF_FSW_021_CTM.xls Instrument CDI commands (3-bytes) Converted to PF CDI commands (4-bytes)

Verification Software requirement verification recording, monitoring, and current status – databases and test reports; sample test verification matrix Verification Matrix in MAVEN_PF_FSW_002_SRS_Tables record test completion No Formal Testing Has Been Required Records to Date are in Log Book

CPT and Stress Tests Acceptance Testing Performed on ETU PF System Highly Automated Using Approved Test Scripts Comprehensive Performance Test All Requirements Verified All Arms/Disarms Verified All Errors and Events Verified All Telemetry and Commands Used All PF Mode Configurations Used CPU Resource Usage Measured Long Duration & Stress Test High Rate of Commands Command Pass Simulation Every Hour for 72 hours Memory Load – Uplink of Script Database (1KB) Serial Commands – Max commands rate for 250 commands Memory Dump Script Database Execute Script and Verify Results High Rate of Telemetry Continuous Telemetry at 200% nominal Real Time Data @ 200% Archive Playback @ 200% CPU Intensive Processing Calculations @ 100% Archive Writing (200% nominal) Data Compression Enabled SDRAM and SRAM Memory Scrubbing Enabled Verification Test Status Logged Every Hour No Errors in FSW or GSE No Memory Leaks

Acceptance Testing Acceptance process – reviews (e.g., Acceptance Test Readiness Review, Acceptance Test Review), approval, and signoff processes Final Builds Have Review/Test/Review Sequence ATRR LDS CPT ATR Approval and Signoff PF PM PF SQA

Delivery & Installation Disposition of source code and tools, handling of load images, installation of databases, etc. All Source and Object Code is Version Controlled (Tortoise SVN) Boot PROM Image -> Flight and DVF ETU PROM EEPROM Images that are installed in Flight system also installed in DVF Version identification and documentation FSW telemeters its Version # EEPROM Directory has Version # included All RTS sequences are required to have a version #

Software Maintenance Plan FSW Maintenance PF DPU ETU & GSE Maintained in Flight Configuration CodeWarrior & GSEOS Licenses Maintained Inject test cases Display / verify result