Functional Test Plan Page 1 3/9/2016 0 Reviewers This document is a rough draft of the functional test plan being written for the NovaNET scaling and migration project. By default, it displays in the ‘Outline View’. You can change this by going to the ‘View’ menu and selecting any other layout you might be more comfortable with. ‘Outline View’ is handy because you can minimize portions of the document, easily drag and drop portions of text to different areas of the document, build a table of contents, etc. Please insert any review comments using the ‘Review’ style built into this document. You can find it in the ‘Styles and Formatting’ toolbar in the ‘style’ dropdown menu or in the ‘Styles and Formatting’ task pane. If you don’t know where the ‘Styles and Formatting’ task pane is, go to the ‘Format’ menu and select ‘Styles and Formatting’. Pretty simple. You can also use Word’s built-in commenting system if you’re familiar with that. This draft of the document includes input from John Hegarty, Ray Thomsen, Frank L’Odense, Mark Webb, Charlie Gschwind, Steve Litt, Renee Inman, and Ross Bentley. 1 Introduction Sometime in 2006, an initiative was started to horizontally scale the NovaNET environment. After realizing the costs and difficulties of such a project, it was decided to horizontally scale the NovaNET environment. That project evolved into a migration project wherein a new production system would be built and the former production environment would become the disaster recovery environment. TO DO: Find out the real background information 1.1 Background As part of a migration/scaling project for NovaNET, a functional test plan became necessary in order to document a testing procedure for new and updated configurations of NovaNET. 1.2 Purpose The purpose of this test plan is to outline the test activities that will be used during the migration/scaling of NovaNET. As new NovaNET systems are built and configured for migration, scaling, and disaster recovery, a formalized process documenting the expertise of NovaNET employees becomes necessary. Furthermore, in efforts to upgrade individual components and/or subsystems within currently-existing NovaNET systems, a testing procedure should be documented in order to ensure compatibility of replacement components/subsystems. 1.3 Scope The testing will be limited to those test cases that can be used to verify system components and features have been integrated correctly by demonstrating their successful execution. 1.4 References Expertise in various areas was referenced in the creation of this document. The overall structure of this document is derived from meetings involving Julie Hoban, Ross Bentley, Renee Inman, Keith Harrington, Marshall Moritomo, and Anthony Garone. Much of the text has been taken directly from documentation written by Paul Christensen, Joey Charneski, Tom England, John Hegarty, and Ray Thomsen. Areas of expertise with respect to this document’s structure and performance of tests are as follows. Developing Draft : Anthony Garone Functional Test Plan 3/9/2016 NovaNET Central Processing Subsystem o System Administration: Steve Litt and Frank L’Odense o NovaNET Software Operation and Administration: John Hegarty NovaNET Leased-Line Subsystem o Page 2 Ray Thomsen NovaNET DMZ Customer-Facing Subsystem o Hardware and Infrastructure: Ray Thomsen o Software and Configuration: John Hegarty and Ray Thomsen NovaNET NOW Subsystem o Oracle Database Administration: Laryssa Kachorowsky o MySQL Database Administration: Mark Webb o Software Configuration/Administration: John Hegarty Backup and Recovery o NovaNET-specific Scripting: John Hegarty o Frank L’Odense End-User Testing o Ross Bentley and Renee Inman Much of the content was derived from the various forms of documentation written by Paul Christensen, Tom England, Ray Thomsen, Renee Inman, and others. 1.5 Definitions Since NovaNET has been in existence for nearly 50 years, there are many acronyms and functions inherent to the system that may not be immediately understood. The NovaNET environment has been broken down into the following subsystems: Central Processing Subsystem, Leased-Line Subsystem, DMZ Customer-Facing Subsystem, and NOW Subsystem. This section provides a brief, high-level description of each subsystem. For more detailed information, please read relevant sections of this document. NovaNET is a terminal-based application. Clients use an application called Portal to connect to the NovaNET environment. As such, the subsystems operate to perform fundamental tasks: Central Processing Subsystem o All client operations are handled through this subsystem. Without it, there is no NovaNET. Developing Draft : Anthony Garone Functional Test Plan All clients connecting to NovaNET using serial data connections utilize this subsystem. DMZ Customer-Facing Subsystem o 3/9/2016 Leased-Line Subsystem o Page 3 All clients connecting to NovaNET using modern network equipment and protocols connect through the DMZ. Internet connectivity is also provided for users connected via serial data lines. NOW Subsystem o Handles dynamic user data and Instructional Management System software. 1.5.1 Production Component List The following is a list of primary NovaNET components that should be able to communicate with one another in a functional production system [Production machine names in brackets]: Central Processing Subsystem o Central AlphaServer [Mesa (production server), Esker (development server)] o Central Server SAN [EMC CX400 SAN] Leased-Line Subsystem o Atlas DS-3 Multiplexer o Adtran 1241 Channel Banks (4) o Link Units (6) o Network Interface Units (2) [NIU1, NIU2] DMZ Customer-Facing Subsystem o Ethernet Link Access Units (2) [Wilmington, Pilot] o Internet Network Interface Units (2) [INIU4, INIU5] o Stargate Server o Lynx Server NOW Subsystem o NOW Servers (7) [Amy, Basil, Clara, Desmond, Ernest, Fanny, George] o Curriculum Server [Horus] o Catalog Application Server [Osiris] o Oracle Database Multiplexers (2) [Chmpgappmplex1, Chmpgappmplex2] Developing Draft : Anthony Garone Functional Test Plan Page 4 o Oracle Database Servers (2) [Cdc-480-1, Cdc-480-2] o Oracle Database SAN [EMC CX400 SAN] o MySQL Database Multiplexer [Honey] o MySQL Database Server [Chmpgdbsmysql] 3/9/2016 Throughout this document, we refer to some operating systems as “Linux-based.” In our current production environment, our Linux-based operating systems are Red Hat Enterprise Linux and Fedora distributions. Although not within the scope of this scaling and migration project, we are making an effort to standardize our Linux-based systems to run the latest supported versions of Red Hat Enterprise Linux. 1.5.2 NovaNET Acronyms The following is a list of acronyms affiliated with NovaNET: DMZ: De-Militarized Zone ELAU: Ethernet Link Access Unit EMP: Embedded Monitor Protocol IMS: Instructional Management System INIU: Internet Network Interface Unit LAU: Link Access Unit LSM: Logical Storage Management LU: Link Unit NIU: Network Interface Unit NN: NovaNET SAN: Storage Area Network SU: Site Unit 1.5.3 CNet: NovaNET’s Proprietary Communications Protocol Most components in the NovaNET environment communicate through a proprietary communications protocol called CNet. CNet was developed before the Transmission Control Protocol (TCP) was invented. CNET uses another proprietary protocol, X-51, to perform error-checking and recovery. The primary components of CNET are Nodes and Systems. A CNET System is a particular machine that can communicate over CNET. CNET Nodes are “sockets” via which a process can send or receive CNET messages. Each CNET system has a process called the Network Processor that manages the creation and deletion of nodes, and processes CNET traffic being transmitted by, received on, or passed through its CNET system. CNET systems were once manually loaded but are now self-contained and self-booting. CNET issues can be diagnosed using the ‘netmon’ lesson within NovaNET, but are usually fixed by reloading/rebooting a component. Developing Draft : Anthony Garone Functional Test Plan Page 5 3/9/2016 With the introduction of satellite telecommunications, NovaNET was able to broadcast across North America using asymmetric bandwidth. The X-51 Protocol was developed to optimize this communication method both for error detection and recovery. More information on CNET can be found in the Ops Manual [http://medusa.nn.com/opsmanual/nova/cnetview.html] or in the CNET documentation manual. 1.6 Test Strategy The strategy for a functional test plan is to verify connectivity and functionality of key NovaNET components and subsystems (both hardware and software). In order to thoroughly test the NovaNET application, we must perform hardware tests, basic software tests (using NovaNET’s built-in “author mode”), and end-user tests (using real NovaNET user data). Using this ground-up approach, we can begin by eliminating telecommunication, connectivity, and hardware issues from the start. Since NovaNET is a very complicated application using multiple communication protocols and hardware (and production dates spanning decades of time), it is best to start with basic, non-NovaNET tests. Once hardware and connectivity are verified, we verify that the basic functionality of the application is in order using the functional hardware and communication systems. Running NovaNET in author mode allows us to test core components of the application before we run into potential data issues. Once author mode functionality is verified, we test NovaNET using real-world application data to ensure interoperability between NovaNET and the database systems. 2 Subsystem Readiness The following hardware and connectivity tests are performed as readiness checks for NovaNET performance. Before we can approve a subsystem as being ready for NovaNET functionality, we must verify the functionality of hardware (and operating systems) as well as the connectivity within and between disparate subsystems. Most of these tests avoid testing actual NovaNET software. 2.1 NovaNET Central Processing Subsystem The core of the NovaNET system, which provides the central processing/control functions, is an HP AlphaServer running Tru64 Unix. The AlphaServer has its own disk system (SAN) on which are stored the text-based lessons of the NovaNET system (among other things). The Alpha and SAN are the two hardware components we need to test within this subsystem. The NovaNET Central Processing Subsystem performs the following functions: Authenticates and keeps track of all active users; since NovaNET is a timesharing system handling thousands of simultaneous users, this is a very important function. Connects users to the Instructional Management Systems. Stores thousands of text-based student lessons. At the request of users, runs those learning lessons that are text-based, which are stored and run on the central system and displayed on the user’s workstation. Manages the storage and retrieval of student data. Keeps track of what users are using what lessons and builds a set of monthly usage statistics and automatically transfers this data to control and support systems. Developing Draft : Anthony Garone Functional Test Plan Page 6 3/9/2016 Provides user communication tools that allow for communication both in real-time, by sharing of user experience with an instructor or support person, and via forms of email (called Personal Notes) and discussion groups (called Notes). Some lessons take advantage of this model to allow students to interact within the content across locations. Connects users seamlessly to the Internet when user activity requires Internet resources (through the Lynx text-based web browser). Stores and runs NovaNET system management utilities. As the central processing/control subsystem, this subsystem communicates with all of the other NovaNET subsystems. 2.1.1 Hardware and Software Configuration 2.1.1.1 Alpha As part of the scaling and migration project, there are multiple AlphaServers we can describe. In our current production environment, the central server is called Mesa and is a Compaq ES40 AlphaServer with 4 CPUs. This server is called Mesa (mesa.nn.com). We have another developmental AlphaServer called Esker (esker.nn.com). According to the scaling and migration project timeline, Esker will be replaced by a new HP AlphaServer (described in further paragraphs in this section) in order to test its functionality. This new AlphaServer will eventually replace Mesa as the production AlphaServer. The new HP Alpha server is a model ES80 with 6GB RAM and 6 1.15Ghz processors. The ES80 consists of 3 separate cabinets, called 2P drawers, each of which contains 2 CPUs and 2 GB of RAM. The cabinets are mounted together in the rack and are connected via the white IP cables. Each cabinet has its own set of 2 power cables and a CAT 6 cable that connects to a dedicated router (see later in this section for more information about the router. The figure below shows the cabling for a single 2P drawer. Figure: 2P Drawer Rear Cabling Developing Draft : Anthony Garone Functional Test Plan Page 7 3/9/2016 Each of the power cables plugs into one of 2 Power Distribution Units (PDU). Each PDU is split in 2 and has two cables for a total of 4 electrical connections under the floor. Each cable of each 2P drawer should be plugged into a different PDU to ensure redundancy should a circuit fail. Below is a view of the front panel of each of the 2P drawers as well as a graphic describing the meaning of each of the LEDs and their combinations. When the ES80 is functioning properly, the amber LED should be off and the green LED on. Figure: Status LEDs on the 2P Drawer Front Each 2P is connected to a LAN router thereby creating a private interconnection used for management and intercommunication between the 2Ps. The benefit (and primary justification for the purchase) of this server is to allow NovaNET to handle thousands more simultaneous connections. While there will be other benefits for the new Alpha, running more instances of NovaNET Executor software to handle these connections is the primary benefit. 2.1.1.2 SAN The primary data and backup areas for the NovaNET Central server is stored on an EMC CLARiiON CX400 SAN. The connectivity is made via two fiber channel host based adaptors (HBAs) located in the I/O slots in the rear of the server. Each of the HBAs are connected to one of two fiber channel switches. 2 HBAs are used for redundancy in the event of an HBA, cable, or fiber switch failure. The green LED on the HBA should be on and the amber LED should be flashing to indicate proper connectivity to the switch. There are two storage processors (SP) on the SAN. Each SP is connected to one of two fiber channel switches. This ensures redundancy back to the host in the event of a failure of an SP, cables, or switches. There are 2 logical disks presented to the ES80 by the SAN. Each logical disk is 200GB and is in a RAID5 configuration to provide redundancy in the event of a disk failure. 2.1.2 Tests Tests for validating the Central Processing Subsystem can be found in section 5.1.1 on page 23. Developing Draft : Anthony Garone Functional Test Plan Page 8 3/9/2016 2.2 NovaNET NOW Subsystem The NovaNET NOW Instructional Management System (IMS): Provides a catalog of courseware organized by subject with details about the courses available on NovaNET Provides pre-built curricula based on national and state standards Provides tools for instructors to build their own curricula out of NovaNET courseware Allows the instructor to assign lessons/activities to a student or groups of students, manage their progress, and report on the results Guides students through the lessons/activities that have been assigned to them Stores the results of the students’ performance While NovaNET has only one course catalog that spans all of NovaNET, there are two IMSs currently in use: NovaNET NOW, which is the default IMS and is used by nearly all customers C-Router, which is an older IMS that is still in use for some of its customization abilities. The C-Router IMS executes entirely on the central server. All of its data is stored on the Mesa file system. The NOW IMS runs on multiple machines: Osiris: a catalog application machine. It executes the NovaNET online catalog application that contains user accessible information about NovaNET lessons, resources, and utilities. The catalog is built on an instance of MySQL. Horus: a curriculum delivery machine. It runs the curriculum service application for the NOW IMS; handles relatively static curriculum data, such as titles and descriptions of all curriculum elements, as well as the way each curriculum is put together. Amy, Basil, Clara, Desmond, Ernest, Fanny, and George: NOW instructor machines and NOW student machines. These machines run the NOW instructor software named IMSGUIDE used by instructors to manage their students. These machines use the curriculum resources located on Horus and store student data in the Oracle database. These machines also run the NOW student software named IMSLEARN used by students to take lessons on NovaNET. These machines use the curriculum resources located on Horus and store student data in the Oracle database. Oracle database servers: NOW database machines. They run an instance of an Oracle database that stores dynamic data, such as student records, bulletins, sections, and assignments of students managed by the NOW IMS. Some basic information, however, is stored on the Mesa server file system. NOTE: The curriculum information for students is duplicated in the database and the curriculum service system running on Horus. Database multiplexer machines. These keep continuously open connections between NOW DB and NOW applications IMSLEARN and IMSGUIDE so the applications do not have to open and close connections for the thousands of transactions that occur. Developing Draft : Anthony Garone Functional Test Plan Page 9 3/9/2016 Software for the NOW IMS: IMSGUIDE: The NOW instructor system used by instructors to manage their students. IMSLEARN: The NOW student system used by students to take lessons on NovaNET. Osiris Library: Provides the graphical user interface, system interfaces, and cross-platform frameworks for the Osiris applications IMSGUIDE and IMSLEARN. Nowsupport: A utility used to create NOW groups, associate state alignments, view group action logs, edit group access, transfer students between NOW groups, post instructor messages, as well as turn on or off already-existing NOW groups. It is an Osiris app, so it requires NovaNET to be up and running on the Osiris application machine. To the person using “nowsupport,” it runs like any other NovaNET application on the NovaNET system. Osiris Catalog Application: Online catalog application that contains user accessible information about NovaNET lessons, resources, and utilities. NOW Curriculum Service: When the NOW servers request curriculum information, the proprietary curriculum service application executing on Horus accesses the XML and then delivers the needed curriculum. Multiplexer: Serves as platform-independent connection pooling software between Osiris applications and Oracle and MySQL databases. 2.2.1 Osiris Execution Subsystem Within the Osiris Execution Subsystem are the following components: NOW Curriculum Server: Horus NOW Catalog Application Server: Osiris NOW Servers: Amy, Basil, Clara, Desmond, Ernest, Fanny, George (also known as cdc-1955-1 through -7) 2.2.1.1 Hardware Description The components in this subsystem run on standard computer hardware. In the current production environment all of these servers are run on Dell blade servers. 2.2.1.2 Software Description All of the servers in this subsystem run on Linux-based operating systems. The NOW applications are executed on the NOW servers by lessons on the Central Processing Subsystem. 2.2.1.3 Connectivity Description NOW servers communicate with Horus and Mesa over TCP. They also communicate with the NOW database multiplexers, which are located in the NOW Database Subsystem, for storing and retrieving data. Osiris communicates with Mesa and Honey. Developing Draft : Anthony Garone Functional Test Plan Page 10 3/9/2016 Horus communicates with NOW servers through Honey. 2.2.1.4 Tests Tests for the Osiris Execution Subsystem portion of the NOW Subsystem are located in section 5.1.2.1 on page 25. 2.2.2 NOW Database Subsystem Within the NOW Database Subsystem, we have the following components: Oracle database multiplexers: chmpgappmplex1 and chmpgappmplex2 Oracle database servers: chmpgdbsnow Oracle database SAN MySQL database multiplexer: Honey MySQL database server: chmpgdbsmysql The multiplexers serve as connection interfaces for NovaNET clients. Rather than have individual user accounts constantly opening and closing connections to the database servers, the multiplexers do the connectivity work for them. 2.2.2.1 Oracle Databases The Oracle databases host curriculum and student data. Nearly all customer-related data is stored in these databases. In our current Oracle environment, NovaNET is running Oracle 10g with Data Guard. It is the intention of the Scaling and Migration Project that we replace this current setup with an Oracle RAC solution during phase VI. The RAC solution gives us increased availability and scalability. This will be developed alongside phases II through V. Please see section 1.3 on page 1 for more information on the project schedule. 2.2.2.1.1 Hardware Configuration The database multiplexers run on standard computer hardware. Currently, the servers are Dell PowerEdge 1550s. The multiplexers connect the NovaNET NOW application servers with NOW Oracle database. It is the intention of NovaNET staff to integrate MySQL multiplexing into these servers and phase the Honey server out of the production environment but this will not happen as an outcome of the Scaling and Migration project. The Oracle database servers, however, run on Sun Microsystems machines. The data is stored on a CX400 SAN. This SAN hosts both the NOW database and the Enterprise Services and Support system. The backups are copied to an ES45 AlphaServer so that they can be written to tape. This setup communicates with the NOW Application servers via the NOW Database Multiplexers and connects to the NOW database cluster machines. 2.2.2.1.2 Software Configuration The multiplexers that connect to Oracle run two processes: ‘procplex’ and ‘procseb’. Procplex is the multiplexer app and procseb protects us from bugs in the exe driver. These processes are indirectly dependent upon ODBC drivers and are installed as services in the operating system. In the NOW database, there is an autoarchive tool. It runs once a week. Inactive sites have students removed after two years of non-use. Active sites have students removed after 5 years of non-use. Autoarchive remotes signons from the groups in central server, also. Developing Draft : Anthony Garone Functional Test Plan 2.2.2.1.3 Page 11 3/9/2016 Tests Tests for the Oracle Databases can be found in section 5.1.2.2 on page 26. 2.2.2.2 MySQL Databases While the Oracle databases handle the majority of production-related data, the MySQL server handles some production data, but hosts a wealth of support data. From a production standpoint, the MySQL database delivers basic catalog data to NovaNET clients. Doing so relieves some bandwidth and processing cycles from what would otherwise be depending upon the Oracle servers. From a support standpoint, the MySQL server hosts data for the NovaNET incident database, nonprimetime gaming, usage statistics, engineer on duty, an exchange database, INIU data for a webbased INIU configuration utility, and a backup database. The server also hosts a curriculum conversion utility. 2.2.2.2.1 Hardware Configuration Honey connects the Osiris catalog application server with the NovaNET catalog database stored in MySQL. It employs standard computer hardware. 2.2.2.2.2 Software Configuration Honey runs Windows 2000. In the NovaNET production environment, MySQL communicates to the Osiris catalog application through Honey. For support utilities (primarily web-based), support staff communicates directly with the database without the use of a multiplexer. 2.2.2.2.3 Tests Tests for the MySQL Databases can be found in section 5.1.2.3 on page 27. 2.3 NovaNET DMZ Customer-Facing Subsystem Created before the existence of the Internet, the NovaNET system needed to be modified to take advantage of Internet resources to provide online instruction. It was important that these modifications allowed users to stay within NovaNET while accessing Internet resources and not have to leave the NovaNET interface to do so. Also, as Internet connectivity has improved over the years, it became important to rely less upon serial leased lines and to rely more on Internet connectivity to customers. The purpose of this subsystem is to provide that seamless access and to allow customers to connect to the NovaNET system using the Internet. 2.3.1 Hardware and Software Configuration Within the DMZ, we have the following hardware: Ethernet Link Access Unit (2): Aggregates up to 720 NovaNET users onto a fractional T1 Internet Network Interface Unit (2): Delivers network traffic between the Framer (application on the Alpha) and individual users connecting over the Internet with TCP Stargate Server (1): Handles telnet, gopher, weather, and Lynx connections to the Internet acting as an intermediary between NovaNET users and the Internet Lynx Server (1): Provides text-based web browsing to NovaNET users via the Lynx web browser Developing Draft : Anthony Garone Functional Test Plan Page 12 3/9/2016 2.3.1.1 Ethernet Link Access Units (ELAUs) The ELAU is a Linux-based workstation that can aggregate up to 720 NovaNET users onto a fractional T1 circuit that can range from 56kbps to 512kbps. The ELAU establishes a TCP socket with users connecting with Portal. It has a high-speed serial card that connects it back to the NIU. Although the Linux platform is generic, a custom-written device driver is required for communication with the serial card. In the current production environment, there are two ELAUs being hosted in Champaign: Pilot and Wilmington. The Pilot ELAU (pilot.nn.com) is used by all customers given a free trial period to sample the NovaNET software. Wilmington is used for internal testing. Unlike the LU and SU, the ELAU software is built atop other non-proprietary code. The Linux operating system provides volumes of utilities and built-in functions for system management. 2.3.1.1.1 Hardware Configuration The ELAU has 2 DB-9 serial connectors, one of which is used to connect an out-of-band management modem. The Digi 570i card provides a DB-37 serial connector that is used to connect to a DSU/TSU supplying a digital circuit back to the central NovaNET system. An adapter cable is used between the V.35 DTE connector on the DSU/TSU and the DB-37 connector on the Digi serial card. 2.3.1.1.2 Software Configuration Each ELAU needs to be configured to know which LAU addresses it handles. The ELAU can support up to six LAU addresses. However, if more than one LAU address is assigned, certain rotary configurations are unavailable. The ELAU must also know its assigned IP address on the customer LAN/WAN, as well as valid subnet mask describing the scope of the customer network. After logging into the ELAU via the standard OS login, the message of the day file is shown. This provides a list of the ELAU commands available. When connecting to the ELAU via EMP, you are not required to log into the ELAU; therefore you will not see the message at the start of an ELAU EMP connection. This message can be displayed at any time, via any connection method, by entering the ‘nnhelp’ command. Much more detailed information is available in the NovaNET ELAU Manual. 2.3.1.2 Internet Network Interface Units (INIUs) The Internet Network Interface Unit, also known as the INIU (or sometimes called the NovaNET Internet Concentrator), functions as a combination of an NIU and an ELAU. Like an NIU, it connects directly to the central system’s Framer app, and, like an ELAU, it provides connections to the end-users of NovaNET. The INIU can provide connections to NovaNET for over 5000 simultaneous users without any special backplane chassis, VCOM cards, channelizing adapters, or high-speed digital serial cards. 2.3.1.2.1 Hardware Configuration The INIU is a non-proprietary computer running Linux. 2.3.1.2.2 Software Configuration The INIU requires any Linux kernel version 2.6.9 or later. The INIU software requires no additional code libraries apart from standard libraries that come with Linux: libstdc++, libfam, and libxml2. All INIUs keep a master copy of their configuration file in the CVS repository on Isis (isis.nn.com). Nagios also monitors the INIU. Developing Draft : Anthony Garone Functional Test Plan Page 13 3/9/2016 The INIU’s configuration file consists of XML data and resides in the ‘/nova/data/hybrids/’ directory. It specifies numerous parameters, among them: which ports to listen on: for the connection to each framat (framat listener), the connections to users of the INIU’s CLI (status listener), and the connection to users of NovaNET (rotary listeners) for each “FramatConnection”, which RotaryListeners to create for each “RotaryListener”, the IP address and port on which to listen as well as which rotaries to create (almost always just one rotary per RotaryListener) for each rotary, the parameters that characterize that rotary—such as the name of the rotary, the maximum number of users allowed, the customer code, the site number, the subsite number, and the time zone. The INIU reads its configuration file during runtime and can detect when the file has changed. INIU4 uses ‘/nova/data/hybrids/prod1.xml’ as its config file. INIU5 uses ‘/nova/data/hybrids/prod2.xml’. Besides providing connectivity through TCP/IP for users of NovaNET, the INIU supports comprehensive runtime monitoring. In conjunction with the web-based management interface, the INIU provides a plethora of data on all aspects of its configuration, system performance, and usage patterns, including a detailed view of the current status of any specified rotary. The web-based management tool is available at http://chmpgdbsmysql.nn.com/nowadmin/hybrid/. The INIU’s source code resides in the ‘/root/novanet/hybridniu/’ directory. The makefile also resides in this directory. The INIU’s installation resides in the ‘/nova/’ directory. This directory contains several subdirectories. The INIU’s configuration resides in ‘/nova/data/hybrids/’. The files that run the INIU reside in ‘/nova/bin/’. The INIU keeps its log files in ‘/nova/logs/’ and rotates its old log files daily to ‘/nova/logs/archive/’. The INIU delivers network traffic between the FRAMAT and individual users running Portal, thereby providing an alternative to the user of NIUs, link units, site units, and ELAUs. The INIU runs on standard hardware with standard TCP and entirely abandons the CERL X-51 protocol, CNET, and nonstandard hardware. The INIU also provides configuration of users, runtime monitoring, and historical data collection. The software is in C++. For detailed documentation and a list of commands available for INIU configuration, please see the INIU Manual 3.1 document. 2.3.1.2.2.1 Run Files The INIU software consists of a single C++ program called ‘nc’ and several support scripts written in tcsh and Perl. ‘nc’ behaves as a server from the standpoint of the framat (which acts as a client) and as a server from the standpoint of users running Portal (which also acts as a client). In addition, it provides another server socket for direct communication through a simple command line interface for the purposes of management and monitoring. autoupdate: Script run by cron every 5 minutes to update the configuration file. create_config, disaster recovery site only: script that converts the IP addresses in the configuration file to their DR equivalents. Developing Draft : Anthony Garone Functional Test Plan Page 14 3/9/2016 get_config, disaster recovery site only: script run by cron every 30 minutes to fetch the latest configuration file from Champaign. hybridniu: script that launches the INIU process. logarchive: script run by cron daily to rotate the log file. nc: the INIU program prepend_date: helper script to prepend a timestamp. 2.3.1.2.2.2 Log Files alarms: notifications of when the INIU cannot open a new session for a user because the INIU has lost its connection to the framat. cvs.log: notifications from CVS when the autoupdate cron job updates the configuration file or experiences a problem. hybrid.log: main log file; written by the INIU process. stderr.log: error output from the INIU process; currently used by the XML parser to indicate that it encountered a syntax or other error while reading the config file. 2.3.1.2.2.3 Support Scripts Two support Perl scripts, ‘iniu’ and ‘iniutop’, reside in the ‘/opt/customer/psadmin/bin/’ directory. The iniu script provides access to the INIU’s command line interface. The iniutop script collects CPU usage data for a custom SNMP check run periodically by Nagios. Both Perl scripts require Perl libraries ‘getopts.pm’ and ‘process.pm’ located in ‘/opt/customer/psadmin/bin/lib/’. 2.3.1.3 Stargate Server A Linux-based machine that runs FRX, a stripped down FRAMAT substitute for users that are executing Internet activities within NovaNET. The server’s primary role is to act as an intermediary between NovaNET users and the Internet for the tools on NovaNET that have Internet capabilities. It handles telnet, weather, and Lynx connections to the Internet. Mesa passes control of customers to this machine while accessing the Internet. Stargate passes control of the customer back to Mesa once telnet or Lynx is exited. It also acts as a backup for DNS and mail between NN and the Internet. It communicates with Mesa using the proprietary CNET protocol over the User Datagram Protocol (UDP). Stargate also provides customer-accessible stats via gopher. It used to provide access lists to give customer port usage via gopher, though this feature is not in use. 2.3.1.3.1 Hardware Configuration Stargate is a standard Linux-based machine without any special hardware configuration. 2.3.1.3.2 Software Configuration TO DO: Get more information about the software configuration of Stargate. Stargate is a heavilyconfigured server according to John Hegarty. 2.3.1.4 Lynx Server Lynx is a Linux-based machine that runs the Lynx text-based web browser for NovaNET lesson usage. As of this writing, Lynx’s usage is extremely limited as most customers have web browsers with graphical Developing Draft : Anthony Garone Functional Test Plan Page 15 3/9/2016 user interfaces accessible on their local machines. Furthermore, NovaNET lessons requiring access to Lynx only gather data when such data is not available locally. Nearly every lesson that uses/used Lynx has the related data stored in the NovaNET environment, leaving the need for this server as dubious. 2.3.1.4.1 Hardware Configuration Lynx runs on a standard Linux-based machine with no special hardware configuration. 2.3.1.4.2 Software Configuration The Lynx web browser comes installed by default in many Linux distributions. If it is not available in a Linux distribution, it is easily available for download and installation. TO DO: Find out if any custom configurations for Lynx have been developed. It SHOULD be a default installation, but we need to define that. 2.3.2 Tests Tests for the DMZ Customer-Facing Subsystem can be found in section 5.1.3 on page 27. 2.4 NovaNET Leased-Line Subsystem The purpose of the Network Subsystem is to link users running the Portal software with the NovaNET central system. Students performing activities which are run on the NovaNET central server (called TUTOR lessons) are bound by the performance of the central server and the communications path between them and the central system. There are two communication paths over which the Portal Interface can connect to the central processing/control subsystem: Over the Internet Over Leased Lines Internet customers connect through Internet Network Interface Units (INIUs). There are also two Ethernet Link Access Units (ELAUs), one for testing and the other for pilot customers. The INIUs and ELAUs are located within the DMZ. Leased lines are used for all other customers to ensure sufficient, dedicated bandwidth to provide a positive user experience. These customers connect to NovaNET via Network Interface Units (NIUs) using proprietary protocols. There are two production NIUs and one developmental NIU within NovaNET. The majority of NovaNET users (99%) connect via TCP on a combination of LANs, WANs, and the Internet, plus some NovaNET-specific hardware. The NN-specific hardware at the other end of this TCP connection is either a Site Unit or an Ethernet Link Access Unit. 2.4.1 Hardware and Software Configuration The Leased-Line Subsystem consists of the following hardware: Adtran Atlas DS-3 Multiplexer (1): Multiplexes T1 connections onto a DS3 for delivery to the carrier. Adtran 1241 Channel Bank (4): Multiplexes our leased-line phone data prior to it going to the telco cloud. It aggregates serial connections and generates a T1 signal. Developing Draft : Anthony Garone Functional Test Plan Page 16 3/9/2016 NovaNET Link Unit (6): Aggregates up to 240 NovaNET users’ traffic onto 56kbps digital circuits. NovaNET Network Interface Unit (2): Handles network connectivity and bandwidth for leasedline communications between customers and the Central Processing Subsystem. 2.4.1.1 Hardware Configuration Because we are migrating hardware from one physical location to another as part of the Scaling and Migration project, and because the hardware configuration data files are mapped to physical hardware addresses, it is important to replicate physical hardware connections existing in the production environment equipment and our testing environment equipment. This is essential for all telecommunications (“telco”) hardware in our testing environment. Thus, in order to properly configure the hardware, we need to look at the physical telco equipment in the production environment and do port-to-port matching on our testing equipment. 2.4.1.1.1 Connection Hints Link Units and ELAUs connect directly to the NIU from the Atlas. Site Unit circuits hosted in Champaign get routed to a channel back to an OCU card and then off the back of the channel bank to the CSU/DSU to the racks in Champaign and then to the LU. 2.4.1.2 Software Configuration Once the physical hardware configuration is complete, we need to ensure that the software configuration in our testing telco equipment matches current production telco equipment. This is accomplished by connecting to each production telco box via telnet, downloading the config file from the production box, and uploading that config file to the matching test box. Once each production config file is uploaded to its respective testing environment counterpart, we need to verify the validity of the config file. This is done through menu-driven options or Unix file system commands via telnet over the Ethernet interfaces for each piece of hardware. 2.4.2 Tests Tests for the Leased-Line Subsystem can be found in section 5.1.4 on page 29. 2.5 Backup and Recovery 2.5.1 NovaNET Application Disk Packs There exist two types of NovaNET disk pack backups: dailies and exacts. Exact backups are bit-for-bit copies of all NovaNET data stored by the Alpha on the SAN. In the current production environment, exacts are performed early on Saturday mornings after the system is taken down for weekly maintenance. The backups are performed by the command center in our Champaign office. Backups are performed using custom scripts written by John Hegarty. System-level operations/commands are written into these scripts and nearly all of the backup process is automated. The scripts catalog the disk packs and create tar files that are sent to tape. 2.5.1.1 Hardware Application disk packs reside on the Alpha’s SAN. There are two Logical Unit Numbers (LUN) on the SAN that are configured as a mirrored pair on the Alpha using LSM (Logical System Management for building volumes, etc). NovaNET binaries are stored on local mirrored disks on the Alpha. This software is run on local drives with data sources coming from the SAN. The Alpha has Host Bus Adapter cards, so there are two paths to the SAN switches, which connect to the SAN for redundant pathing back to data. If a switch fails, cable, HBA, we have a failover thanks to the HBAs. Developing Draft : Anthony Garone Functional Test Plan Page 17 3/9/2016 2.5.1.2 Software TO DO: Translate. John’s custom software. Records where files are within the disk packs and takes that catalog and stores it in Mysql db on another server and that data is put into tars and noted in the mysql db. System level: John’s shell scripts that initiate the mirror splits, mounting, unmounts, merges back, etc. and LSM, which maintains mirror. 2.5.1.3 Configuration TO DO: Turn into paragraphs. Specific login details are coded into the scripts. Tarfiles are stored in /nova/data/tarfiles, though the scripts are being reprogrammed to go to /nova_restore 2.5.1.4 Tests Tests for the NovaNET Application Disk Packs Backup and Recovery can be found in section 5.1.5.1 on page 33. 2.5.2 Databases TO DO: Translate. Oracle database backups are performed on the local machine using Oracle’s RMAN backup software and copied to an nfs mounted directory. The files are then swept to tape. Backups are performed nightly (incremental nightly/full weekly???). All database datafiles and archived transaction logs are backed up. The backup files are then written to ‘/opt/orabkup/novaprd1’, ‘/opt/orabkup/novaprd1/hot_backups’, and ‘/opt/orabkup/novaprd1/exports’, then copied to nfs mount ‘/opt orabkup/novaprd1/hot_backups/TO_ALPHA’. MySQL database backups are performed daily using a Dell-branded DLT4000 tape autoloader that stores 7 DLT type IV tapes. Two sets of 7 tapes are used for this process with tapes being overwritten every two weeks. Other than manually swapping tape sets, the backup process is automated. 2.6 Subsystem Assembly At this point, we have verified the hardware and software functionality of disparate subsystems. We can now assume that all subsystems will interoperate. This is really a matter of attaching each subsystem to the proper network switches and moving on to ‘author-mode’ testing. 3 Author-Mode Verification “Author-mode” is a part of the NovaNET environment that provides behind-the-scenes access to NovaNET software and lessons. We use author-mode tests to verify that NovaNET is functioning from an operational viewpoint. Whether or not user data is fully-functional is not a concern for this stage of testing. If you can get to the sign-on page and get into author mode, NovaNET is considered to be operational. If you can get to the sign-on page, then sign on through author mode, see if you can run ‘comstat,’ if you can get into a notes file, see if the system is ‘generally working.’ Nothing specific in mind. It’s pretty black and white, if you can log on and do anything, there’s no reason to believe that you can’t do everything. You can either get into the app or you can’t. I would be hard pressed to think of a way that NN could be up and running, other than NOW. Maybe one thing to do is to obtain a NOW signon from support and log it on to prove that the NOW system is functioning. Developing Draft : Anthony Garone Functional Test Plan Page 18 3/9/2016 3.1 NovaNET Portal Software 3.1.1 Install Portal To install the NovaNET Portal software, use the three-disc installation media with the following configuration: Host: novanet4.nn.com Port: 722 Leave all other options set to default. After the installation, change the execution target of your desktop shortcut to: "C:\path\to\novanet\WPORTAL\wportal.exe" /m/a/c. The flags at the end of the target call enable certain features that may be necessary for testing. 3.1.2 Tests Tests for verifying Portal installation are found in section 5.2.1 on page 34. 3.2 NovaNET Central Processing Subsystem NovaNET was originally developed on a CDC Cyber and later a Zephyr mainframe. To migrate off of this unsupportable hardware, an emulator was created to run on the Alpha that could run the original Cyber code. The emulator is a binary called xcp. Because emulation is costly from a performance standpoint, a translator was also written to translate native Cyber code into native Alpha code. When running NovaNET, the AlphaServer runs multiple instances of a binary called executor. The executor keeps track of all active users and runs TUTOR lesson binaries. The executor is essentially the NovaNET operating system. It is a low-level NovaNET system file. It is written in COMPASS (a language proprietary to the CDC mainframe), processed by the Unix Port software tools, and run by an instance of xcp. Multiple copies of the executor can be run to distribute the user load. The executor is an operating system unto itself. It provides timesharing for thousands of simultaneous users who run in their own virtual threads of TUTOR code within this program, as well as a file system, memory facilities, timing, and other facilities. Written in COMPASS and running within the emulator, certain heavily-executed portions of the COMPASS image have been modified so they could be translated into Alpha machine language by the translator and are loaded into the emulator as shared libraries. Other small portions have been implemented as C subroutines. The bulk of the code is emulated COMPASS machine code. The emulator is a binary written in C that provides emulation/execution of NOS executables for CDC mainframes in the Tru64 Unix/Alpha environment. The programs CONDEN (a lesson condenser) and PLATO (executor) run within the emulator. Applications that run on the Alpha are Compass, Loader, Translator, PSCM, Ncd (Cnet), C-Router, Format, Framat, Mastor, OsirisFileD, and OsirisRXD. Most of these are part of the Tutor development Environment. TO DO: Move. NCD: CNet Daemon. The CNet Server, /nova/bin/ncd, implements communication between the executor (including TUTOR lessons) and external machines, such as the NIU, and the computers that support services such as Telnet and e-mail exchange. These systems also run CNet servers of their own. The CNet servers exchange short CNet messages encapsulated in UDP datagrams. The executor initiates CNET connections by contacting the CNet server through MASTOR; once a connection is established, messages are passed directly between the CNET server and executor. TUTOR lessons can access CNET features using the –cnet- TUTOR command. Supervisory messages between the Developing Draft : Anthony Garone Functional Test Plan Page 19 3/9/2016 executor and the NIU travel via CNET, but not terminal input and output. NCD, the CNET server, is written in C, and the same source code is used on all CNET systems. It runs directly under UNIX. 3.2.1 Tests Tests for the Central Processing Subsystem are found in section 5.2.2 on page 34. 3.3 NovaNET NOW Delivery Subsystem To test the NOW Delivery Subsystem, we must access a lesson in author-mode that makes use of the NOW components. 3.3.1 Tests Tests for the NOW Delivery Subsystem can be found in section 5.2.3 on page 36. 3.4 NovaNET DMZ Customer-Facing Subsystem 3.4.1 Stargate and Lynx The Lynx web browsing server is only available to customers connecting via an NIU. As such, this test will only be possible by connecting through a serial data connection to NovaNET. When a NovaNET user accesses a lesson utilizing the functionality of Lynx, control of the user is passed from the central AlphaServer to Stargate and Lynx. If Lynx is functional within NovaNET, we can verify that Stargate is functioning properly. To access Lynx within NovaNET, use the ‘lynx’ or ‘internet’ lessons. The following is a screenshot of the ‘lynx’ lesson: Developing Draft : Anthony Garone Functional Test Plan Page 20 3/9/2016 Figure: ‘lynx’ lesson demonstrating Lynx web browser functionality 3.4.2 ELAU Using the Portal application, we will connect to NovaNET by configuring Portal to use an ELAU for its connection host. Assuming the Portal configuration as described in section 3.1.1, we now have access to the administrative menus available in the Portal application. In our current production environment, if Portal is configured to use ‘staff.nn.com’ on port 722, it will connect through the Wilmington testing ELAU. Use the ‘File > Close Connection’ option. Portal will display a white screen with black text confirming disconnection. Use the ‘Settings > Communications’ option. Configure the connection according to what you are testing. Use the ‘File > Open Connection’ option to connect using the new configuration settings. If Portal can connect using the new settings, we have verified the functionality of the ELAU. Developing Draft : Anthony Garone Functional Test Plan Page 21 3/9/2016 3.4.3 INIU Using the Portal application, we will connect to NovaNET by configuring Portal to use an INIU for its connection host. Assuming the Portal configuration as described in section 3.1.1, we now have access to the administrative menus available in the Portal application. In our current production environment, if Portal is configured to use either ‘novanet4.nn.com’ or ‘novanet5.nn.com’ on port 722, it will connect through an INIU. Use the ‘File > Close Connection’ option. Portal will display a white screen with black text confirming disconnection. Use the ‘Settings > Communications’ option. Configure the connection according to what you are testing. Use the ‘File > Open Connection’ option to connect using the new configuration settings. If Portal can connect using the new settings, we have verified the functionality of the INIUs. 3.5 NovaNET Leased-Line Subsystem Assuming we have verified the functionality of the Alpha and the NOW delivery mechanism (in author mode), we can test the serial telecommunications subsystem. The best way to locally test the LeasedLine Subsystem is using the EMP tools built into NovaNET. EMP is a proprietary protocol that allows us to monitor and manage NovaNET hardware and connectivity throughout the environment. 3.5.1 ‘Comstat’ Tests Comstat will tell us that the system is able to communicate with the Link Units connected to each NIU. Because LUs are daisy-chained, comstat will be able to tell us the status of all LUs within our network in a short amount of time. If the NIUs can see connectivity from an LU, then we can deduce that all other circuits will follow suit. To access ‘comstat’ we must log into NovaNET using an account in the group ‘novanet’. This will bring us to the author mode page prompting us to type in a lesson name. It is here that we will type ‘comstat’ and hit enter. 4 End-User Verification The purpose of End-User testing is to verify that the system is functional from end to end using the different roles that interact with the system. These roles include the NovaNET Site Director, Instructor and Student. 4.1 User Scenarios The following table defines at a high level the scenarios that will be executed for End-User testing for the Scaling Project. ID Scenario 1 Scenario Name Scenario Summary Create Student and Assign Curriculum Create a section and a student, add the student to the section. Add a curriculum and catalog to the site (via the Curricula button), then add them to the section, then assign some curricula to the student within the new section. Developing Draft : Anthony Garone Functional Test Plan Page 22 Complete Lesson and View Report Modify User data and privileges Login as a Student (from Scenario 1) and complete assignments within assigned curricula to different points. Login as Teacher and Run Reports on Student to verify Usage Modify the signon's name and access privileges Scenario 4 Deactivation/Reactivation Deactivate and reactivate a signon, Deactivate a signon and create a new signon with the same name Scenario 5 Scenario 6 Delete a section and move assignments Reports Delete a section. Move a signon's assignments between sections Run several types of reports with varying options Scenario 7 Navigation - Go To Use the Go To feature to switch between students and flags Scenario 8 Assignment Templates Create an assignment template for the section. Modify the settings for the section. Scenario 9 Bulletins Create bulletins at the site, section and student levels Scenario 2 Scenario 3 3/9/2016 Specific execution steps are defined and contained in a Test Scenario document (location). 4.2 Test Environment The testing will take place from a Windows or Macintosh workstation. Since the focus of testing is on the NovaNET system, the client interface testing will not be a significant factor in the testing. The client will point to the specific NovaNET system under test. 4.3 Test Reporting and Defect Tracking Results of these scenarios will be captured and provided upon completion. Issues found will be directed to the appropriate person. It has not been determined what kind of issue tracking will be done. 4.4 Exit Criteria Successful completion of the above scenarios will finally validate the various components of the NovaNET system. Successful completion of all scenarios is required to Exit the Test Phase of this project. 5 Tests This chapter houses all of the testing methods to verify all matter discussed in previous chapters. Just as the document contains chapters for Subsystem Readiness, Author-Mode Verification, and End-User Verification, this chapter is broken into sections so we can easily find the test we need for each of these major stages in our testing plan. Beyond each of those sections, the tests are aggregated by subsystem for consistency and navigability. Chapter 6 contains checklists relevant to the tests in this chapter. Each checklist should be filled out as a test is being performed. The checklist provides organization to the flow of the implementation and accountability as to who performed each test and how long it took. The checklists are, essentially, high-level overviews of the tests found in this chapter. Thus, each checklist and its respective test should be printed and accompany the tester during the time of testing. In Chapter 7, there exists a table (see section 7.1 on page 39) showing which steps are performed in which phase. The tests are further organized into logical “testing rounds” with each round containing tests to verify certain aspects of the phase’s implementation. This chapter provides no guidance as to which tests need to be performed during which phase, but rather serves to allow quick access to all tests and their methodologies. Developing Draft : Anthony Garone Functional Test Plan Page 23 3/9/2016 5.1 Subsystem Readiness Tests 5.1.1 Central Processing Subsystem 5.1.1.1 Verify Remote Login to Alpha SSH must be used to verify the ability to remotely access the Alpha server. Options to do this include a standard SSH client from a desktop system (e.g. putty) or use of the SSH command line utility from another system. A user other than root must be used to log in to the system; root authentication via ssh is disabled. Here is a sample SSH connection: psadmin@cdc-480-1 : ssh 159.182.104.104 psadmin@159.182.104.104's password: Last login: Wed Dec 19 21:48:38 CST 2007 from 159.182.104.75 HP Tru64 UNIX V5.1B (Rev. 2650); Fri Nov 30 09:56:50 CST 2007 NHD Rev(V7.0) installed The installation software has successfully installed your system. There are logfiles that contain a record of your installation. These are: /var/adm/smlogs/install.cdf /var/adm/smlogs/install.log /var/adm/smlogs/install.FS.log /var/adm/smlogs/setld.log /var/adm/smlogs/fverify.log - configuration description file general log file file system creation logs log for the setld(8) utility verification log file No mail. cdc-es80-1.nn.com> 5.1.1.2 Verify Disk Storage Connectivity Between Alpha and SAN The ‘/nova/data/disks/’ file system is located on the SAN. To verify that this is mounted on the system, the following can be executed in a command line: cdc-es80-1.nn.com> df -k | grep /nova/data/disks nova_domain3#nova_data_disks 94367744 55369151 /nova/data/disks 38988992 59% Something similar to the line above should be returned after the ‘df’ command is executed. To verify read and write capabilities, perform the following as the NovaNET root user without error: # cd /nova/data/disks # touch testfile # ls -l testfile -rw-r--r-1 root # rm testfile novanet 0 Dec 19 22:49 testfile To ensure both paths to the SAN are active, start by determining which devices are being presented from the SAN. Perform the following for the CX400 connected Alpha systems: # hwmgr view devices |grep DGC 275: /dev/disk/dsk5c DGC 276: /dev/disk/dsk6c DGC Developing Draft : Anthony Garone RAID 5 RAID 5 IDENTIFIER=0 IDENTIFIER=1 Functional Test Plan Page 24 3/9/2016 This shows that dsk5 and dsk6 are presented from the CX400. Now, execute the following: # hwmgr -show scsi –full SCSI DEVICE DEVICE DRIVER NUM DEVICE FIRST HWID: DEVICEID HOSTNAME TYPE SUBTYPE OWNER PATH FILE VALID PATH ------------------------------------------------------------------------266: 0 cdc-es80-1 disk none 2 1 dsk0 [1/0/0] WWID:0c000008:000c-50ff-feb7-f702 BUS TARGET LUN PATH STATE --------------------------------1 0 0 valid SCSI DEVICE DEVICE DRIVER NUM DEVICE FIRST HWID: DEVICEID HOSTNAME TYPE SUBTYPE OWNER PATH FILE VALID PATH ------------------------------------------------------------------------267: 1 cdc-es80-1 disk none 2 1 dsk1 [1/1/0] . . [deleted] . . SCSI DEVICE DEVICE DRIVER NUM DEVICE FIRST HWID: DEVICEID HOSTNAME TYPE SUBTYPE OWNER PATH FILE VALID PATH ------------------------------------------------------------------------275: 7 cdc-es80-1 disk none 2 4 dsk5 [0/0/0] WWID:01000010:6006-0160-6ee4-0e00-8593-e392-e5d6-da11 BUS TARGET LUN PATH STATE --------------------------------0 0 0 valid 0 1 0 valid 3 0 0 valid 3 1 0 valid SCSI DEVICE DEVICE DRIVER NUM DEVICE FIRST HWID: DEVICEID HOSTNAME TYPE SUBTYPE OWNER PATH FILE VALID PATH ------------------------------------------------------------------------276: 8 cdc-es80-1 disk none 2 4 dsk6 [0/0/1] WWID:01000010:6006-0160-6ee4-0e00-8493-e392-e5d6-da11 BUS TARGET LUN PATH STATE --------------------------------0 0 1 valid 0 1 1 valid 3 0 1 valid 3 1 1 valid . Developing Draft : Anthony Garone Functional Test Plan Page 25 3/9/2016 . [deleted] . Find the sections that describe dsk5 and dsk6. Note the ‘PATH STATE’ portion of those disks—all paths should say ‘valid’. If any say ‘stale’, there is either a problem with the path or with the LUN itself. 5.1.1.3 Verify Read/Write to SAN To verify that the CX400 is functioning properly, access the SAN management utility Navisphere via http://159.182.104.70. After logging in, ensure that there are no faults on the main screen. This is what the CX400 looks like with no faults (note: there are other applications hosted on the SAN, so faults on the SAN may not necessarily be relevant to the NovaNET Central Server): Figure: Navisphere Interface 5.1.1.4 Verify Connectivity to Primary NovaNET Components Since the AlphaServer is the central component in the NovaNET network, nearly every component communicates with it. While remotely logged into the AlphaServer, we should be able to ping each of the servers/components listed in the Production Component List in section 1.5.1 on page 1. 5.1.2 NOW Subsystem 5.1.2.1 Osiris Execution System 5.1.2.1.1 Verify remote login to all NOW Servers Just as we performed in section 5.1.1.1 for the AlphaServer, we need to open SSH connections to each of the NOW servers (including the application and catalog servers). Please refer to the Appendix section 7.3 for a table of important IP addresses and hostnames. Developing Draft : Anthony Garone Functional Test Plan 5.1.2.1.2 Page 26 3/9/2016 Verify existence of NOW apps on NOW Servers Verify the applications ‘imsguide2_2’ and ‘imslearn2_2’ are in the ‘/nova/Osiris/bin/’ directory. Verify they are owned by ‘Osiris/Osiris’ with read and execute permissions. While these applications are locally executable, they perform with severely limited functionality outside of a working NovaNET environment. 5.1.2.1.3 Verify connectivity between NOW servers and Alpha Because these servers communicate using a proprietary NovaNET communications protocol, it is nearly impossible to tell if these machines have functional connectivity without a working NovaNET environment. We can, however, send ping packets to make sure the machines can communicate. 5.1.2.1.4 Verify connectivity between NOW servers and multiplexers Much like connectivity between NOW servers and the Alpha, it is difficult to determine production connectivity and functionality outside of a working environment. We can, however, send ping packets between the machines to ensure basic network connectivity. 5.1.2.2 Oracle Databases There is a series of tests to be performed to ensure functionality of an Oracle database. Please see Oracle database migration checklist located in the appendix of this document. 5.1.2.2.1 Verify Connectivity and Functionality of Oracle SAN TO DO: Translate. This is a sys admin task. They connect to the SAN and present mount points to the DBA team for use. The admins would need to provide steps on verifying that the SAN works properly and is properly configured. All a DBA would do on this task is ensure that database mount points are owned by user oracle group dba. Also would verify that user oracle can write files to the mount points. 5.1.2.2.2 Verify Functionality of Clean Oracle Installation TO DO: Provide link to the checklist in Appendix provided by Laryssa. 5.1.2.2.3 Migrate Data from Production to Testing Environment TO DO: Laryssa will fill in process 5.1.2.2.4 Verify NovaNET Architecture (users, tablespaces) and security are properly set up in the database 5.1.2.2.5 Verify Connectivity between NOW Application Servers and the Database Multiplexers TO DO: translate, get real information. This is not a DBA task as we have nothing to do with the NOW App servers and the DB multiplexers. Not sure who would handle this. 5.1.2.2.6 Verify Connectivity between Multiplexers and Oracle Database Server The Oracle multiplexers execute a process called ‘procseb’ that logs into the Oracle database. With this subsystem running, check the Oracle database connections to ensure that user ‘procseb’ is connected to the database. TO DO: Laryssa will fill in process Developing Draft : Anthony Garone Functional Test Plan Page 27 3/9/2016 5.1.2.3 MySQL Databases 5.1.2.3.1 Verify Remote Login to MySQL Server and Multiplexer TO DO: Create process 5.1.2.3.2 Verify Functionality of MySQL While there is not much to test in an installation of MySQL without concerning ourselves with data, there are still steps we can take to ensure the functionality of the application itself. We can connect to the MySQL engine using the local command line utilities. We can also connect remotely using the MySQL command line utilities on another machine. Once connected, we can run sample queries to ensure true relational database functionality. 5.1.2.3.3 Migrate Data from Production to Testing Environment While migrating data from one environment to another is fairly trivial, there are still critical steps to verify that the migration worked properly. We can do so by comparing table sizes (rows, physical data sizes, etc) between the production environment and the testing environment. Since the current production environment does not make use of more modern relational database tools (triggers, stored procedures, etc.), we do not need to worry about anything besides the integrity of the data. 5.1.3 DMZ Customer-Facing Subsystem 5.1.3.1 Hardware and Software Tests 5.1.3.1.1 All Components While the DMZ Customer-Facing Subsystem contains an array of differing hardware and software, we must still test connectivity of all components to one another and to other primary NovaNET components as listed in Appendix section 7.3. 5.1.3.1.1.1 Verify Remote Login Connectivity 5.1.3.1.2 Ethernet Link Access Units (ELAUs) While the ELAU is largely non-functional outside of a live NovaNET environment, we can still test to verify its readiness. The Linux operating system should be in working order and allow remote and local logins. 5.1.3.1.2.1 Hardware Test 5.1.3.1.2.1.1 Verify Serial Card Functionality The ELAU runs proprietary software written in C and Perl. Although the Linux platform is generic, a custom-written device driver is required for communication with the serial card. It connects user PCs to the NovaNET NIUs across leased lines. How do we verify this? 5.1.3.1.2.2 Software Test 5.1.3.1.2.2.1 Check Configuration File Developing Draft : Anthony Garone Functional Test Plan Page 28 3/9/2016 There’s a script on the ELAU that checks to make sure the config file is compatible with NN. Just because you have a good config doesn’t mean that it’ll work as an ELAU. You can’t tell if it’ll work unless it’s plugged into NN. Where is this script? The ELAU is configured by editing the text file ‘/elau/adm/config’. The file must adhere to a rigorous format and includes both mandatory and optional fields. A template config file is included on each newly-assembled ELAU. Each section of the config file is delimited by a label in brackets, i.e. main, rotary, alias. It is highly recommended that you execute the ‘checkconfig’ script after any editing of /elau/adm/config to ensure that the file still meets the format guidelines. The ELAU process will restart if /elau/adm/config is not in the proper format, but users will not be able to connect to the ELAU. You must also run the command ‘nnschedulecycle’. Without this command, you could lose all changes after the nightly system restart. 5.1.3.1.3 Internet Network Interface Units (INIUs) 5.1.3.1.3.1 Machine Operation Similar to ELAU. Log on, Linux. See if they’re working, see if the INIU process is configured and running. 5.1.3.1.3.2 Verify Existence/Locations of Run Files, Support Scripts, and Logs 5.1.3.1.3.3 INIU Software Operation: ‘nc’ Process The INIU process ‘nc’ must run under user ‘root’, should run at all times, and does not ever need restarting. It has an entry in ‘/etc/inittab/’ for this purpose: ‘hn:2345:respawn:/nova/bin/hybridniu’. 5.1.3.1.4 Stargate Server TO DO Stargate is a custom-configured box designed to work specifically within NovaNET using the cnet protocol. There is only one Stargate server amongst all NovaNET environments. ‘netmon’ is a lesson in NovaNET that will allow us to see if Stargate is running. 5.1.3.1.5 Lynx Server Lynx is a Linux-based machine running the Lynx text-based web browser. It handles Stargate’s web requests. NovaNET has a gateway to text-based web browsing. 5.1.3.1.5.1 Machine Operation This is a Linux-based server, so we can log in to the system and verify that everything looks normal and operational. Verify that Lynx is installed on the server. 5.1.3.1.5.2 Verify Lynx installation and connectivity to Internet This step cannot be completed unless the NN portal client is connected via an NIU. 5.1.3.2 Connectivity Tests TO DO: Translate. Attempting to connect on all domain names that exist on INIUs and Pilot ELAU. So, using NN portal software to attempt to connect to existing rotaries. I don’t know if you can do this when it’s not “live.” The IPs will all be translated so we can say, “I know that this IP is going to be the one used for customer2.nn.com, so if I can connect to that IP address and one of the available port numbers, then we’ve proven that once the DNS has changed, then it’ll work.” Developing Draft : Anthony Garone Functional Test Plan 5.1.3.2.1 Page 29 3/9/2016 Verify external access to DMZ The simplest way to verify external access to the DMZ is to run Portal from outside the Pearson network. This can be as trivial as going to a local coffee shop and connecting to their wireless service or as complicated as connecting to a home network via VPN and testing Portal on a remote machine. Either way, the end result of such tests yields the same result: whether the DMZ is functional or not. 5.1.3.2.2 Verify internal access to DMZ TO DO: Translate. Assuming that NN system we’re testing is up and running, to me the thing to do would be to use the NN portal software and connect to a rotary and see the sign-on page come up. Clarification: To prove there is access, you prove there is connectivity. The easy way to prove there is connectivity to a NovaNET delivery device (no matter what the device is: SU, ELAU, INIU) is to connect as a customer would. In other words, to a configured rotary on that device using the NovaNET Portal software. 5.1.4 Leased-Line Subsystem 5.1.4.1 Hardware and Software Tests The following tests cannot be performed without physical connectivity between components. Such connectivity is described in the previous section. 5.1.4.1.1 Atlas DS-3 Multiplexer The Atlas multiplexes T1 connections onto a DS3 for delivery to the carrier. 5.1.4.1.1.1 Hardware Test The Atlas has 8 card slots with either DS-3 cards or “quad T-1” cards (cards with four jacks for four T1 connections). There are LED indicators on the faces of these modules to show the ready-state of each card. After the Atlas has been powered on and its software booted, none of the modules in the unit should be in the “alarm” state. If the Atlas is not connected to connection signal, the alarm light will turn on. If the Atlas is connected to a signal and the alarm light persists, turn off the unit and re-seat the appropriate modules. Ensure that the cable connectors are properly seated on both ends of the connection. 5.1.4.1.1.2 Software Test After the hardware has been verified as functional and no modules are in their alarm state, we can connect to the console port of the Atlas to verify that the internal software is functional. 5.1.4.1.2 Adtran 1241 Channel Banks The Adtran 1241 channel bank multiplexes our leased-line phone data prior to it going to the telco cloud. It aggregates serial connections and generates a T1 signal. 5.1.4.1.2.1 Hardware Test The Adtran 1241 is similar to the Atlas Multiplexer in that the alarm LEDs will turn on if the connection modules have no connectivity. If the alarm lights persist after attaching the appropriate connections, re-seat the module(s) and check cabling at both ends of the connection. 5.1.4.1.2.2 Software Test After the hardware has been verified as functional and no modules are in their alarm state, we can connect to the console port of the Atlas to verify that the internal software is functional. Developing Draft : Anthony Garone Functional Test Plan 5.1.4.1.3 Page 30 3/9/2016 Network Interface Units The NIUs are custom-made computers with a VME multi-bus chassis. On the VME bus is an “Alpha-on-acard” running Digital Unix and SBE 8-port serial cards. The serial cards are the connections from either ELAUs or LUs and can handle either 8 fractional T1 serial connections or one full T1 connection. There may be more than one LU on a single line, however only one ELAU may be plugged into a serial port. As of this writing, there are 12 serial cards in NIU1 and 8 in NIU2. The NIU’s primary functions are to transmit and receive frames between the Framer and the rest of the NovaNET leased-line network, to meter all data to downstream communications equipment at their optimum rates, to prevent any port from exploiting more than its fair share of bandwidth, to respond to CNet commands, to manage EMP sessions, to continuously gather network statistics, and to send notifications in real-time to the operators and others about communications equipment that goes offline or experiences problems. The NIU utilizes high-speed synchronous serial lines that connect to ELAUs and LUs. It communicates directly with the Alpha over two “channels”: TCP for lesson-related communications with NovaNET users and CNet proprietary protocol over UDP for device management/monitoring functions. 5.1.4.1.3.1 Hardware Test TO DO: Find a hardware test to do on the NIU. From Ray’s e-mail: The serial cards do have some LED indicators. A run, timeout, and failure and then 8 lights for 0-7. When up and running, the run LED is the only lit LED. When booting, I believe they light up in sequence over and over again – but I can’t swear to that. The Alpha card has a single digit LED display which shows a spinning bar when booting. The two NIUs in the machine room are displaying a “0”. 5.1.4.1.3.2 Software Test Testing the NIU before connecting it to NovaNET is limited to ensuring that Unix is running properly. We can test this by connecting to the NIU via telnet over the Ethernet interface. Ensure that the NIU processes—aniu and ncd—are running. ‘aniu’ is the Alpha NIU process and ‘ncd’ is the cnet daemon. Source files are located in ‘/nova/src’. Run files are located in ‘/nova/bin’. The main executable is ‘aniu’. ‘niugo’ starts the NIU process. ‘niustop’ stops the NIU process. ‘niulog’ does a ‘tail’ of the NIU’s log file. The log file is located at ‘/nova/adm/logs/niu.log’. Configuration is accomplished through a NovaNET lesson called ‘niuconfig’, which updates the config file and notifies the NIU process to re-read the config file. The config file resides at ‘/nova/etc/niu.config’. Each NIU has a configuration file that describes the physical layout of its part of the NovaNET network. It uses this layout information to route and meter NovaNET frames. The connections to the NIU are called “lines,” and each line handles one or more LAU addresses. The NIU not only routes the LAU addresses to the proper lines, but it also performs data metering. Metering makes the best possible use of the bandwidth available on our leased lines. In order to do effective metering, the NIU needs to know how equipment is physically connected and what the data rates are. NIUs are configured by the central office with a NovaNET lesson called NIUCONFIG. On some VCOM54 boards we use a piece of proprietary equipment, a Channelizing Adapter, to directly generate a T1 signal. The Channelizing Adapter saves us the cost and bother of using channel banks for this task. Developing Draft : Anthony Garone Functional Test Plan Page 31 3/9/2016 In the downstream direction, the NIU communicates solely by serial connections. In the upstream direction, the NIU communicates to the Framer and to other central system components using cnet via raw TCP/IP over 10BaseT Ethernet. 5.1.4.1.4 Link Units The Link Unit is a proprietary device running custom firmware. It serves as a store-and-forward multiplexer implementing the X-51 protocol. It aggregates up to 16 Site Units onto a fractional T1 circuit and connects directly to the NIU over a serial RS-232 line. The LU is based on five Motorola microprocessors and contains 16 synchronous RS-232 connector, called “taps.” Two synchronous V.35 connectors, called “Head” and “Tail,” provide communications to the NIU and daisy-chained LUs. On the front of the device is an RJ-45 console port. There is also a push-button and a series of status LEDs (“indicators”). They are explained as follows: Mode switch: push button. This switch changes the state of the mode indicator light. Since the state of the mode indicator light can be read over the network, a press of this button can be used to verify that field personnel are at the proper LU. Mode indicator: yellow LED. This indicator is turned off and on by the mode switch, or via the network. Offline indicator: red LED. This indicator is on when the LU is unable to communicate with the NovaNET central system for over two seconds. It should normally be off. Error indicator: red LED. This indicator goes on briefly when the LU detects an internal software problem. It should normally be off. Running indicator: green LED. This indicator is on when the LU is running its internal firmware program. If this indicator is off, it indicates that the LU has failed. Power indicator: green LED. This indicator should be on when power is applied to the LU. If this indicator is off, there is no power to the LU, or the LU’s power supply has failed. On the back of the device are controls, indicators, and connectors: Fuse. 1A slow-blow. AC power connector. This connector is for a 120VAC power cord. Tap connectors (16). These sixteen 25-pin DB-connectors provide access to the LU’s 16 synchronous taps for connecting Site Units. These connectors are used with CSU/DSU. Local tap 0 connector. This RJ-45 is used to connect a Site Unit without CSU/DSU. The SU must be less than 50 feet distant. If the Local Tap 0 connector is in use, the other Tap 0 connector may not be used. 10BaseT Ethernet connector. This RG-45 connector may be used for TCP/IP connectivity. Console connector. This RJ-45 connector allows connection of an RS-232 diagnostic console. There is an identical connector on the front of the box. Head connector. This V.35 M34 is the connection to the NovaNET central system, or to the Tail connector of another LU. It may be connected to the V.35 DTE port of the head-circuit DSU Developing Draft : Anthony Garone Functional Test Plan Page 32 3/9/2016 using a Remote Link Unit able, or, for short distances, a Local Link Unit Cable may be used without a CSU/DSU. Tail connector. This V.35 M34 connector is used to daisy-chain LUs. It allows one LU to connect to another LU. It may be connected to the V.35 DTE port of the head-circuit DSU using a Remote Link Unit Cable, or, for short distances, a Local Link Unit Cable may be used without a CSU/DSU. Documentation exists going into much greater detail about the LU in the NovaNET Link Unit Manual. 5.1.4.1.4.1 Hardware Test When the LU is initially powered on, the power LED should come on solid and the mode, offline, error, and running LEDs will light in sequence. Then, when the LU begins its normal operation, only the power and running indicators will be on. Assuming the LU is connected to the appropriate hardware via the Head and Tail ports, we should see the following indicator LED states: Mode LED: Off (Yellow) Offline LED: Off (Red) Error LED: Off (Red) Running LED: On (Green) Power LED: On (Green) If the Offline LED is on (red), the LU is either not connected properly, the data circuit is not functional, its configuration is incorrect, the NIU to which it is connected is not configured to connect to it, there exists a configuration problem with another LU in a daisy chain, or the data rates in the configuration file are incorrect. If, after initial power-on, the Mode, Offline, Error, and Running indicators are flashing in unison, the LU is in self-test mode. This mode is used during manufacturing and initial programming of new LUs. New (non-programmed) LUs will go into this mode when powered on. Programmed LUs can be put into selftest mode by holding the Mode switch in during power-on. 5.1.4.1.4.2 Software Test The LU is configured through software using a simple command-line interface called the Link Unit Monitor. This interface can be accessed by connecting a terminal (typically a laptop with an ASCII terminal program) to either of the LU consol ports. In addition, the command interface can be accessed from the NovaNET central system using the Embedded Monitor Protocol (EMP). The console port is intended to be used by a technician on site during installation and setup. The central system interface makes it possible to remotely diagnose and correct some LU problems. To connect a computer to the LU console port, use a standard LAB8 adapter and a straight-through RJ45 cable. Set a standard ASCII terminal program to 8 bits, no parity, with 1 stop bit. You can use any baud rate between 1200 bps and 115,200 bps (57,600 bps is recommended). After connecting press RETURN to let the console port auto-baud to the correct speed. This will cause the LU to respond with a >>> prompt. At this prompt you can type ‘help’. This will list the LU commands and variables. The LU variables have names with periods in them. The variable values can be inspected by typing the variable name and hitting return. The variable values can be changed by typing the variable name, Developing Draft : Anthony Garone Functional Test Plan Page 33 3/9/2016 typing an ‘=’ and then typing a new value for the variable. Changes to variable values are permanently stored using the ‘config save’ command. Detailed instructions for LU commands can be found in the NovaNET Link Unit Manual document. 5.1.4.2 Connectivity Tests 5.1.4.2.1 Atlas Loopback Testing In order to test the telco hardware and network, we need to set up loopback test with the channel service unit (CSU) and data service unit (DSU) at both ends of our serial-line connection. With each loopback test, we work with the telco vendor (Verizon as of this writing) to verify that they see our loopback and we verify that we see their loopback. We “see” a loopback by sending a particular data pattern to Verizon’s loopback and it “loops back” to us. Verizon does the same on their end when we set up our loopback. The loopback being performed is software-based. Hardware-based loopback tests depend on wire swapping in the RJ-45 plug. In a typical 56kbps T1 RJ-45 connector, there are two wires for data transmission and two wires for data retrieval. By swapping one of the transmit wires for one of the receive wires, we create the loopback-capable cable. Instead of physical wire-swapping, we depend on the electronics within the telco equipment to do a software-based wire swap. The loopback test will be performed using our Atlas DS-3 Multiplexer. Using the Ethernet interface, we will telnet into the hardware and use the menu-driven interface to send signal patterns. Make sure all configuration of NIUs, INIUs, LUs are copied over from production in order for the sites to run properly when production is moved. TO DO: Step-by-step process 5.1.5 Backup and Recovery 5.1.5.1 NovaNET Application Disk Packs 5.1.5.1.1 Running the backup An operator at CDC or wherever logs into the alpha as operator and run ‘scripts’ that brings user to directory that contains backup scripts. http://medusa.nn.com/opsmanual/nova/exacts.html 5.1.5.1.2 Verifying the backup Run an exact, have the backup client in IAC (Tivoli) write to tape. Make request to have that tar file restored from tape. Run John’s software to run specific file and verify that it was successful. Restoring involves running John’s software to find out which tar file we need to retrieve using the Mysql db catalog. Make request to have that tar file restored from tape. John is modifying his C++ software to read the restore tar file from /nova_restore so when you make a request for a tar file, you need to specify that you need it in /nova_restore. Once you know the file exists, then run John’s software. May or may not be current: http://medusa.nn.com/opsmanual/nova/backuprequests.html Located on esker at ‘/nova/proc/scripts’; points to ‘/nova/scripts/backup/’. Developing Draft : Anthony Garone Functional Test Plan Page 34 3/9/2016 Mesa RAID is #29 on Waldo. Mesa’s scripts are at ‘/nova/proc/scripts’, which call stuff at ‘/nova/scripts/Backup/’. These are “expect scripts”—do what you would do on Waldo—so the password is contained in these scripts. Exacts: Saturday morning; ‘/nova/proc/scripts/diskclone’ runes ‘/nova/scripts/Backup/DoExacts’. 5.1.5.2 Database Backups 5.1.5.2.1 Verify Oracle Backup TO DO: Get process 5.1.5.2.2 Verify MySQL Backup TO DO: Get process 5.2 Author-Mode Tests 5.2.1 Portal Application 5.2.1.1 Testing Connectivity Double-click the NovaNET icon to test connectivity The login screen will prompt you for the following items. Type these adjoining items: o Group Name: nndemo o Username: nncheck o Password: not required If you do not see any errors and see the student index screen, your connection to the system is working. If you receive any errors, please call our Product Support Contact Center for assistance. TO DO: Make sure flags in shortcut are called 5.2.2 Central Processing Subsystem As we’ve already established, the Alpha is the most critical piece of the NovaNET environment. If the Alpha and its software are not fully functional, NovaNET cannot be fully functional. First we will make sure everything is in place for NovaNET to run and then we will attempt to run NovaNET locally. Once the NovaNET executables are running, we can determine (somewhat) if NovaNET will operate successfully when all subsystems are attached. If there are execution errors, we must determine what they are and fix them. When moving from one AlphaServer to another, using different versions of Tru64 Unix, we can experience interoperability issues between the different executables. Some of these issues can be attributed to compilation issues while others may be less intricate, such as an improperly formatted configuration file. By verifying the functionality of the NovaNET software, we also verify communication between the AlphaServer and the SAN and ensure its proper functionality. 5.2.2.1 Verify Nova Installation The software that is executed on the Alpha is called Nova. The terms ‘Nova’ and ‘NovaNET software,’ in the context of the Alpha, may be used interchangeably. Developing Draft : Anthony Garone Functional Test Plan 5.2.2.1.1 Page 35 3/9/2016 Ensure Proper Directory Structure Exists Four directories should exist within ‘/nova/’ for software, data, and configuration: /nova/data /nova/adm /nova/bin /nova/dumps/current 5.2.2.1.2 Ensure Executables Exist Nova binaries will exist in /nova/bin. 5.2.2.1.3 Ensure Proper Configuration Configuration for the new Alpha will be copied directly from the Mesa AlphaServer. Since we will only be changing IP addresses on the two machines (thereby “replacing” Mesa with the new Alpha), we will not need to reconfigure the new Alpha in any other way. Not everything nova-related is based on config files. Some binaries needed recompiling to work on the new Alpha because the compilers between the old and new Alphas were different and the binaries exhibited shared library issues upon initial execution. 5.2.2.1.4 Ensure Executable Interoperability When we execute the Nova application, there are ways of determining whether the binaries are interoperable and able to run at the same time. We have log files to assist us, data dumps from execution errors, and other tools at our disposal. 5.2.2.2 Verify NovaNET SAN Data Because the ssh client in the Tru64 Unix distribution on the new Alpha exhibited performance issues, we will use the freely-distributed OpenSSH application to create an SSH tunnel between the two Alphas and perform scp commands to copy all relevant data. 5.2.2.3 Verify NovaNET Operation With the NovaNET executables verified as functional, we can try logging into NovaNET using the Portal application. 5.2.2.3.1 Log In Using Portal In order to log in and enter ‘author-mode’, you must use a login within the ‘novanet’ group. NOTE: The configuration of Portal may need to be updated to log into the developmental Alpha we are testing. 5.2.2.3.2 Access Notes File At the ‘author-mode’ screen, type ‘notes’ and hit enter to access the Notes lesson. We can try writing a note and sending it, but if we’ve gotten this far, the notes should work fine. Developing Draft : Anthony Garone Functional Test Plan Page 36 3/9/2016 5.2.3 NOW Delivery Subsystem 5.2.3.1 NOW Student Login At the login screen, try to log in using a student login from the NOW student system. If the login attempt is successful, we can be assured that basic NOW functionality is available and that the NOW delivery subsystem is responding. 5.2.3.2 ‘now’ Lesson At the ‘author-mode’ screen, type ‘now’ and hit enter to access the NOW lesson. A window with a graphical user interface should show up displaying a scrollable field. If this happens, then the NOW Delivery Subsystem is working fine. 5.2.3.3 ‘testor’ Lesson The NovaNET system provides a ‘lesson’ that lets you measure the performance of the network (among other things). You can either run lesson ‘testor’ from your author mode signon or log in as user ‘testor’ in group ‘m’ to access the testor functionality directly. Option ‘a’ draws a grid that fills the entire Portal screen then outputs (draws) circles to the grid as fast as possible. This test exercises forward bandwidth. Option ‘p’ automatically sends a keystroke to the central system every 5 seconds or so and tracks the round trip time in milliseconds, minimum, maximum, and standard deviation. This test provides a way to gauge the performance of the network. 5.3 End-User Tests 6 Checklists 6.1 Subsystem Validation Tests 6.1.1 Central Processing Subsystem 6.1.1.1 Verify Remote Login to Alpha Remotely connect via SSH to AlphaServer The hostname of the ES80 in Champaign is cdc-es80-1 and its IP address is 159.182.104.104. If connecting to a different Alpha, write the IP address of the AlphaServer here: _______._______._______._______ Test completed by: ________________________________ Test completed on: ___/___/______ at ___:___ 6.1.1.2 Verify Disk Storage Connectivity Between Alpha and SAN Remotely connect via SSH to AlphaServer. The hostname of the ES80 in Champaign is cdc-es801 and its IP address is 159.182.104.104. If connecting to a different Alpha, write the IP address of the AlphaServer here: _______._______._______._______ Developing Draft : Anthony Garone Functional Test Plan Page 37 3/9/2016 Execute ‘df –k | grep /nova/data/disks’. Look for something similar to: nova_domain3#nova_data_disks 94367744 55369151 38988992 /nova/data/disks 59% Execute the following as the root user: cd /nova/data/disks touch testfile ls –l testfile rm testfile Ensure that the testfile was created and removed. Execute the following as the root user: hwmgr –show scsi –full Find the sections that describe dsk5 and dsk6. Note the ‘PATH STATE’ portion of those disks—all paths should say ‘valid’. If any say ‘stale’, there is either a problem with the path or with the LUN itself. Execute the following as the root user: mount Check that the nova_domain1, nova_domain2, and nova_domain3 file domains are mounted. To do this, look through the output of the mount command and compare it to the following, looking specifically for (rw) after each file domain: root_domain#root on / type advfs (rw) /proc on /proc type procfs (rw) usr_domain#usr on /usr type advfs (rw) var_domain#var on /var type advfs (rw) nova_domain1#nova1 on /nova type advfs (rw) nova_domain2#nova_var on /nova/var type advfs (rw) nova_domain2#nova_data_tarfiles on /nova/data/tarfiles type advfs (rw) nova_domain2#nova_restore on /nova_restore type advfs (rw) nova_domain3#nova_data_disks on /nova/data/disks type advfs (rw) Test completed by: ________________________________ Test completed on: ___/___/______ at ___:___ 6.1.1.3 Verify Read/Write to SAN Access Navisphere via http://159.182.104.70. Ensure there are no faults on the main screen. Test completed by: ________________________________ Test completed on: ___/___/______ at ___:___ 6.1.1.4 Verify Connectivity to Primary NovaNET Components Ping the NIUs [NIU1, NIU2, NIUX], INIU [INIU4, INIU5], Osiris [cdc-1955-5, -6, -7, -8, -9], and CNET machines [stargate, mail, medusa, esker] Test completed by: ________________________________ Test completed on: ___/___/______ at ___:___ Developing Draft : Anthony Garone Functional Test Plan Page 38 6.1.1.5 Prepare the Alpha for NovaNET Installation Install additional software packages: java14 & libraries Create directories in /nova for software, data, and configuration: o /nova/data o /nova/adm o /nova/bin o /nova/dumps/current 6.1.1.6 Install/Verify NovaNET Installation Copy binaries, data, and configuration from Mesa using scp via OpenSSH Start up system Log in to NovaNET Verify TUTOR execution 6.1.2 Backup and Restore 6.1.2.1 Backup and Restore on Alpha Daily Backups o Run by cron o Restore as per current procedure Exact Backups o TO DO: John will come up with run method o TO DO: John will come up with restore method 6.2 Author-Mode Tests 6.2.1 Central Processing Subsystem 6.2.1.1 Verify Nova Operation Check for packs being loaded: lesson ‘ldr’ Check CNET: lesson ‘netmon’ Check NOW: lesson ‘nowprod’ Check catalog: lesson ‘catalog’ Developing Draft : Anthony Garone 3/9/2016 Functional Test Plan Page 39 3/9/2016 6.3 End-User Tests 7 Appendix 7.1 List of Tests Performed in this Document Below is a table of all tests documented in this test plan. An explanation of this table can be found after the table. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Subsys CP CP CP CP CP CP CP CP CP NOW NOW NOW NOW Oracle Oracle Oracle Oracle Oracle Oracle MySQL MySQL MySQL DMZ DMZ DMZ 26 27 28 29 30 31 32 33 34 35 36 37 38 39 DMZ DMZ DMZ DMZ DMZ DMZ DMZ DMZ DMZ Telco Telco Telco Telco Telco Test Verify remote login to Alpha Verify disk storage connectivity Verify read/write to SAN Verify Alpha connectivity to primary NovaNET components Verify proper directory structure for Nova Verify Nova executables' installation, configuration, and interoperability Copy data and verify data matches between SANs on old and new Alphas Verify Nova operation Portal: Access notes files Verify remote login to all NOW servers (cdc-1955 farm, Osiris, Horus) Verify existence of NOW apps on all NOW servers Verify connectivity between NOW servers and Alpha Verify NOW performance: 'now' lesson Verify remote login to all database servers and multiplexers Verify functionality of Oracle installation Verify connectivity and functionality of Oracle SAN Migrate/Verify data from production to testing environment Verify connectivity between NOW app servers and multiplexers Verify connectivity between multiplexers and Oracle DB servers Verify remote login to database server and multiplexer Verify functionality of MySQL Migrate/Verify data from production to testing environment Verify remote login to all components Verify serial card in ELAU Verify configuration file on ELAU Verify existence/proper location of run files, support scripts, and logs on INIU Verify 'nc' and other processes on INIU Verify Lynx installation and connectivity to Internet Verify functionality of Stargate Verify internal connectivity to DMZ Verify external connectivity to DMZ Verify Stargate/Lynx in Portal: 'lynx' and 'internet' lessons Verify Portal connectivity through ELAU(s) Verify Portal connectivity through INIU(s) *** Verify physical connections on telco equipment Verify functionality status of telco equipment (hardware LEDs) Verify functionality of NIUs (hardware LEDs) Verify NIU software location and running status Verify NIU configuration files Developing Draft : Anthony Garone Best 0 5 5 15 5 5 300 15 5 15 30 20 5 10 0 0 0 0 0 5 20 45 0 0 0 Optimal 5 10 10 30 15 15 360 30 10 25 45 45 10 20 0 0 0 0 0 10 40 90 0 0 0 Worst 60 60 60 60 30 120 720 60 30 45 90 60 45 45 0 0 0 0 0 45 60 120 0 0 0 0 0 0 0 0 0 5 5 5 60 10 10 20 0 0 0 0 0 0 0 10 10 10 90 30 30 40 0 0 0 0 0 0 0 30 30 30 180 120 120 60 0 Pha 2,3 2,3 2,3 2,3 2,3 2,3 2,3 2,3 2,3 2,3 Functional Test Plan 40 41 42 43 44 45 46 47 48 Telco Telco Telco Telco Telco BU BU BU BU Page 40 Verify NIU VCOM boards Verify hardware/software state of LUs Verify telco via Portal: 'comstat' lesson Verify Portal connectivity through telco Loopback tests via Atlas Verify existence/functionality of BU scripts on Alpha Verify backup/restore procedure Verify MySQL backups/restores Verify Oracle backups/restores 3/9/2016 0 0 10 10 0 60 30 0 0 0 0 15 15 0 75 45 0 0 7.1.1 Table Legend Subsys is short for “Subsystem”. The Subsystem abbreviations are as follows: CP => Central Processing Subsystem, NOW => NOW Delivery Subsystem, Oracle => NOW Oracle Database Subsystem, MySQL => NOW MySQL Database Subsystem, DMZ => DMZ Customer-Facing Subsystem, Telco => Leased-Line Subsystem, BU => Backup and Recovery. The “Best,” “Optimal,” and “Worst” columns represent the estimated time (in minutes) for completion of the related test. The “Phases” column represents which phases of this project in which the test will be performed. P2Round is the round, or collection, of tests to which that particular test belongs. Please see the proceeding section (section 7.1.2) for more information on testing rounds. Tester is a column representing who will perform each test. JH => John Hegarty, RT => Ray Thomsen, SL => Steve Litt, FL => Frank L’Odense, RI => Renee Inman, AG => Anthony Garone, LK => Laryssa Kachorowsky. 7.1.2 Phase II Implementation Rounds of Tests The goal of Phase II is to replace the current production AlphaServer (Mesa) with the new ES80 AlphaServer. In order to do this, we will introduce the new AlphaServer into the development environment by replacing Esker, which is the current development AlphaServer. Once we verify the functionality of the new AlphaServer as a fully-functional development AlphaServer, we can qualify it to run as the new production AlphaServer. Phase II implementation will occur on Presidents’ Day weekend with a go-live date of February 18, 2008. The benefit of changing nothing but the AlphaServer is that no configuration changes need to occur except for those relating directly to the AlphaServer. For example, we will be changing the IP address and server name on the machine, but none of the other components will know that the Alpha has changed. 7.1.2.1 Round 1: Low-Level Alpha Verification During Round 1 of Phase II implementation, we will verify that the AlphaServer is functional as a standalone server. We will verify that we can remotely connect to the machine, verify that it is connected to and functioning with the SAN, and verifying that the directory structure is in place to install the Nova software. 7.1.2.2 Round 2: Alpha Connectivity and Configuration During Round 2 of Phase II implementation, we will verify that the AlphaServer is able to communicate over our network with all relevant NovaNET subsystems and components, is properly configured to run the Nova software, has the Nova software installed with the software’s correct configuration, and has meaningful production-level data to work with on its SAN. Developing Draft : Anthony Garone 0 0 30 30 0 150 60 0 0 2,3 2,3 2,3 Functional Test Plan Page 41 3/9/2016 7.1.2.3 Round 3: Nova Software Round 3 of Phase II implementation will consist of running the Nova software on the AlphaServer without running into any issues. Because the operating environment for the Nova software is very technical and has some compiler dependencies, we need to make sure we can get the software running before we connect any other subsystems and, thus, Portal clients to it. 7.1.2.4 Round 4: Portal Connectivity Round 4 will ensure that all means of connecting to NovaNET through the Portal application are available and functional. This involves connecting to NovaNET using a serial data connection (which tests the NIUs), using an ELAU, and using an INIU. Because the only changed variable is the AlphaServer in Phase II, any issues in this round of testing will likely have to do with configuration and not with the communication components. This round of testing will not deal in any way with functionality of Portal or accessing any features offered by NovaNET. 7.1.2.5 Round 5: Basic Portal/NovaNET Functionality In Round 5, we will test functionality within NovaNET starting small and working outward. Some of the more basic features of NovaNET are logging in, accessing lessons, and testing notes files. Some of the more complicated features of NovaNET are the ‘comstat’ lesson (which employs EMP connectivity to many NovaNET components), the ‘lynx’ or ‘internet’ lessons (which demonstrate the functionality of the Stargate and Lynx servers), the ‘now’ lesson (which demonstrates the functionality of the NOW Delivery subsystem), etc. 7.1.2.6 Round 6: Backup Testing By the time we reach round 6, we will have verified that NovaNET is fully-function under the operation of the new AlphaServer. We can now concern ourselves with backing up the restoring data since we know we have a system that will not compromise the integrity of the data upon which it operates. 7.2 Central Processing Subsystem Software 7.2.1 NovaNET System Software Components 7.2.1.1 Development Tools COMPASS: An assembler for CDC Cyber mainframe assembly language code (called COMPASS). Developed as a drop-in replacement for the original NOS-based CDC assembler, with added facilities to make some translation into native Alpha machine code and calls to native compiled HLL code possible. It is used to assemble the hundreds of thousands of lines of code comprising the CONDEN and PLATO programs into object files containing CDC mainframe machine code, which can be linked together into programs by the LOADER. ~15000 lines of C++ code. LOADER: A linker/loader for CDC mainframe binaries. Developed as a drop-in replacement for the original NOS-based CDC loader. Links COMPASS object files together into valid NOS format binaries for CDC mainframes, which can be loaded by the EMULATOR and executed. The loader has additions to export portions of the code to be treated by the TRANSLATOR to create native Alpha machine code. ~2500 lines of C++ code. TRANSLATOR: A program to translate CDC mainframe machine code into Alpha machine code, which are then loaded into the EMULATOR as shared libraries and via special mechanisms in COMPASS and the assembly code can be invoked from the emulated CDC machine language. ~5000 lines of C code. Developing Draft : Anthony Garone Functional Test Plan Page 42 3/9/2016 7.2.1.2 Basic Delivery Components ALARMD: Alarm daemon. This program forwards notifications of exceptional conditions to the remote alarm board machine where the system operator can view them. ~250 lines of C code. CONDEN: TUTOR condensor. Compiles TUTOR code – the language used to develop all software on the NovaNET system – into COMPASS machine code and pcode. The condensor now runs within the EMULATOR Unix process instead of being a process running under NOS on a CDC mainframe. ~80000 lines of COMPASS code. EMULATOR: Provides for emulation/execution of NOS executables for CDC mainframes in the Tru64 Unix/Alpha environment. The programs CONDEN and PLATO run within the EMULATOR. ~2500 lines of C code. FORMAT: TUTOR output formatter. Originally written in COMPASS, this program has been rewritten in C/C++ and turns TUTOR outcodes into a stream of the Level One Protocol for display on NovaNET terminals, which mainly consists of microcomputers running Portal software for Windows and Macintosh platforms. ~7000 lines of C&C++ code. FRAMAT: Head end of forward channel of the NovaNET communications network. Takes output from the FORMAT program, frames it and delivers it, via the NIU and telecommunications network, to site units and ELAUs in the CERL X-51 protocol – a windowed error-correcting protocol developed for NovaNET at the University of Illinois. In the reverse direction, the NIU handles the X-51 error correction and the FRAMAT program takes input from terminals and distributes them to either PLATO via EM data structures or via a UNIX socket to the OSIRISRXD program. ~10000 lines of C++ code & ~30000 lines of libraries. FRX: Serves as a stripped down FRAMAT substitute for users that are currently executing internet activities (wx, gopher, telnet, and lynx.) ~3000 lines of C code. IMSGUIDE: The NOW instructor system used by instructors to manage their students. ~125000 lines of C++ code. IMSLEARN: The NOW student system used by students to take lessons on NovaNET. ~45000 lines of C++ code. MASTOR: Processes low-level (sector) disk I/O requests for the PLATO and CONDEN programs, and provides an interface to NCD for PLATO. ~8000 lines of C code. MULTIPLEXOR: Serves as platform-independent connection pooling software between Osiris applications and our Oracle & MySQL databases. ~5000 lines of C++ code. NCD: CNET daemon. Forwards CNET traffic for other physical hosts via UDP. CNET is the communications protocol that was developed for TUTOR/NovaNET prior to TCP/IP protocol availability on the hardware that implemented the system, and CNET is still the only mechanism available for TUTOR software to communicate to other machines & processes. CNET is now implemented using UNIX sockets and UDP. ~3000 lines of C code. NIU: Network interface unit that interfaces to the telecommunications equipment via high-speed synchronous serial cards, delivers all forward channel data and implements the reverse channel portion of the X-51 protocol. ~17000 lines of C code. Osiris library: Provides the GUI, system interfaces, and cross-platform frameworks for the Osiris applications IMSGUIDE & IMSLEARN. ~130000 lines of C++ code. Developing Draft : Anthony Garone Functional Test Plan Page 43 3/9/2016 OSIRISFILED: Provides access to NovaNET files to Osiris programs. ~4000 lines of C++ code & ~30000 lines of libaries. OSIRISRXD: Provides an interface from the TUTOR/COMPASS world to off-host Osiris programs, allowing them to do I/O to user terminals and communicate with TUTOR software programs. ~4000 lines of C++ code & ~30000 lines of libraries. PLATO: TUTOR runtime. An operating system unto itself, it provides timesharing for thousands of simultaneous users who run in their own virtual threads of TUTOR code within this program, as well as a filesystem, memory facilities, timing, and other facitilies. Written in COMPASS and running within the EMULATOR, certain heavily executed portions of the COMPASS image have been modified so they could be translated into Alpha machine language by the TRANSLATOR and are loaded into the EMULATOR as shared libraries. Other small portions have been implemented as C subroutines. The bulk of the code is emulated COMPASS machine code. ~250000 lines of COMPASS code. PORTAL: NovaNET terminal software that customers use to connect to and interact with the NovaNET system. Different code bases for DOS, MacOS, Unix/X11, Windows, and Java. Each version is ~35000 lines of C++ code (except for the Java port, naturally.) 7.3 Hostnames and IP Addresses 7.4 Oracle Database Acceptance Checklist Pre-Install Checks Verify base environment export ORACLE_HOME=/opt/oracle/product/product_version/db_# export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ccs/bin:/usr/bin/X11:/usr/local/bin:$PATH export LD_LIBRARY_PATH=/opt/oracle/product/9.2.0/lib export ORACLE_TERM=xterm Verify umask = 022 (umask) Verify Kernel Settings Get OS specific kernel settings from Installation document for the installation OS Verify kernel settings Standard Directories Standard ORACLE_HOME /opt/oracle/product/version/db_n Standard ORACLE_BASE /opt/oracle Standard Backup Directories /opt/orabkup /opt/orabkup/$ORACLE_SID/exports /opt/orabkup/$ORACLE_SID/HOT.date* /opt/orabkup/$ORACLE_SID/ARCH.date* Standard Database Directories /u/u0n/oradata/${ORACLE_SID} - data /u/u02/oradata/${ORACLE_SID}/arch - archived redos $ORACLE_BASE/admin/$ORACLE_SID/bdump $ORACLE_BASE/admin/$ORACLE_SID/udump $ORACLE_BASE/admin/$ORACLE_SID/cdump $ORACLE_BASE/admin/$ORACLE_SID/pfile $ORACLE_BASE/admin/$ORACLE_SID/create $ORACLE_BASE/admin/$ORACLE_SID/adump $ORACLE_BASE/admin/$ORACLE_SID/scripts Developing Draft : Anthony Garone Functional Test Plan Standard Script directories /opt/oracle/admin/local/bin /opt/oracle/admin/local/sql /opt/oracle/admin/local/app /opt/oracle/admin/local/log Standard authentication scripts on_${ORACLE_SID}.sql exp.par rman_incremental_hot_backup.parm Oracle SW Install oui location /opt/oracle/oraInventory Enterprise Edition Install - all components dba group as software owner * entry in /etc/oratab for SW release Server Boot Scripts - Unix/Linux - Non RAC /etc/init.d/dbora file /etc/rc3.d/s99dbora link /etc/rc0.d/K10dbora Standard Cron Jobs analyze job export job RMAN Job Jobs scheduled ? Jobs tested ? Monitoring GRID Agents installed GRID Agents reporting in to GRID Server Verify with Admins that Nagios is setup Other Verify Admins sweeping backup directory Database Creation Listener configured Listener resolves instance name pedtech tnsname.ora update Wallet update with ORACLE_SID and Server Create_SYSTEM_NCS4S_Objects.sql Create Procs for SYSTEM_NCS4S Standard sys/system password $ORACLE_HOME/dbs/password file $ORACLE_HOME/dbs/spfile Developing Draft : Anthony Garone Page 44 3/9/2016