<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=149.241.203.80</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=149.241.203.80"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/149.241.203.80"/>
	<updated>2026-05-04T07:10:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Arbitrarily_varying_channel&amp;diff=25593</id>
		<title>Arbitrarily varying channel</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Arbitrarily_varying_channel&amp;diff=25593"/>
		<updated>2013-12-06T19:17:29Z</updated>

		<summary type="html">&lt;p&gt;149.241.203.80: corrected an error, &amp;quot;is equal to&amp;quot; changed into &amp;quot;leads to&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Test Template Framework&#039;&#039;&#039; (&#039;&#039;&#039;TTF&#039;&#039;&#039;) is a [[model-based testing]] (MBT) framework proposed by Phil Stocks and David Carrington in {{Harv|Stocks|Carrington|1996}} for the purpose of [[software testing]]. Although the TTF was meant to be notation-independent, the original presentation was made using the [[Z notation|Z formal notation]]. It is one of the few MBT frameworks approaching [[unit testing]].&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The TTF is a specific proposal of [[model-based testing]] (MBT). It considers models to be [[Z notation|Z specifications]]. Each operation within the specification is analyzed to derive or generate [[#Abstract test case|&#039;&#039;abstract test cases&#039;&#039;]]. This analysis consists of the following steps:&lt;br /&gt;
