TTCN做為專門進行測試的語言,它定義了嚴格的語法和語義規則.由於它是新出現的測試語言規範,國內還沒有這種語言的編譯、運行環境,國外的TTCN編譯器開發也正在進行.已經出現的TTCN運行環境大多是把TTCN轉化為另一種語言(如JAVA),使用現成的編譯器編譯轉換後的代碼,間接實現對TTCN的編譯.TTCN編譯器的開發成為迫切的任務.在該文中主要討論了使用YACC工具Parser Generator實現windows系統下的TTCN編譯系統的語法分析器.語法分析是編譯過程的核心部分.它的任務是在詞法分析識別出的單詞符號串的基礎上,分析並判定程式的語法結構是否符合語法規則.實現過程中我們使用面向對象的技術,定義了系統中需要使用的各種數據結構、對象等.作者的工作主要有:一是對TTCN的擴展語法規則範式進行改寫;二是編寫用於語法分析的TTCN的YACC源程式,這其中涉及到符號對象的定義,符號表的使用管理,標識符的登錄,語義動作的編寫以及錯誤處理等內容;三是生成執行器在執行時刻傳輸信息需要的編碼和解碼操作的驅動表和頭檔案.由於面向對象技術具有更好的技術優勢和特色,因此在整個的開發過程中我們全面引進使用這一技術,而且在分析設計階段我們使用UML來進行系統的分析和設計,從而規範了軟體的開發過程,提高了工作的效率和進度.
由於功能層第N層實體事實上是第N-1層的用戶,同時也是第N+1層的業務提供者。在相鄰層間用原語來交換信息,用戶向業務提供者用請求原語來申請服務,而業務提供者用指示原語來為用戶提供服務或拒絕、放棄服務。當服務提供者提供服務時,其用戶的業務數據將被透明地傳送到對端的對等層中,如果不接收該數據,對端的對等層將拒絕或放棄這個數據包。在遠端物理實體中,N-1層實體判斷是否接收或拒絕、放棄該數據包,如果接收,就向N層發出一個指示原語,並在其中將數據傳送給N層。
協定的測試一般都是用黑盒的方式,給予被測實體激勵,觀測其回響,從而判斷它是否能正確地向上層提供服務,並申請和接收下層的服務。在實際的測試中,將被測的協定實體從OSI的7層實體中隔離出來有一定的困難,可是由於7層結構中低層對上層的服務是透明的,就是說低層對測試端和被測端的第N層間的數據傳輸是透明的,從雙方的角度來看,它們都是與對端進行層與層間的對話,測試方的激勵會不經改變地到達被測端,被測方的回響也會同樣到達測試方。所以實際中採用在遠端觀察對等層服務接入點的方法,來代替將第N層抽出孤立觀察的方法.
對被測實體的激勵,一般為事先編好的測試例。由於協定本身的有限性,其回響結果應是可預測的,如果實體的回響與預測的相同,說明與協定相一致,否則不一致。由於通信協定紛繁複雜,測試儀表也是多種多樣,如果沒有一種編寫測試例的標準,測試例的編寫工作將會非常麻煩。因此,人們希望有一種統一的測試例的表示方法,它必須是與通信協定無關的,並且有明確的定義和嚴格的格式,ITU-T為此制定了TTCN描述語言作為協定描述的工具。