![]() |
![]() |
![]() |
![]() |
![]() |
Standardized Formal Methods
It is getting increasingly accepted within a steadily growing range of industrial segments that the only true way for software engineering to achieve higher quality, deliver on time and decrease development costs, is to use formal methods. Furthermore, as the international market grows, equipment from different manufacturers must be able to communicate with each other. Therefore it is obvious that the formal method to be used should be internationally standardized.
There are a number of different formal standardized languages and methods available today. The one you select, however, should fulfill a few more important requirements.
One is the availability of professional development tools. Another is clarity. The notation should be understood by a general audience, from experts to end users. Ideally it should have a graphical syntax.
Formal standardized graphical languages ...
- ... enforce precision during specification, since ambiguities and unclear statements are impossible to make.
- ... allow tool support. Tools can help to perform all kind of analyses like syntax/semantics check, simulation, test generation, code generation, etc.
- ... attract more than one tool-builder. The second-source possibility creates vendor independence with all its advantages.
- ... are more often the subject for courses, seminars, and text-books.
- ... are more likely to be maintained. As with natural languages, formal languages need to evolve to stay modern.
- ... promotes efficient verbal and written communication within development teams, between manufactures and between suppliers and customers, due to the conceptually formalized means of communication.
- ... have a graphical syntax that makes it simple and efficient to exchange information between different players within an organization.
The Test Suite Framework Standard
As the use of standards within the world of Information Technology and Telecommunications has increased tremendously during the last decade, so has the need for methods and tools that support the verification and validation of both the standards and their implementations.
This need has been addressed by ISO and CCITT (ITU-T) in the "Framework and Methodology for Conformance Testing of Implementations of OSI and CCITT Protocols". The framework has now reached the status of an International Standard as ISO/IEC 9646 (or X.290).
- The standard introduces the concept of Abstract Test Suites (consisting of Abstract Test Cases), a description of a set of tests that should be executed for a system. The tests should be described using a black-box model, i.e. only control and observe using the available external interfaces.
- The abstract tests are to be described using a formal language rather than using informal natural language. As part of the standard, the language TTCN is defined in order to describe the abstract tests.
- The possibility to copy the ASN.1 definitions from the protocol specification into the test suite in TTCN assures consistency between the information transferred in system specification and the test specification.
Conformance Testing
Conformance testing is the process of verifying that an implementation performs in accordance with a particular standard/specification/environment.
Conformance testing is exclusively concerned with the external behavior of an implementation. Service and functional behavior is tested in order to find logical errors and prerequisites for interoperability. Conformance testing is not intended to be exhaustive and a successfully passed test suite does not imply a 100% guarantee. But it does ensure, with a reasonable degree of confidence, that the implementation is consistent with its specifications, and it does increase the probability that implementations will interwork.
System Testing
- Conformance testing verifies whether an implementation performs according to the stated standard/specification/environment.
- Interoperability testing checks the ability of different implementations to interact in a prescribed manner, achieving predictable results.
- Regression testing is performed after functional improvements or corrections, to confirm that nothing unintentional has been introduced.
http://www.ibm.com/rational |
![]() |
![]() |
![]() |
![]() |