&lt;br /&gt;
# Define the [[#Input space|&#039;&#039;input space&#039;&#039;]] (IS) of each operation.&lt;br /&gt;
# Derive the [[#Valid input space|&#039;&#039;valid input space&#039;&#039;]] (VIS) from the [[#Input space|IS]] of each operation.&lt;br /&gt;
# Apply one or more [[#Testing tactic|&#039;&#039;testing tactics&#039;&#039;]],&amp;lt;ref name=&amp;quot;testing strategy&amp;quot;&amp;gt;Stocks and Carrington use the term &#039;&#039;testing strategies&#039;&#039; in {{Harv|Stocks|Carrington|1996}}.&amp;lt;/ref&amp;gt; starting from each [[#Valid input space|VIS]], to build a [[#Testing tree|&#039;&#039;testing tree&#039;&#039;]] for each operation. Testing trees are populated with nodes called [[#Test class|&#039;&#039;test classes&#039;&#039;]].&lt;br /&gt;
# [[#Pruning testing trees|&#039;&#039;Prune&#039;&#039;]] each of the resulting [[#Testing tree|testing trees]].&lt;br /&gt;
# Find one or more [[#Abstract test case|&#039;&#039;abstract test cases&#039;&#039;]] from each leaf in each [[#Testing tree|testing tree]].&lt;br /&gt;
&lt;br /&gt;
One of the main advantages of the TTF is that all of these concepts are expressed in the same notation of the specification, i.e. the [[Z notation]]. Hence, the engineer has to know only one notation to perform the analysis down to the generation of [[#Abstract test case|abstract test cases]].&lt;br /&gt;
&lt;br /&gt;
==Important concepts==&lt;br /&gt;
In this section the main concepts defined by the TTF are described.&lt;br /&gt;
&lt;br /&gt;
===Input space===&lt;br /&gt;
Let &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt; be a Z operation. Let &amp;lt;math&amp;gt;x_{1} \dots x_{n}&amp;lt;/math&amp;gt; be all the input and (non-primed) state variables referenced in &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;T_{1} \dots T_{n}&amp;lt;/math&amp;gt; their corresponding types. The &#039;&#039;Input Space&#039;&#039; (IS) of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, written &amp;lt;math&amp;gt;IS_{Op}&amp;lt;/math&amp;gt;, is the Z schema box defined by &amp;lt;math&amp;gt;[x_{1}:T_{1} \dots x_{n}:T_{n}]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Valid input space===&lt;br /&gt;
Let &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt; be a Z operation. Let &amp;lt;math&amp;gt;\text{pre } Op&amp;lt;/math&amp;gt; be the [[precondition]] of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;. The &#039;&#039;Valid Input Space&#039;&#039; (VIS) of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, written &amp;lt;math&amp;gt;VIS_{Op}&amp;lt;/math&amp;gt;, is the Z schema box defined by &amp;lt;math&amp;gt;[IS_{Op} | \text{pre } Op]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Test class===&lt;br /&gt;
Let &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt; be a Z operation and let &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; be any [[Predicate (mathematical logic)|predicate]] depending on one or more of the variables defined in &amp;lt;math&amp;gt;VIS_{Op}&amp;lt;/math&amp;gt;. Then, the Z schema box &amp;lt;math&amp;gt;[VIS_{Op} | P]&amp;lt;/math&amp;gt; is a &#039;&#039;test class&#039;&#039; of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;. Note that this schema is equivalent to &amp;lt;math&amp;gt;[IS_{Op} | \text{pre } Op \land P]&amp;lt;/math&amp;gt;. This observation can be generalized by saying that if &amp;lt;math&amp;gt;C_{Op}&amp;lt;/math&amp;gt; is a test class of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, then the Z schema box defined by &amp;lt;math&amp;gt;[C_{Op} | P]&amp;lt;/math&amp;gt; is also a test class of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;. According to this definition the VIS is also a test class. &lt;br /&gt;
&lt;br /&gt;
If &amp;lt;math&amp;gt;C_{Op}&amp;lt;/math&amp;gt; is a test class of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, then the predicate &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;C&#039;_{Op} == [C_{Op} | P]&amp;lt;/math&amp;gt; is said to be the &#039;&#039;characteristic&#039;&#039; predicate of &amp;lt;math&amp;gt;C&#039;_{Op}&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;C&#039;_{Op}&amp;lt;/math&amp;gt; is &#039;&#039;characterized&#039;&#039; by &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Test classes are also called test objectives {{Harv|Utting|Legeard|2007}}, test templates {{Harv|Stocks|Carrington|1996}} and test specifications.&lt;br /&gt;
&lt;br /&gt;
===Testing tactic===&lt;br /&gt;
In the context of the TTF a &#039;&#039;testing tactic&#039;&#039;&amp;lt;ref name=&amp;quot;testing strategy&amp;quot;/&amp;gt; is a means to [[Partition of a set|partition]] any [[#Test class|test class]] of any operation. However, some of the testing tactics used in practice actually do not always generate a partition of some test classes. &lt;br /&gt;
&lt;br /&gt;
Some testing tactics originally proposed for the TTF are the following:&lt;br /&gt;
&lt;br /&gt;
*[[Disjunctive Normal Form]] (DNF). By applying this tactic the operation is written in [[Disjunctive Normal Form]] and the [[#Test class|test class]] is divided in as many test classes as terms are in the resulting operation&#039;s predicate. The predicate added to each new test class is the [[precondition]] of one of the terms in the operation&#039;s predicate.&lt;br /&gt;
&lt;br /&gt;
*Standard Partitions (SP). This tactic uses a predefined partition of some mathematical operator {{Harv|Stocks|1993}}. For example, the following is a good partition for expressions of the form &amp;lt;math&amp;gt;S \spadesuit T&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\spadesuit&amp;lt;/math&amp;gt; is one of &amp;lt;math&amp;gt;\cup&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\cap&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\setminus&amp;lt;/math&amp;gt; (see [[Set theory]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l|l}&lt;br /&gt;
S = \emptyset, T = \emptyset &amp;amp; &lt;br /&gt;
S \neq \emptyset, T \neq \emptyset, S \subset T \\&lt;br /&gt;
\hline&lt;br /&gt;
S = \emptyset, T \neq \emptyset &amp;amp; &lt;br /&gt;
S \neq \emptyset, T \neq \emptyset, T \subset S \\&lt;br /&gt;
\hline&lt;br /&gt;
S \neq \emptyset, T = \emptyset &amp;amp;&lt;br /&gt;
S \neq \emptyset, T \neq \emptyset, T = S \\&lt;br /&gt;
\hline&lt;br /&gt;
S \neq \emptyset, T \neq \emptyset, S \cap T = \emptyset &amp;amp;&lt;br /&gt;
S \neq \emptyset, T \neq \emptyset, S \cap T \neq \emptyset, \lnot (S \subseteq T), \lnot (T \subseteq S), S \neq T&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:As can be noticed, standard partitions might change according to how much testing the engineer wants to perform.&lt;br /&gt;
&lt;br /&gt;
*Sub-domain Propagation (SDP). This tactic is applied to expressions containing:&lt;br /&gt;
&lt;br /&gt;
# Two or more mathematical operators for which there are already defined standard partitions, or &lt;br /&gt;
# Mathematical operators which are defined in terms of other mathematical operators. &lt;br /&gt;
&lt;br /&gt;
:In any of these cases, the standard partitions of the operators appearing in the expression or in the definition of a complex one, are combined to produce a partition for the expression. If the tactic is applied to the second case, then the resulting partition can be considered as the standard partition for that operator. Stocks and Carrington in {{Harv|Stocks|Carrington|1996}} illustrate this situation with &amp;lt;math&amp;gt;R \oplus G = (\text{dom } G \ntriangleleft R)\cup G&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\ntriangleleft&amp;lt;/math&amp;gt; means [[Restriction (mathematics)|domain anti-restriction]], by giving standard partitions for &amp;lt;math&amp;gt;\ntriangleleft&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\cup&amp;lt;/math&amp;gt; and propagating them to calculate a partition for &amp;lt;math&amp;gt;\oplus&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Specification Mutation (SM). The first step of this tactic consists in generating a &#039;&#039;mutant&#039;&#039; of the Z operation. A mutant of a Z operation is similar in concept to a [[Mutation testing|mutant of a program]], i.e. it is a modified version of the operation. The modification is introduced by the engineer with the intention of uncovering an error in the implementation. The mutant should be the specification that the engineer guesses the programmer has implemented. Then, the engineer has to calculate the subset of the VIS that yields different results in both specifications. The predicate of this set is used to derive a new test class.&lt;br /&gt;
&lt;br /&gt;
Some other testing tactics that may also be used are the following:&lt;br /&gt;
&lt;br /&gt;
*In Set Extension (ISE). It applies to predicates of the form &amp;lt;math&amp;gt;expr \in \{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt;. In this case, it generates &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; test classes such that a predicate of the form &amp;lt;math&amp;gt;expr = expr_{i}&amp;lt;/math&amp;gt; is added to each of them.&lt;br /&gt;
&lt;br /&gt;
*Mandatory Test Set (MTS). This tactic associates a set of constant values to a VIS&#039; variable and generates as many test classes as elements are in the set. Each test class is characterized by a predicate of the form &amp;lt;math&amp;gt;var = val&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;var&amp;lt;/math&amp;gt; is the name of the variable and &amp;lt;math&amp;gt;val&amp;lt;/math&amp;gt; is one of the values of the set.&lt;br /&gt;
&lt;br /&gt;
*Numeric Ranges (NR). This tactic applies only to VIS&#039; variables of type &amp;lt;math&amp;gt;\mathbb{Z}&amp;lt;/math&amp;gt; (or its &amp;quot;subtype&amp;quot; &amp;lt;math&amp;gt;\mathbb{N}&amp;lt;/math&amp;gt;). It consists in associating a range to a variable and deriving test classes by comparing the variable with the limits of the range in some ways. More formally, let &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; be a variable of type &amp;lt;math&amp;gt;\mathbb{Z}&amp;lt;/math&amp;gt; and let &amp;lt;math&amp;gt;[i,j]&amp;lt;/math&amp;gt; be the associated range. Then, the tactic generates the test classes characterized by the following predicates: &amp;lt;math&amp;gt;n&amp;lt;i&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n=i&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;i&amp;lt;n \land n&amp;lt;j&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n=j&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;n&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Free Type (FT). This tactic generates as many test classes as elements a free (enumerated) type has. In other words, if a model defines type &amp;lt;math&amp;gt;COLOUR ::= red | blue | green&amp;lt;/math&amp;gt; and some operation uses &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; of type &amp;lt;math&amp;gt;COLOUR&amp;lt;/math&amp;gt;, then by applying this tactic each test class will by divided into three new test classes: one in which &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; equals &amp;lt;math&amp;gt;red&amp;lt;/math&amp;gt;, the other in which &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; equals &amp;lt;math&amp;gt;blue&amp;lt;/math&amp;gt;, and the third where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; equals &amp;lt;math&amp;gt;green&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Proper Subset of Set Extension (PSSE). This tactic uses the same concept of ISE but applied to set inclusions. PSSE helps to test operations including predicates like &amp;lt;math&amp;gt;expr \subset \{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt;. When PSSE is applied it generates &amp;lt;math&amp;gt;2^{n} - 1&amp;lt;/math&amp;gt; test classes where a predicate of the form &amp;lt;math&amp;gt;expr = A_{i}&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i \in [1, 2^{n} -1]&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;A_{i} \in \mathbb{P} \{expr_{1}, \dots, expr_{n}\} \setminus \{\{expr_{1}, \dots, expr_{n}\}\}&amp;lt;/math&amp;gt;, is added to each class. &amp;lt;math&amp;gt;\{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt; is excluded from &amp;lt;math&amp;gt;\mathbb{P} \{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt; because &amp;lt;math&amp;gt;expr&amp;lt;/math&amp;gt; is a proper subset of &amp;lt;math&amp;gt;\{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Subset of Set Extension (SSE). It is identical to PSSE but it applies to predicates of the form &amp;lt;math&amp;gt;expr \subseteq \{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt; in which case it generates &amp;lt;math&amp;gt;2^{n}&amp;lt;/math&amp;gt; by considering also &amp;lt;math&amp;gt;\{expr_{1}, \dots, expr_{n}\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Testing tree&amp;amp; ===&lt;br /&gt;
The application of a testing tactic to the VIS generates some test classes. If some of these test classes are further partitioned by applying one or more testing tactics, a new set of test classes is obtained. This process can continue by applying testing tactics to the test classes generated so far. Evidently, the result of this process can be drawn as a [[Tree (data structure)|tree]] with the VIS as the root node, the test classes generated by the first testing tactic as its children, and so on. Furthermore, Stocks and Carrington in {{Harv|Stocks|Carrington|1996}} propose to use the Z notation to build the tree, as follows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
VIS &amp;amp; == [IS | P]\\&lt;br /&gt;
TCL_{T_{1}}^{1} &amp;amp; == [VIS | P_{T_{1}}^{1}]\\&lt;br /&gt;
&amp;amp;\dots\\&lt;br /&gt;
TCL_{T_{1}}^{n} &amp;amp; == [VIS | P_{T_{1}}^{n}]\\&lt;br /&gt;
TCL_{T_{2}}^{1} &amp;amp; == [TCL_{T_{1}}^{i} | P_{T_{2}}^{1}]\\&lt;br /&gt;
&amp;amp;\dots\\&lt;br /&gt;
TCL_{T_{2}}^{m} &amp;amp; == [TCL_{T_{1}}^{i} | P_{T_{2}}^{m}]\\&lt;br /&gt;
&amp;amp;\dots\\&lt;br /&gt;
TCL_{T_{3}}^{1} &amp;amp; == [TCL_{T_{2}}^{j} | P_{T_{3}}^{1}]\\&lt;br /&gt;
&amp;amp;\dots\\&lt;br /&gt;
TCL_{T_{3}}^{k} &amp;amp; == [TCL_{T_{2}}^{j} | P_{T_{3}}^{k}]\\&lt;br /&gt;
&amp;amp;\dots\\&lt;br /&gt;
&amp;amp;\dots\\&lt;br /&gt;
&amp;amp;\dots&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pruning testing trees===&lt;br /&gt;
In general a test class&#039; predicate is a conjunction of two or more predicates. It is likely, then, that some test classes are empty because their predicates are contradictions. These test classes must be pruned from the testing tree because they represent impossible combinations of input values, i.e. no [[#Abstract test case|abstract test case]] can be derived out of them.&lt;br /&gt;
&lt;br /&gt;
===Abstract test case===&lt;br /&gt;
An abstract test case is an element belonging to a [[#Test class|test class]]. The TTF prescribes that abstract test cases should be derived only from the leaves of the [[#Testing tree|testing tree]]. Abstract test cases can also be written as Z schema boxes. Let &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt; be some operation, let &amp;lt;math&amp;gt;VIS_{Op}&amp;lt;/math&amp;gt; be the [[#Valid input space|VIS]] of &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, let &amp;lt;math&amp;gt;x_{1}:T_{1} \dots x_{n}:T_{n}&amp;lt;/math&amp;gt; be all the variables declared in &amp;lt;math&amp;gt;VIS_{Op}&amp;lt;/math&amp;gt;, let &amp;lt;math&amp;gt;C_{Op}&amp;lt;/math&amp;gt; be a (leaf) test class of the testing tree associated to &amp;lt;math&amp;gt;Op&amp;lt;/math&amp;gt;, let &amp;lt;math&amp;gt;P_{1} \dots P_{m}&amp;lt;/math&amp;gt; be the [[#Test class|characteristic predicates]] of each test class from &amp;lt;math&amp;gt;C_{Op}&amp;lt;/math&amp;gt; up to &amp;lt;math&amp;gt;VIS_{Op}&amp;lt;/math&amp;gt; (by following the [[Tree (data structure)|edges from child to parent]]), and let &amp;lt;math&amp;gt;v_{1}:T_{1} \dots v_{n}:T_{n}&amp;lt;/math&amp;gt; be &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; constant values satisfying &amp;lt;math&amp;gt;P_{1}  \land \dots \land P_{m}&amp;lt;/math&amp;gt;. Then, an abstract test case of &amp;lt;math&amp;gt;C_{Op}&amp;lt;/math&amp;gt; is the Z schema box defined by &amp;lt;math&amp;gt;[C_{Op} | x_{1} = v_{1} \land \dots \land x_{n} = v_{n}]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Model-based testing]]&lt;br /&gt;
*[[Fastest]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*{{Citation | last1=Stocks | last2=Carrington | first1=Phil | first2=David | title=A framework for specification-based testing | journal=IEEE Transactions on Software Engineering | volume=22 | number=11 | year=1996 | pages=777&amp;amp;ndash;793}}.&lt;br /&gt;
*{{Citation | last1=Utting | last2=Legeard | first1=Mark | first2=Bruno | title=Practical Model-Based Testing: A Tools Approach | publisher=[[Morgan Kaufmann]] | year=2007 | isbn=0-12-372501-1 | edition=1st}}.&lt;br /&gt;
*{{Citation | last1=Stocks | first1=Phil | title=Applying Formal Methods to Software Testing | publisher=Department of Computer Science, University of Queensland, PhD thesis | year=1993}}.&lt;br /&gt;
&amp;lt;!-- {{Citation | last1=Ebbinghaus | first1=Heinz-Dieter | last2=Flum | first2=Jörg | last3=Thomas | first3=Wolfgang | title=Mathematical Logic | publisher=[[Springer-Verlag]] | location=Berlin, New York | edition=2nd | series=Undergraduate Texts in Mathematics | isbn=978-0-387-94258-2 | year=1994}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:1996 introductions]]&lt;br /&gt;
[[Category:Software testing]]&lt;br /&gt;
[[Category:Z notation]]&lt;/div&gt;</summary>
		<author><name>149.241.203.80</name></author>
	</entry>
</feed>