Software Development
Development
Kognitive Networks uses cloud-accessible software version control, which mandates secure access and includes features such as branch protection, role-based code review, and integration with tools for continuous integration and deployment (CI/CD). The development process is organized through project management and issue-tracking software platforms and collaborative workspace and knowledge management tools, using Agile methodology with sprints, backlog management, and dedicated phases for testing and feedback.
Software Testing
The process incorporates both manual and automated testing methods to identify and resolve defects before product release. Testing phases are tracked and managed in a secure project management platform, ensuring transparency and accountability throughout the development cycle.
Acceptance Test Procedure (ATP) for Software
Kognitive Networks implements a detailed Software Acceptance Test Procedure (ATP) to ensure that candidate software products comply with security protocols, product requirements, and operational demands. Additional regression testing for cross-platform (hardware and software) feature compatibility is performed for major releases.
Test Environment
Requirements: Preparation and selection of relevant Test Cases (TCs) for feature releases and appropriate regression tests for the Software Under Test (SUT).
Software Build: The current build candidate of the SUT is selected following a standardized procedure and logged on all test result documentation.
Deployment: Representative systems load the SUT for testing, ensuring the environment replicates real-world usage scenarios as closely as possible.
Functional Testing
Unit Testing: Every module and component within the software is tested to ensure that it performs the intended functionality and meets the requirements. This is achieved through automation and manual testing to ensure each and every line of code undergoes testing.
Operational Checks: Verification that all functional aspects of the software operate as intended. This includes device initialization, software reboot/upgrade, and traffic testing.
Feature Testing: Detailed testing of each specific feature as outlined in the product specifications is checked against the TCs to ensure full functionality.
Integration Testing: Ensuring that different components of the software work together seamlessly, focusing on the interfaces and interaction points. Includes internal software feature compatibility, both soft and hard external interface validation, software / hardware multi-platform compatibility testing, and structured regression testing.
System Testing: End- to-End testing ensuring that the system as a whole function as per functional and design requirements when multiple functionalities are performed together.
Security Testing: Assessing the SUT for vulnerabilities and ensuring it meets all security requirements. This includes penetration testing and security code reviews.
Performance Testing: Evaluating the SUT’s performance under expected load conditions to ensure it meets performance criteria, including stress and load testing.
Stage Testing: A staging environment is created as a replica of the end user’s deployment scenario, tests are performed to ensure that the software works as intended in individual customer environments and validated before approved for release.
Regression/Release Testing: Ensuring that all prior existing functionalities perform well when a new functionality or module is added to the software. This set of tests (mostly automated) are performed whenever a new software release is created.
Reporting and Feedback
Test Results Compilation: Documenting the outcomes of all tests, including pass/fail status for each test case and any deviations from expected results.
Issue Logging and Resolution: Recording any non-conformances or defects identified during testing and detailing corrective actions taken.
Continuous Feedback Loop: Utilizing feedback from testing phases to inform and improve subsequent development cycles, maintaining an iterative approach.
Documentation
ATP Documentation: All procedures and Test Cases are documented and versioned per release to maintain an audit trail and historical reference.
Release Notes: Release notes are published in conjunction with each release, providing a summary of new features, enhancements, and resolved issues.
The ATP ensures that every piece of software shipped by Kognitive Networks meets stringent quality standards, thus safeguarding both functionality and customer satisfaction. This systematic approach to testing and validation is crucial in maintaining the reliability and market reputation of Kognitive Networks' software products.
Test Cases (TCs)
Test cases are a fundamental part of the testing process at Kognitive Networks, designed to ensure that each feature and function of the Software Under Test (SUT) operates correctly and meets specified requirements. Each test case includes:
Serial Number: A unique identifier for each test case for easy tracking and reference.
Name and Description: A detailed explanation of what the test case is designed to validate, including the feature or functionality under test and any conditions or setup that must be in place before executing the test, such as specific configurations or initial states of the system.
Test Steps: A step-by-step guide on how to execute the test, detailing each action that needs to be performed.
Expected Outcome: The anticipated result for each step of the test, describing what should happen if the software is functioning correctly.
Test Result: PASS or FAIL, with details on failure/issue
S. No | Test Cases | Test Steps | Expected Outcome | Test Result |
---|---|---|---|---|
001 | "First Test Case" Description of Test Case with details | a. Step 1 | Outcome, with details | PASS/FAIL |
b. Step 2 | Outcome, with details | PASS/FAIL | ||
c. Step 3 | Outcome, with details | PASS/FAIL |
Bug Tracking and Feature Requests
To capture functional anomalies, bugs, and new feature requests, Kognitive Networks utilizes the Tickets system integrated into Kognitive Cloud - internally and externally. Tickets are assigned to the appropriate Team by the Product Manager and prioritized on the backlog for future development.