<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://help.openclovis.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://help.openclovis.com/index.php?action=history&amp;feed=atom&amp;title=Doc%3Alatest%2Ftaeguide%2Foverview</id>
		<title>Doc:latest/taeguide/overview - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://help.openclovis.com/index.php?action=history&amp;feed=atom&amp;title=Doc%3Alatest%2Ftaeguide%2Foverview"/>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;action=history"/>
		<updated>2026-04-27T23:30:21Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;diff=24145&amp;oldid=prev</id>
		<title>Stone: /* Organization */</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;diff=24145&amp;oldid=prev"/>
				<updated>2013-03-12T20:19:34Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Organization&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:19, 12 March 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Organization ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Organization ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The TAE is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;organized following the [http://en&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;wikipedia.org/wiki/Matryoshka_doll Matryoshka principle] &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;that each facility requires all &amp;quot;smaller&amp;quot; facilities&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;yet any particular facility &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;all &amp;quot;smaller&amp;quot; facilities comprises &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;working automation environment (albeit missing the features provided by &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;larger&amp;quot; facilities&lt;/del&gt;) and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is useful in certain circumstances&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The TAE is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;intended to be used both as a individual developer's test bench and as an enterprise-wide test automation solution&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; It therefore is organised &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;two independent parts: first&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the web interface &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;historical database that is generally deployed on &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;single machine, and second, &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;testing engine which often deployed on every developer's machine and on an automated (nightly&lt;/ins&gt;) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;build &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;test server&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The purpose of this organization is most importantly &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;create an incremental development schedule that will yield &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;usable test framework rapidly &lt;/del&gt;and a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fully-featured one when those features are required&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This allows the test automation environment &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;be run in &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;variety of different situations &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;by &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;variety of different users.&amp;#160; For example, it could be run by an automated nightly verification system or by a developer fixing a bug.&amp;#160; Also tests can be run at different physical sites (or even by multiple companies cooperating on the same project) yet all the results can be uploaded to a single centralized database and web interface for project analysis&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Another extremely important purpose is to allow the automation environment to be run in a variety of different situations and by a variety of different users.&amp;#160; For example, it could be run by an automated nightly verification system (layer 3), or by a developer fixing a bug (layer 1,2).&amp;#160; It could be run by an OpenClovis engineer (layer 1,2 or 3), or by a customer who is verifying compatibility with his hardware (layer 3).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lastly, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the TAE &lt;/ins&gt;is designed to allow programs written for a variety of purposes -- test, demo, eval, and real systems -- to be run.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;By supplying a heavy &amp;quot;class&amp;quot; framework, most &lt;/ins&gt;automated test frameworks&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;' client libraries force the application into a specific unit test mold.&amp;#160; So &lt;/ins&gt;the only software that can be run are test suites designed from the bottom-up to fit within the automated test framework.&amp;#160; This framework allows software that was not written for the express purpose of testing to be annotated with compile-time optional tests (similar to assert()) that can be used to verify the correct execution of that software&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&amp;#160; This means that your final application code can be self-testing and report errors to the TAE, just like your unit tests&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lastly, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;it &lt;/del&gt;is designed to allow programs written for a variety of purposes -- test, demo, eval, and real systems -- to be run.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Traditionally &lt;/del&gt;automated test frameworks &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;are so encompassing that &lt;/del&gt;the only software that can be run are test suites designed from the bottom-up to fit within the automated test framework.&amp;#160; This framework allows software that was not written for the express purpose of testing to be annotated with compile-time optional tests (similar to assert()) that can be used to verify the correct execution of that software.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Each layer is summarized in this document and contains a link to a detailed design.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Each layer is summarized in this document and contains a link to a detailed design.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Layer 1: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;C program &lt;/del&gt;API (Clovis Test API) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Layer 1: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Unit testing &lt;/ins&gt;API (Clovis Test API) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The smallest layer is the API used in a program to run tests.&amp;#160; This layer consists of a set of C macros that group and run tests. When not testing&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/del&gt;these macros &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;can be &lt;/del&gt;compiled out.&amp;#160; This is very similar to unit testing packages found for many languages.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The smallest layer is the API used in a program to run tests.&amp;#160; This layer consists of a set of C macros that group and run tests. When not testing &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;-- when a &amp;quot;release&amp;quot; build is created for example -- &lt;/ins&gt;these macros &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;are &lt;/ins&gt;compiled out.&amp;#160; This is very similar to unit testing packages found for many languages.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If this layer is run alone, it will simply print test successes and failures to the screen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If this layer is run alone, it will simply print test successes and failures to the screen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Layer 2: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Python based testing (using APIs provided by TAE)&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Layer 2: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;System Test API &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This API layer allows tests to be written in Python programming language and runs them on a machine that sits outside of the device-under-test.&amp;#160; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This is another layer to write test programs in python and run &lt;/del&gt;tests&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. Here &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;test program uses the rich set of APIs &lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;written in python) present in the TAE infrastructure. This layer provides multiple utilities to run &lt;/del&gt;tests &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in a distributed environment&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Through these APIs, your &lt;/ins&gt;tests &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;can access &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;entire cluster and start/stop applications &lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;or unit &lt;/ins&gt;tests&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;), cause failures of processes or nodes, and access CLIs and other external interfaces&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If this layer is run alone, it will simply print test successes and failures to the screen.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If this layer is run alone, it will simply print test successes and failures to the screen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== Layer 3: Test Execution Management and Event Simulation ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;Test Execution Management &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and Event Simulation (TEMES) layer consists of a separate machine (test driver) that controls the test &amp;quot;fixture&amp;quot; (the set of machines that constitute a test environment).&amp;#160; It is capable of taking software from either a local directory, a ftp site, an http site or from subversion repository, unpacking it (if needed), installing it on the fixture, compiling it, and running a series of tests.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Layer 3: &lt;/ins&gt;Test Execution Management &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;These tests primarily constitute executable programs &lt;/del&gt;that &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;use &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Layer 1 and 2 APIs&lt;/del&gt;, and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;conform to &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;loose modeling format&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This layer consists of a separate machine (test driver) &lt;/ins&gt;that &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;controls &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;test &amp;quot;fixture&amp;quot; (the set of machines that constitute a test environment).&amp;#160; It is capable of taking software from either a local directory, a ftp site, an http site or from subversion repository, unpacking it (if needed), installing it on the fixture, compiling it&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;running &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;series of tests&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Additionally, a test-specific scripts may be run on &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;TEMES &lt;/del&gt;that can &amp;quot;drive&amp;quot; the progress of the test and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;cause &lt;/del&gt;events such as process, network, and machine failures.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;These tests constitute executable programs that use &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Layer 1 APIs, and Layer 2 Python modules &lt;/ins&gt;that can &amp;quot;drive&amp;quot; the progress of the test &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;suite and inject errors &lt;/ins&gt;and events such as process, network, and machine failures.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If this layer is run alone, it will run through a complete test suite and report successes and failures.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If this layer is run alone, it will run through a complete test suite and report successes and failures.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 37:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Layer 4: Automated Run and Longitudinal Reports ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Layer 4: Automated Run and Longitudinal Reports ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Automated Run and Longitudinal Reporting &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(ARLR) &lt;/del&gt;layer consists of a single globally accessible server &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(ARLR server) &lt;/del&gt;and a source repository (subversion etc).&amp;#160; The &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ARLR &lt;/del&gt;server contains a web site that allows users to see which source code branches are failing which tests on what hardware and it keeps a history of this information&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&amp;#160; It also will communicate with unused (or layer 3 dedicated) test drivers to schedule runs of a set of test suites against a set of branches and receive results from these drivers&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The Automated Run and Longitudinal Reporting layer consists of a single globally accessible server and a source repository (subversion etc).&amp;#160; The server contains a web site that allows users to see which source code branches are failing which tests on what hardware and it keeps a history of this information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Stone</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;diff=660&amp;oldid=prev</id>
		<title>Bot: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;diff=660&amp;oldid=prev"/>
				<updated>2011-10-24T19:05:36Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:05, 24 October 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;diff=659&amp;oldid=prev</id>
		<title>Senthilk at 05:04, 27 August 2010</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php?title=Doc:latest/taeguide/overview&amp;diff=659&amp;oldid=prev"/>
				<updated>2010-08-27T05:04:02Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Organization ==&lt;br /&gt;
&lt;br /&gt;
The TAE is organized following the [http://en.wikipedia.org/wiki/Matryoshka_doll Matryoshka principle] in that each facility requires all &amp;quot;smaller&amp;quot; facilities, yet any particular facility and all &amp;quot;smaller&amp;quot; facilities comprises a working automation environment (albeit missing the features provided by the &amp;quot;larger&amp;quot; facilities) and is useful in certain circumstances.&lt;br /&gt;
&lt;br /&gt;
The purpose of this organization is most importantly to create an incremental development schedule that will yield a usable test framework rapidly and a fully-featured one when those features are required.&lt;br /&gt;
&lt;br /&gt;
Another extremely important purpose is to allow the automation environment to be run in a variety of different situations and by a variety of different users.  For example, it could be run by an automated nightly verification system (layer 3), or by a developer fixing a bug (layer 1,2).  It could be run by an OpenClovis engineer (layer 1,2 or 3), or by a customer who is verifying compatibility with his hardware (layer 3).&lt;br /&gt;
&lt;br /&gt;
Lastly, it is designed to allow programs written for a variety of purposes -- test, demo, eval, and real systems -- to be run.  Traditionally automated test frameworks are so encompassing that the only software that can be run are test suites designed from the bottom-up to fit within the automated test framework.  This framework allows software that was not written for the express purpose of testing to be annotated with compile-time optional tests (similar to assert()) that can be used to verify the correct execution of that software.&lt;br /&gt;
&lt;br /&gt;
Each layer is summarized in this document and contains a link to a detailed design.&lt;br /&gt;
&lt;br /&gt;
=== Layer 1: C program API (Clovis Test API) ===&lt;br /&gt;
&lt;br /&gt;
The smallest layer is the API used in a program to run tests.  This layer consists of a set of C macros that group and run tests. When not testing, these macros can be compiled out.  This is very similar to unit testing packages found for many languages.&lt;br /&gt;
&lt;br /&gt;
If this layer is run alone, it will simply print test successes and failures to the screen.&lt;br /&gt;
&lt;br /&gt;
When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;br /&gt;
&lt;br /&gt;
=== Layer 2: Python based testing (using APIs provided by TAE)===&lt;br /&gt;
&lt;br /&gt;
This is another layer to write test programs in python and run tests. Here the test program uses the rich set of APIs (written in python) present in the TAE infrastructure. This layer provides multiple utilities to run tests in a distributed environment.&lt;br /&gt;
&lt;br /&gt;
If this layer is run alone, it will simply print test successes and failures to the screen.&lt;br /&gt;
&lt;br /&gt;
When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;br /&gt;
=== Layer 3: Test Execution Management and Event Simulation ===&lt;br /&gt;
&lt;br /&gt;
The Test Execution Management and Event Simulation (TEMES) layer consists of a separate machine (test driver) that controls the test &amp;quot;fixture&amp;quot; (the set of machines that constitute a test environment).  It is capable of taking software from either a local directory, a ftp site, an http site or from subversion repository, unpacking it (if needed), installing it on the fixture, compiling it, and running a series of tests.&lt;br /&gt;
&lt;br /&gt;
These tests primarily constitute executable programs that use the Layer 1 and 2 APIs, and conform to a loose modeling format.&lt;br /&gt;
&lt;br /&gt;
Additionally, a test-specific scripts may be run on the TEMES that can &amp;quot;drive&amp;quot; the progress of the test and cause events such as process, network, and machine failures.&lt;br /&gt;
&lt;br /&gt;
If this layer is run alone, it will run through a complete test suite and report successes and failures.&lt;br /&gt;
&lt;br /&gt;
=== Layer 4: Automated Run and Longitudinal Reports ===&lt;br /&gt;
&lt;br /&gt;
The Automated Run and Longitudinal Reporting (ARLR) layer consists of a single globally accessible server (ARLR server) and a source repository (subversion etc).  The ARLR server contains a web site that allows users to see which source code branches are failing which tests on what hardware and it keeps a history of this information.  It also will communicate with unused (or layer 3 dedicated) test drivers to schedule runs of a set of test suites against a set of branches and receive results from these drivers.&lt;/div&gt;</summary>
		<author><name>Senthilk</name></author>	</entry>

	</feed>