{"id":20268315,"url":"https://github.com/officedev/interop-testsuites","last_synced_at":"2025-04-11T03:39:32.456Z","repository":{"id":35393889,"uuid":"39657848","full_name":"OfficeDev/Interop-TestSuites","owner":"OfficeDev","description":"SharePoint and Exchange Protocol Test Suites ","archived":false,"fork":false,"pushed_at":"2025-03-12T02:19:11.000Z","size":327422,"stargazers_count":45,"open_issues_count":2,"forks_count":60,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-03-25T01:41:25.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OfficeDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2015-07-24T21:09:29.000Z","updated_at":"2025-03-14T02:08:50.000Z","dependencies_parsed_at":"2023-12-10T07:31:53.136Z","dependency_job_id":null,"html_url":"https://github.com/OfficeDev/Interop-TestSuites","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OfficeDev%2FInterop-TestSuites","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OfficeDev%2FInterop-TestSuites/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OfficeDev%2FInterop-TestSuites/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OfficeDev%2FInterop-TestSuites/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OfficeDev","download_url":"https://codeload.github.com/OfficeDev/Interop-TestSuites/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248338913,"owners_count":21087210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T12:17:33.576Z","updated_at":"2025-04-11T03:39:32.436Z","avatar_url":"https://github.com/OfficeDev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Interop SharePoint and Exchange Protocol Test Suites\r\n\r\n\r\nMicrosoft Protocol Test Suites are implemented as synthetic clients\r\nrunning against the server-side implementation of a given protocol. They\r\nare designed in a client-to-server relationship and were originally\r\ndeveloped for the in-house testing of Microsoft Open Specifications.\r\n\r\nTest suites evaluate whether or not protocol implementation meets\r\ncertain interoperability requirements in Microsoft\r\nOpen Specifications. Test suites do not cover every protocol\r\nrequirement and do not certify any implementation even if all tests\r\npass. However, each test suite provides you with a useful indication of\r\ninteroperability.\r\n\r\nThis repository contains SharePoint and Exchange Protocol Test Suites. Inside each test suite folder, you will find configuration files, test cases, and associated supporting files such as scripts, source code, reference guide, deployment guide, and specifications. To get a quick introduction, review this README document which includes the following:\r\n\r\n-   [Overview](#overview): An introduction to the test suite design and\r\n    its components.\r\n\r\n-   [Get started](#get-started): A generic quick-start guide on how to deploy,\r\n    configure and run test suites, and view test suite reports.\r\n\r\n    **Note**: For the detailed guidance on how to deploy a certain\r\n    protocol test suite, see *Deployment Guide* in the *Docs* folder of each test suite.\r\n\r\n## Overview\r\n\r\nTest Suites are designed to verify that the server behavior is in\r\ncompliance with normative protocol requirements in the technical\r\nspecifications. Test suites focus on the man-in-the-middle (manipulation\r\nof protocol traffic) and server replacement scenarios.\r\n\r\nIn a single test suite, similar or related requirements are grouped into\r\none test case. Test cases on the same command or operation are grouped\r\ninto one scenario.\r\n\r\nThe following diagram illustrates the test suite design and its\r\ncomponents.\r\n\r\n**Figure 1: The high-level design of a test suite**\r\n\r\n![alt tag](./Doc-Images/Design.png)\r\n\r\n-   **Test case:** A test case is a group of programs and scripts that\r\n    validates how your implementation conform to the\r\n    technical specification. A series of test cases is called\r\n    a scenario.\r\n\r\n-   **Adapters:** Adapters are interfaces between the test suites and\r\n    the SUT. There are two types of adapters: the protocol adapter and the\r\n    SUT control adapter.\r\n\r\n    a.  **Protocol adapter**: Creates and manages connection between a\r\n        client and a server to generate request protocol messages and\r\n        consume protocol response messages.\r\n\r\n    b.  **SUT control adapter**: Queries and configures the SUT at\r\n        runtime when a test case has to control the server outside of\r\n        the protocol. By default, the SUT control adapter can be implemented as one of\r\n        the following:\r\n\r\n    -   **managed**: The SUT control adapter is implemented in C\\#\r\n            managed code.\r\n\r\n\t-   **powershell**: The SUT control adapter is implemented\r\n            through Windows PowerShell.\r\n\r\n    -   **interactive**: Interactive adapters are used for manually\r\n        configuring a server.\r\n\t\t\r\n\t\t\tThe SUT Control Adapter is primarily designed to\r\n            work with Microsoft implementation of the SUT. If you’re a\r\n            third-party implementer, it is recommended that you further\r\n            configure the test suite by setting the test suite to the\r\n            interactive mode. The SUT Control Adapter can be switched\r\n            between powershell/managed code and interactive adapter by\r\n            changing the MS-XXXX\\_TestSuite.ptfconfig file.\r\n\r\n-   **System Under Test (SUT):** The SUT is the server side of the test\r\n    suite environment. The SUT can either be Microsoft implementation of\r\n    the protocol or third-party implementation.\r\n\r\n## Get started\r\n\r\nThis section offers a quick introduction to using a test suite. For the\r\ndetailed guidance, please go to the test suite folder \u0026gt; *Docs* folder\r\n\u0026gt; *deployment guide*.\r\n\r\n### Test suite directories \r\n\r\nA SharePoint or Exchange Protocol test suite folder mainly consists of\r\nthe following:\r\n\r\n-   ***Docs***: Docs on deployment, test suite specification, and\r\n    requirement specification spreadsheet (a list of normative\r\n    requirements extracted from the technical document for each protocol\r\n    associated with the test suite).\r\n\r\n-   ***Setup***: Configuration scripts and resources (both client\r\n    and server-side) for setting up the test suite environment.\r\n\r\n-   ***Source*:** Test suite source code and scripts.\r\n\r\n**Figure 2: Interop test suite folder structure and its content**\r\n\r\n![alt tag](./Doc-Images/FolderStructure.png)\r\n\r\n### Test environment for the test suites\r\n\r\nThe following table summarizes the test environment for the test suites.\r\n\r\n**Table 1: Tools and software that are necessary to set up your\r\nenvironment for Exchange and SharePoint Test Suites**\r\n\r\n \r\n| Machine name | SharePoint test suite environment | Exchange test suite environment \r\n| :---         | :--- \t\t\t\t | :---\r\n| SUT          | Microsoft SharePoint Sever 2013/2010/2007  | Microsoft Exchange Server 2016/2013/2010/2007\r\n| Client       | Microsoft Visual Studio 2013 Ultimate  | Microsoft Visual Studio 2013 Ultimate\r\n|              | [Protocol Test Framework](https://github.com/microsoft/protocoltestframework)  | [Protocol Test Framework](https://github.com/microsoft/protocoltestframework)\r\n| Optional     | Microsoft Network Monitor and Parsers or Message Analyzer   | Microsoft Network Monitor and Parsers or Message Analyzer\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n|              |                                                             | [Spec Explorer 2010](https://visualstudiogallery.msdn.microsoft.com/271d0904-f178-4ce9-956b-d9bfa4902745/) \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \r\n                                                                                                                                                                                                            \r\n### Workflow\r\n\r\nThe following flowchart illustrates the end-to-end process of\r\nconfiguring and running test suites, and viewing the results.\r\n\r\n**Figure 3: The process of using a test suite**\r\n\r\n![alt tag](./Doc-Images/Workflow.png)\r\n\r\n#### Configure the test suites\r\n\r\nThe configuration is done in a certain order. The SUT is usually\r\nconfigured before the test suite client. \r\n\r\n- **Configure the SUT**: Automated script or manual configuration can be used. Varying level of\r\nresources on the SUT may be required for the test suite packages.\r\n\r\n- **Configure the test suite client**: The test suite client is managed\r\nthrough a common configuration file and test suite-specific\r\nconfiguration files. Modification through direct means or automated\r\nscript can be used.\r\n\r\n**Note**: The setup configuration scripts are only implemented for\r\nconfiguring SUT and test suite clients on the Windows platform. See the\r\nsections on manual configuration in *Deployment Guide* if you’re a\r\nthird-party implementer.\r\n\r\nThe following summarizes the configuration steps when using the setup\r\nconfiguration scripts.\r\n\r\n1.  Extract the test suite files: Extract files from the downloaded\r\n    zip package.\r\n\r\n2.  Setting up the SUT: Navigate to …\\\\Setup\\\\SUT \u0026gt; Right click\r\n    **\\[SUTConfiguration.cmd\\]** \u0026gt; select **Run as administrator**.\r\n\r\n3.  Setting up the test suite client: Navigate to …\\\\Setup\\\\Test\r\n    Suite Client \u0026gt; Right click **\\[ClientConfiguration.cmd\\]** \u0026gt;\r\n    select **Run as administrator**.\r\n\r\n#### Run the test suites\r\n\r\nOnce the required software is installed and both the SUT and the test\r\nsuite client are configured appropriately. There are several ways to run\r\nyour test suites:\r\n\r\n-   Using Visual Studio\r\n\r\n    -   Open your Visual Studio test suite solution and rebuild\r\n        the solution.\r\n\r\n    -   Open the Test Explorer.\r\n\r\n    -   Select test cases, right click and select the option to **Run**\r\n        or **Debug**.\r\n\r\n-   Using batch files\r\n\r\n    -   Run an individual test case or all test cases.\r\n\r\n#### View the test results\r\n\r\nThe test suites provide detailed reporting in a variety of formats that\r\nallows you to quickly debug failures.\r\n\r\n- Test suite configuration logs: The SUT and test suite client\r\nconfiguration logs are available to inform you whether or not each\r\nconfiguration step has succeeded and the detailed error information if\r\nthe configuration step fails. For the location of where the logs are\r\nsaved, please refer to the deployment guide.\r\n\r\n- Test suite reports: Reports and logs are generated after a test\r\nsuite has run successfully, which include a .trx file containing the\r\npass/fail information of the run in the TestResults folder along with an\r\nassociated directory named user\\_MACHINENAME DateTimeStamp that\r\ncontains a log file and an HTML report.\r\n\r\n\r\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fofficedev%2Finterop-testsuites","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fofficedev%2Finterop-testsuites","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fofficedev%2Finterop-testsuites/lists"}