DCEC PROTOCOL LABORATORY FILE TRANSFER PROTOCOL (FTP) MIL-STD-1780 CERTIFICATION TESTS INDEX This Certification Tests Index provides information on the derivation, organization, and function of tests specified for FTP within the DCEC Protocol Laboratory. This document is divided into five sections: FTP TRACEABILITY INDEX; FTP TESTS INDEX; FTP CODES INDEX; FTP TEST SCENARIOS INDEX; and FTP SCENARIOS AND TESTS DESCRIPTIONS. -------- FTP TRACEABILITY INDEX: FTP TEST NUMBERS versus FTP MIL-STD-1780 References... The table shows, for MIL-STD-1780, the FTP Test Numbers which may be regarded as the "principal tests" of each required function, operation, option, mode, response, or state. -------- FTP TESTS INDEX: FTP TEST NUMBERS versus FTP Commands/ Primitives/Options/Modes... The table shows the FTP Test Numbers which may be regarded as the "principal tests" of each FTP Command or Primitive and/or Option or Mode. -------- FTP CODES INDEX: FTP TEST NUMBERS versus FTP Response Codes... The table shows the FTP Test Numbers which may be regarded as the "principal tests" of each FTP Response (or State, etc.) Code to/ for/of the indicated FTP Commands or Primitives. -------- FTP TEST SCENARIOS INDEX: FTP TEST SCENARIO FILES versus FTP TEST NUMBERS... The table shows, for each FTP Test Number, the UNIX filenames of the FTP test Scenario Files in which it may be regarded as a "principal test objective". -------- FTP SCENARIOS AND TESTS DESCRIPTIONS... This section provides a brief narrative of the scope and objectives of each FTP test Scenario File and a narrative or graphic operational description of each FTP Test Number. FTP -1- FTP TRACEABILITY INDEX FTP TEST NUMBERS versus FTP MIL-STD-1780 References The following table shows, for MIL-STD-????, the FTP Test Numbers which may be regarded as the "principal tests" of each required function, operation, option, mode, response, or state. Test Numbers not indicated here may be used to establish necessary predecessor conditions for these tests. Reference Test Number --------- -------------------- 5.7.1.1.1 1, 60, 117 5.7.1.1.2 1, 61, 117 5.7.1.1.3 1, 62, 117 5.7.1.1.4 3, 63, 108 5.7.1.1.5 2, 64 5.7.2.1 32, 65 5.7.2.2 31, 65, 116 5.7.2.3, 5.7.2.4, 5.7.2.5 18, 19, 20, 50, 51, 52, 53, 54, 55, 112, 113, 114 5.7.3.1, 5.7.3.2 9, 66, 115 5.7.3.3 24, 67, 118 5.7.3.4 10, 68 5.7.3.6 25, 69, 107 5.7.3.7 26, 70, 107 5.7.3.8 4, 71, 105 5.7.3.10 20, 72, 102 5.7.3.11 21, 73, 106 5.7.3.12 22, 74, 110 5.7.3.13 23, 75, 111 5.7.3.14 7, 76, 101 5.7.3.15 6, 77 104 5.7.3.16 5, 78, 103 5.7.3.17 8, 79, 200 FTP -2- FTP TESTS INDEX FTP TEST NUMBERS versus FTP Commands/Primitives/Options/Modes The following table shows the FTP test numbers which may be regarded as the "principal tests" of each FTP command or primitive and/or option or mode. Test numbers not indicated here may be used to establish necessary predecessor conditions for these tests. Command or Primitive Option or Mode Test Number -------------------- -------------- -------------------- USER 1 PASS 1 ACCT 1 REIN 3 QUIT 2 PORT 32 PASV 31 RETR 9 STOR 9 MODE BLOCK 18 MODE COMPRESSED 19 MODE STREAM 20 TYPE ASCII 18, 19, 20 TYPE EBCDIC 18, 19, 20 TYPE IMAGE 18, 19, 20 STRU FILE 18, 19, 20 STRU RECORD 18, 19, 20 APPE 24 ALLO 10 RNFR 25 RNTO 26 ABOR 4 DELE 20 CWD 21 LIST 22 NLST 23 SITE 7 STAT 6 HELP 5 NOOP 8 FTP -3- FTP CODES INDEX FTP Test Numbers versus FTP Response Codes The following table shows the FTP test numbers which may be regarded as the "principal tests" of each FTP response (or state, etc.) code to/for/of the indicated FTP commands or primitives. Test numbers not indicated here may be used to establish necessary predecessor conditions for these tests. Response Code Command or Primitive Test Number ------------- -------------------- ----------- 120 REIN 63 (125/150)6(226/250) RETR, STOR, APPE, LIST, NLST 66, 67, 74, 75 200 PORT 65 ALLO 68 RNTO 70 DELE 72 CWD 73 SITE 76 NOOP 79 TYPE, STRU, MODE 50, 51, 52, 53, 54, 55 202 SITE 101 211 STAT 77 HELP 78 212 STAT 77 213 STAT 77 214 HELP 78 220 REIN 63 221 QUIT 64 225 ABOR 71 226 ABOR 71 227 PASV 65 230 USER 60 PASS 61 ACCT 62 250 RNTO 70 DELE 72 CWD 73 331 USER 60 332 PASS 61 350 RNFR 69 425 RETR 120 STOR 120 APPE 118 LIST 110 NLST 111 450 RNFR 107 FTP -4- 500 NOOP 200 NLST 111 501 LIST 110 NLST 111 502 REIN 108 PASV 116 ABOR 105 STAT 104 SITE 101 503 PASS 117 ACCT 117 RNTO 107 504 HELP 103 TYPE, MODE, STRU 112, 113, 114 SITE 101 530 USER 117 PASS 117 ACCT 117 STOR 201 550 RETR 115 APPE 118 RNFR 107 DELE 102 CWD 106 LIST 110 NLST 111 FTP -5- FTP TEST SCENARIOS INDEX FTP TEST SCENARIO FILES versus FTP TEST NUMBERS Within the PROTOLAB VAX-11/750 Test Master System, all FTP test Scenario Files may be found in the following UNIX directory: /usr/users/TSL/test/scripts/ftp. The following table shows, for each FTP Test Number, the UNIX filenames of the FTP test Scenario Files in which it may be regarded as a "principal test objective". A Test Number may be used, to establish necessary predecessor conditions for other Test Numbers, in Scenario Files not indicated here. Test Number Scenario File -------------------- -------------------------------------------------- u_logquit 1 2 9 u_basic 18 19 20 24 u_fileserv 10 25 26 22 23 21 20 3 u_connserv 4 31 u_conn3 32 60 s_logquit 61 62 64 66 s_basic 50 51 52 53 54 55 79 FTP -6- 67 g_fileserv 68 69 70 74 75 73 72 63 s_connserv 71 77 76 78 s_connserv 65 s_conn3 200 n_generr 201 n_notlog 117 120 n_basic 114 112 113 118 107 n_fileserv 110 111 106 102 108 n_connserv 105 104 101 103 116 n_conn3 FTP -7- FTP SCENARIOS AND TESTS DESCRIPTIONS The following scenario files test the ability of the User FTP Implementation Under Test to issue commands according to the MIL-STD specification. Scenario File u_logquit: - Establish FTP Command Connection. - Login Sequence. - Close Command Connection. Test 1 Establish Connection Issue USER, PASS, and ACCT Commands Test 2 Issue QUIT Command ------------------------------------------------------- Test 1 - Can the implementation under test (IUT) establish a connection to the reference (REF)? - Can the IUT issue correct command formats for the USER, PASS, and ACCT commands? Establish Connection - Action: Instruct the IUT to open a connection to the REF: If successful, issue login sequence, else abort the scenario. - Verification: IUT receives a correct response from REF indicating that a connection is established. Success: Positive response received by IUT. Connection opened. Failure: Negative response received. No connection available. Abort Scenario. Login Sequence - Action: Instruct the IUT to issue the USER command. If the USER command is successful, the IUT is instructed to issue the PASS command. If the PASS command is successful, the IUT is instructed to issue the ACCT command. - Verification: REF compares char string received from IUT to the correct command format as specified by MIL-STD-1780. Success: REF receives correct command format for each the USER, PASS, and ACCT commands within the specified time interval for each command. FTP -8- Failure: If either an incorrect command is received or timeout occurs for any command, failure is logged and the test exited. Test 2 - Can a connection between the IUT and REF be closed by issuing a QUIT command? - Action: The IUT is instructed to send the QUIT command. The REF waits 30 seconds to receive the command before timing-out. - Verification: REF receives character string and compares it to the MIL-STD specification for QUIT command. Success: IUT sent correct command format. Connection is closed. Failure: REF times-out before receiving the correct command format. Test is completed and connection is closed. FTP -9- Scenario File u_basic: - Issue Transfer Commands. - Test for correct file transfer. - Issue and test all possible combinations of the File Transfer Parameters. Test 9 Issue RETR and STOR commands ????A ????B Transfer a file and compare byte-by-byte for alteration of data Test 18, 19, 20 Issue all combinations of TYPE, MODE, and STRU transfer parameters. For each combination, transfer a file and compare byte-by-byte for alteration of data Test 8 Issue NOOP Command -------------------------------------------------------------------------- Test 9 - Can the IUT issue correct command formats for the RETR and STOR commands? - Can the IUT correctly transfer a file under the default transfer parameters? - Action: Instruct IUT to issue the RETR command so that a test file is transferred from the REF to IUT. If REF receives correct command format within 30 seconds, ensure file transfer is complete by checking response code. When file transfer has completed, instruct IUT to issue the STOR command so that the test file is transferred back to the REF. If REF receives correct command format within 30 seconds, ensure file transfer is complete by checking response code. When file transfer has completed compare the original REF test file to the file just received by IUT. - Verification: Check the command format for MIL-STD conformance. Compare file to ensure that the file data was not destroyed or altered while being transferred to and from the IUT. Success: REF receives correct command format for RETR and STOR commands. Successful file comparison to ensure correct file transfer. Failure: Timeout occurs before receiving correct command format for either RETR or STOR commands or unsuccessful comparison of transferred files. FTP -10- Tests 18, 19, 20 - Can the IUT issue all the possible values for the transfer parameter commands? - Can the IUT transfer a file using all the different combinations of the transfer parameters? - Action: These tests cover each possible combination of the transfer parameters. After each combination, there is a test for command format. If that test is successful, a file is transferred from the IUT to the REF and compared to the original file on the REF. - Verification: Check the MIL-STD for command format conformance. Compare file to ensure correct data and file representation. Success: For each test, a correct command format is received by REF and file comparison is successful. Failure: For each test, if a timeout occurs before receiving correct command format or an unsuccessful file comparison. Test 8 - Can the IUT issue the correct command format for the NOOP command? - Action: Instruct IUT to issue the NOOP command. REF waits 30 seconds to receive correct command format from IUT. - Verification: REF checks that string received conforms to MIL-STD specifications. Success: REF receives correct command format within 30 seconds. Failure: REF timed-out before receiving correct command format from the IUT. FTP -11- Scenario File u_fileserv: Test command formats for the following functions: - Append. - Allocate. - Rename file. - List files. - List files by name. - Change working directory. - Delete. Test 24: Issue APPE Command Test 10: Issue ALLO Command Test 25: Issue RNFR Command Test 26: Issue RNTO Command Test 22: Issue LIST Command Test 23: Issue NLST Command Test 21: Issue CWD Command Test 20: Issue DELE Command ----------------------------------------------------------------- Test 24 - Can the IUT issue an APPE command? - Action: IUT is instructed to issue an APPE command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 10 - Can the IUT issue an ALLO command? - Action: IUT is instructed to issue an ALLO command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. FTP -12- Test 25 - Can the IUT issue a RNFR command? - Action: IUT is instructed to issue a RNFR command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 26 - Can the IUT issue a RNTO command? - Action: IUT is instructed to issue a RNTO command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 22 - Can the IUT issue a LIST command? - Action: IUT is instructed to issue a LIST command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. FTP -13- Test 23 - Can the IUT issue a NLST command? - Action: IUT is instructed to issue a NLST command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 21 - Can the IUT issue a CWD command? - Action: IUT is instructed to issue a CWD command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 20 - Can the IUT issue a DELE command? - Action: IUT is instructed to issue a DELE command. - Verification: REF receives char string within 30 second time interval end checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. FTP -14- Scenario File u_connserv: Test command formats for the following functions: - Reinitialize connection. - Abort connection. - Status connection. - Site command. - Remote help information. Test 3 Issue REIN command Test 4 Issue ABOR command Test 6 Issue STAT command Test 7 Issue SITE command Test 5 Issue HELP command ------------------------------------------------------------- Test 3 - Can the IUT issue a REIN command? - Action: IUT is instructed to issue a REIN command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 4 - Can the IUT issue a ABOR command? - Action: IUT is instructed to issue a ABOR command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. FTP -15- Test 6 - Can the IUT issue a STAT command? - Action: IUT is instructed to issue a STAT command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 7 - Can the IUT issue a SITE command? - Action: IUT is instructed to issue a SITE command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 5 - Can the IUT issue a HELP command? - Action: IUT is instructed to issue a HELP command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. FTP -16- Scenario File u_conn3: - This scenario tests the ability of the User FTP process to communicate with two servers at once. - It also tests its ability issue the PASV and PORT commands. Test 31 Issue PASV command Test 32 Issue PORT command ----------------------------------------------------------------------------- Test 31 - Can the IUT issue a PASV command? - Action: IUT is instructed to issue a PASV command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. Test 32 - Can the IUT issue a PORT command? - Action: IUT is instructed to issue a PORT command. - Verification: REF receives char string within 30 second time interval and checks it for MIL-STD specification. Success: IUT sends correct command format. Failure: REF does not receive correct command format within 30 seconds. FTP -17- The following scenario files test the ability of the Server FTP Implementation Under Test to respond to commands issued by the Reference User Implementation in accordance to the MIL-STD specification. Scenario File s_logquit: - Establish FTP Command Connection. - Login Sequence. - Close Command Connection. Test 1 Open connection to IUT Test 60 Test response to USER command Test 61 Test response to PASS command Test 62 Test response to ACCT command Test 64 Test response to QUIT command -------------------------------------------------- Test 1 - Can the implementation under test (IUT) establish a connection with the reference implementation (REF)? - Action: REF tries opening a connection to IUT. - Verification: REF receives a 220 response within 30 seconds indicating that command channel is open. Success: REF receives response code of 220. Connection is established. Failure: REF times-out waiting for correct response code from IUT. Connection cannot be established, scenario is aborted. Test 60 - Does the IUT correctly implement the USER command? - Action: REF sends the IUT the USER command and waits 30 seconds for IUT to respond. - Verification: REF checks for valid codes of 230, 331, or 332. Success: REF receives one of the valid response codes. Failure: REF times-out waiting for IUT to respond with a valid response code. Scenario is aborted and all connections are closed. Test 61 - Does the IUT correctly implement the PASS command? FTP -18- - Action: REF sends the IUT the PASS command and waits 30 seconds for IUT to respond. - Verification: REF checks for valid codes of 230 or 332. If the response code 202 or 503 is received, the command is not implemented and the test is not evaluated for success or failure. Success: REF receives one of the valid response codes. Failure: REF times-out waiting for IUT to respond with a valid response code. Test 62 - Does the IUT correctly implement the ACCT command? - Action: REF sends the IUT the ACCT command and waits 30 seconds for IUT to respond. - Verification: REF checks for valid code of 230. If the response code 202 is received, the command is not implemented and the test is not evaluated for success or failure. Success: REF receives a valid response codes. Failure: REF times-out waiting for IUT to respond with a valid response code. Test 64 - Does the IUT correctly implement the QUIT command? - Action: REF sends the IUT the ACCT command and waits 30 seconds for IUT to respond. - Verification: REF checks for valid code of 221. Success: REF receives a valid response code. Failure: REF times-out waiting for IUT to respond with a valid response code. All connections are closed and test ends. FTP -19- Scenario File s_basic: - Test transfer commands. - Test for correct file transfer. - Issue and test all possible combinations of the file transfer parameters. Test 66 REF test responses to RETR and STOR commands and the IUT's capability to transfer a file. Tests 50-55 REF tests the response codes for all possible combinations of transfer parameters TYPE, MODE, and STRU and the IUT's capability to transfer a file for each combination. Test 79 Test response to NOOP command. --------------------------------------------------------------------- Test 66 - Can the IUT correctly respond to the RETR and STOR commands? - Does the IUT correctly implement the RETR and STOR commands? - Action: REF sends the IUT the STOR command so that a file is transferred from the REF to the IUT and waits 30 seconds for IUT to respond. The following are valid responses: 150 and 226, 125 and 226, 150 and 250, or 125 and 250. If the REF does not receive a valid response from the IUT, the entire scenario is aborted. However, if the REF receives a valid response, it will then send the RETR command to transfer the test file back from the IUT. If the REF receives a valid response from the IUT to the RETR command, the file transfer has completed. To ensure the IUT performed the file transfer function correctly, the test file received from the IUT is compared to the original test file on the REF. - Verification: REF checks for valid response codes for RETR and STOR commands. File comparison ensures that the file data was not destroyed or altered while being transferred by or stored on the IUT. Success: REF receives correct response codes for RETR and STOR commands. Successful file comparison to ensure correct file transfer. Failure: Timeout occurs before receiving correct response codes for either RETR or STOR commands or unsuccessful comparison of files. FTP -20- Tests 50-55 - Can the IUT respond to all possible values of transfer parameter commands. - Can the IUT transfer a file for each different combination of the transfer parameters. - Action: These tests cover each possible combination of the transfer parameters. For each combination there is a test for a valid response code of 200. A response code of 502 or 504 indicates the specified value for that transfer parameter command is not implemented and does neither succeed or fail. For each test that meets the valid response, a file is transferred from the IUT to REF and compared to the original file on the REF. - Verification: REF checks for valid response code and compares file to ensure correct data and file representation. Success: For each test, a valid response is received by REF and file comparison is successful. Failure: For each test, if a timeout occurs before receiving a valid response or an unsuccessful file comparison. Test 79 - Can the IUT correctly respond to the NOOP command? - Action: REF sends the IUT the NOOP command. - Verification: REF checks for a valid response code of 200 within 30 seconds. Success: REF receives valid response code. Failure: REF times-out before receiving a valid code. FTP -21- Scenario File s_fileserv: Test responses and functional ability of the following file-related commands: - Append. - Allocate. - Rename From. - Rename To. - List file information. - List file names. - Change working directory. - Delete a file. Test 67 Test response to APPE command Test 68 Test response to ALLO command Test 69 Test response to RNFR command Test 70 Test response to RNTO command Test 74 Test response to LIST command Test 75 Test response to NLST command Test 73 Test response to CWD command Test 72 Test response to DELE command -------------------------------------------------------- Test 67 - Does the IUT correctly respond to and implement the APPE command? - Action: REF sends the IUT the APPE command and waits 60 seconds for the IUT to respond. The first part of the test is for appending onto an already existing file. The second part of the test is for appending onto a non-existing file, thereby creating a new file. The second part of the test checks that a new file is created. - Verification: REF checks for a valid code of 150 and 226, 125 and 226, 150 and 250, 125 and 250. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response codes and successfully creates new file for the second part of the test. Failure: REF times-out before receiving valid response or does not create file for second part of test. Test 68 - Does the IUT correctly respond to and implement the ALLO command? - Action: REF sends the IUT the ALLO command and waits 60 seconds for the IUT to respond. The first part of the test is for allocating an additional number of bytes of storage for a file to be stored on the recipient's host. The second part of the test is for allocating enough records for a file that will be stored as records. FTP -22- - Verification: REF checks for a valid code of 200. A response code of 202 or 504 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. Test 69 - Does the IUT correctly respond to and implement the RNFR command? - Action: REF sends the IUT the RNFR command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid code of 350. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. Test 70 - Does the IUT correctly respond to and implement the RNTO command? - Action: REF sends the IUT the RNTO command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid code of 250 or 200. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. Test 74 - Does the IUT correctly respond to and implement the LIST command? - Action: REF sends the IUT the LIST command and waits 60 seconds for the IUT to respond. - Verification: REF checks for a valid code of 125 and 226, 125 and 250, 150 and 226, or 150 and 250. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. FTP -23- Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. Test 75 - Does the IUT correctly respond to and implement the NLST command? - Action: REF sends the IUT the NLST command and waits 60 seconds for the IUT to respond. - Verification: REF checks for a valid code of 125 and 226, 125 and 250, 150 and 226, or 150 and 250. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. Test 73 - Does the IUT correctly respond to and implement the CWD command? - Action: REF sends the IUT the CWD command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid code of 250 or 200. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. Test 72 - Does the IUT correctly respond to and implement the DELE command? - Action: REF sends the IUT the DELE command and waits 30 seconds for the IUT to respond. -Verification: REF checks for a valid code of 250 or 200. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. If a valid response is received, the REF tries to retrieve the same file to ensure it was deleted. Success: REF receives a valid response code. Failure: REF times-out before receiving a valid response. FTP -24- Scenario File s_connserv: Test IUT's response for the following functions: - Reinitialize Connection. - Abort Connection. - Status of connection. - Site Command. - Remote Help information. Test 63 Test response to REIN Command Test 71 Test response to ABOR Command Test 77 Test response to STAT Command Test 76 Test response to SITE Command Test 78 Test response to HELP Command ----------------------------------------------------------------------------- Test 63 - Does the IUT correctly respond to the REIN command? - Action: REF sends the REIN command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 120 or 220. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response code. Failure: REF times-out before receiving valid response. Test 71 - Does the IUT correctly respond to the ABOR command? - Action: REF sends the ABOR command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 225 or 226. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response code. Failure: REF times-out before receiving valid response. FTP -25- Test 77 - Does the IUT correctly respond to the STAT command? - Action: REF sends the STAT command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 211, 212, or 213 (depending on the parameter sent with the STAT command). A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response code. Failure: REF times-out before receiving valid response. Test 76 - Does the IUT correctly respond to the SITE command? - Action: REF sends the SITE command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 200. A response code of 202 or 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response code. Failure: REF times-out before receiving valid response. Test 78 - Does the IUT correctly respond to the HELP command? - Action: REF sends the HELP command and waits 30 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 211 or 214. A response code of 502 indicates the command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response code. Failure: REF times-out before receiving valid response. FTP -26- Scenario File s_conn3: - This scenario exercises the ability of the IUT server to communicate and transfer files in a 3-party transfer. - The third party, other than the REF User and IUT Server, is the REF Server. Test 65 Conduct file transfer activity between User and both Servers by using PASV and PORT commands. --------------------------------------------------------------------- Test 65 - Can the IUT respond to commands necessary for a 3-party file transfer? - Does the IUT function properly as a server within a 3 party file transfer? - Action: A command connection is established between REF User and REF Server. Then a connection is established between REF User and IUT Server. If either of these connections cannot be established, the scenario is aborted (REF User has the ability to switch between the two connections). The test begins by sending the PASV command to the REF Server. It should respond with the response code 227 to indicate that it is listening for a data connection to be established to it, along with the data port number to which the other server should connect. Next, the REF User issues the RETR command to the REF Server so it knows its function when the data connection is established. It should respond with a code of 150. After the REF User receives this response, it switches to its connection with the IUT Server and issues the PORT command specifying the data port number received on the PASV response. The IUT should respond with the valid response code of 200. When the REF receives this code, it issues the IUT the STOR command so that a test file may be transferred from the REF site to the IUT site. This test completes one file transfer, but in order to verify that data was not destroyed or altered by the IUT server, the test file is transferred back to the REF and compared to the initial file. - Verification: REF checks for valid response codes from the IUT for the PORT command and the transfer commands and compares the transferred file with the original file to ensure data and file representation. Success: REF receives correct response codes and successful comparison of files. Failure: REF does not receive correct response codes or unsuccessful comparison of files. FTP -27- The following scenarios test the ability of the IUT Server to correctly respond to erroneous situations. Each test will set up an error for a given command and check that the IUT responds appropriately. Scenario File n_notlog: - Test issuing a command before the user is logged in. - Test USER command given an unknown username. - Test login sequence giving a bad sequence of commands. - Test PASS command given a known user but an incorrect password. Test 201 Test negative response for user not logged in. Test 117 Test negative response for unknown user, bad login sequence, and an incorrect password. ------------------------------------------------------------------- Test 201 - Can the IUT respond correctly to the STOR command before the user has logged in? - Action: REF User establishes a connection with the IUT but does not log in. The REF User issues a STOR command and waits 30 seconds for the IUT to respond. - Verification: REF checks for valid response of 530 from the IUT. Success: REF receives valid response code. Failure: REF times-out before receiving. Test 117a - Can the IUT respond correctly to an unknown username? - Action: REF issues a USER command to the IUT with an invalid username and waits 30 seconds for the IUT to respond. - Verification: REF checks for valid response of 530 from the IUT. Success: REF receives valid response code. Failure: REF times-out before receiving. Test 117b - Can the IUT respond correctly to a bad sequence of commands giving the ACCT command? FTP -28- - Action: REF issues an ACCT command out of sequence to the IUT and waits 30 seconds for the IUT to respond. - Verification: REF checks for valid response of 503 from the IUT. A response code of 502 indicates the ACCT command is not implemented and the test is not evaluated for success or failure. Success: REF receives valid response code. Failure: REF times-out before receiving. Test 117c - Can the IUT respond correctly to a bad sequence of commands giving the PASS command? - Action: REF issues an PASS command out of sequence to the IUT and waits 30 seconds for the IUT to respond. - Verification: REF checks for valid response of 503 from the IUT. Success: REF receives valid response code. Failure: REF times-out before receiving. Test 117d - Can the IUT respond correctly to a correct username ising the USER command, but an invalid password using the PASS command? - Action: REF issues a USER command with a valid username and if the IUT responds correctly, REF then issues a PASS command with an invalid password. REF waits 30 seconds for the IUT to respond. - Verification: REF checks for valid response of 530 from the IUT indicating user has not logged in correctly. User must then re-initiate login sequence. Success: REF receives valid response code. Failure: REF times-out before receiving. FTP -29- Scenario File n_generr: - Test a command for general syntax error. Test 200 Test for correct response to an incorrectly spelled NOOP Command ---------------------------------------------------------------------------- Test 200 - Can the IUT respond correctly to a syntax error on command line? - Action: REF issues a misspelled NOOP command and waits 30 seconds for IUT to respond. - Verification: REF checks for a valid response of 500 indicating a syntax error. Success: REF receives valid response from IUT. Failure: REF times-out waiting for response from IUT. FTP -30- Scenario File n_basic: Test IUT to respond correctly to errors when issuing transfer commands and transfer parameter commands. Test 120 Test IUT responds correctly to RETR and STOR commands which cannot open data connections. Test responses to transfer commands for non-existent file. Test 114 Test IUT response to a STRU command with an unimplemented value. Test 112 Test IUT response to a TYPE command with an unimplemented value. Test 113 Test IUT response to a MODE command with an unimplemented value. ------------------------------------------------------------------- Test 120a - Does the IUT respond correctly to a STOR command which cannot open a data connection? - Action: REF issues a STOR command for which a data connection cannot be opened and waits 10 seconds for the IUT to respond. - Verification: REF checks that a valid response of 425 is received indicating that a connection cannot be opened. Success: REF receives correct response code. Failure: REF times-out before receiving correct response code. Test 120b - Does the IUT respond correctly to a RETR command which cannot open a data connection? - Action: REF issues a RETR command for which a data connection cannot be opened and waits 10 seconds for the IUT to respond. - Verification: REF checks that a valid response of 425 is received indicating that a connection cannot be opened. Success: REF receives correct response code. Failure: REF times-out before receiving correct response code. Test 120c - Does IUT respond correctly when asked to retrieve a non existent file. FTP -31- - Action: REF issues a RETR command giving a non-existent filename and waits 10 seconds for a valid response from the IUT. - Verification: REF checks that a valid response of 550 is received from IUT indicating that the file specified does not exist. Success: REF receives a valid response code. Failure: REF times-out before receiving correct response code. Test 114 - Can the IUT respond correctly to the STRU command given an unimplemented value? - Action: REF issues STRU command giving an unimplemented value and waits 10 seconds for a valid response from IUT. - Verification: REF checks for a valid response of 502 or 504 indicating that command is not implemented for that parameter value. Success: REF receives correct response code. Failure: REF times-out before receiving valid response code. Test 112 - Can the IUT respond correctly to the TYPE command given an unimplemented value? - Action: REF issues TYPE command giving an unimplemented value and waits 10 seconds for a valid response from IUT. - Verification: REF checks for a valid response of 502 or 504 indicating that command is not implemented for that parameter value. Success: REF receives correct response code. Failure: REF times-out before receiving valid response code. Test 113 - Can the IUT respond correctly to the MODE command given an unimplemented value? - Action: REF issues MODE command giving an unimplemented value and waits 10 seconds for a valid response from IUT. - Verification: REF checks for a valid response of 502 or 504 indicating that command is not implemented for that parameter value. Success: REF receives correct response code. Failure: REF times-out before receiving valid response code. FTP -32- Scenario File n_fileserv: Test error responses for the following functions: - Append. - Rename From. - Rename To. - List File Information. - List Files by Name. - Change Working Directory. - Delete File. Test 118 Test response to APPE command which cannot open a data connection. Test 107 Test the response to RNTO and RNFR commands. One part of the test tries to rename a non-existent filename. The other part of the test issues the RNTO command out of sequence. Test 110 Test response to LIST command which cannot open a data connection. Test 111 Test response to NLST command which cannot open a data connection. Test 106 Test response to CWD command for a non-existent directory. Test 102 Test response to DELE command for a non-existent file. -------------------------------------------------------------------- Test 118 - Does the IUT respond correctly to an APPE command which cannot open a data connection? - Action: REF issues an APPE command for which a data connection may not be opened and waits 10 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 425 indicating it cannot open a data connection. Success: REF receives valid response code. Failure: REF times-out before receiving valid response code. Test 107a - Can the IUT respond correctly to the RNFR command which tries to rename a non-existent file? - Action: REF issues a RNFR command with a non-existent filename and waits for a valid response from the IUT. - Verification: REF checks for a valid response code of 450 or 550 indicating that the file is unavailable. FTP -33- Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 107b - Can the IUT respond correctly to the RNTO command which is out of sequence. - Action: REF issues a RNTO command which is out of sequence and waits for a valid response from the IUT. - Verification: REF checks for a valid response code of 503 indicating a bad sequence of commands. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 110 - Does the IUT respond correctly to an LIST command which cannot open a data connection? - Action: REF issues an LIST command for which a data connection may not be opened and waits 10 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 425 or 501 indicating it cannot open a data connection. Success: REF receives valid response code. Failure: REF times-out before receiving valid response code. Test 111 - Does the IUT respond correctly to an NLST command which cannot open a data connection? - Action: REF issues an LIST command for which a data connection may not be opened and waits 10 seconds for the IUT to respond. - Verification: REF checks for a valid response code of 500, 425, or 501 indicating it cannot open a data connection. Success: REF receives valid response code. Failure: REF times-out before receiving valid response code. FTP -34- Test 106 - Can the IUT respond correctly to the CWD command which tries to change to a non-existent directory? - Action: REF issues a CWD command with a non-existent directory and waits for a valid response from the IUT. - Verification: REF checks for a valid response code of 550 indicating that the file is unavailable. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 102 - Can the IUT respond correctly to the DELE command which tries to delete a non-existent file? - Action: REF issues a DELE command with a non-existent filename and waits for a valid response from the IUT. - Verification: REF checks for a valid response code of 550 indicating that the file is unavailable. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. FTP -35- Scenario File n_connserv: Test IUT s_response functions: - Reinitialize connection. - Abort connection. - Status of connection. - Site command. - Remote help information. Test 108 Test negative response to REIN command. Test 105 Test negative response to ABOR command. Test 104 Test negative response to STAT command. Test 101 Test negative response to SITE command. Test 103 Test negative response to HELP command. ------------------------------------------------------------- Test 108 - Does the IUT respond correctly if the REIN command is not implemented? - Action: REF issues REIN command and waits 30 seconds for a valid response. - Verification: REF checks for a valid response of 502 indicating command is not implemented. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 105 - Does the IUT respond correctly if the ABOR command is not implemented? - Action: REF issues ABOR command and waits 30 seconds for a valid response. - Verification: REF checks for a valid response of 502 indicating command is not implemented. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 104 - Does the IUT respond correctly if the STAT command is not implemented? - Action: REF issues STAT command and waits 30 seconds for a valid response. FTP -36- - Verification: REF checks for a valid response of 502 indicating command is not implemented. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 101 - Does the IUT respond correctly if the SITE command is not implemented? - Action: REF issues SITE command and waits 30 seconds for a valid response. - Verification: REF checks for a valid response of 202, 502, or 504 indicating command is not implemented. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. Test 103 - Does the IUT respond correctly if the HELP command giving an unknown parameter? - Action: REF issues HELP command with an unknown parameter and waits 30 seconds for a valid response. - Verification: REF checks for a valid response of 504 indicating command is not implemented for that parameter. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. FTP -37 Scenario File n_conn3: - Test if IUT responds correctly to an unimplemented PASV command. Test 116 Test that IUT's ability to respond correctly to an unimplemented PASV command. ----------------------------------------------------------------------------- Test 116 - Does the IUT respond correctly if the PASV command is not implemented? - Action: REF issues PASV command and waits 30 seconds for a valid response. - Verification: REF checks for a valid response of 502 indicating command is not implemented. Success: REF receives valid response code. Failure: REF times-out waiting for a valid response code. FTP -38-