[Mono-list] New unit test proposal

Philippe Lavoie philippe.lavoie@cactus.ca
Thu, 14 Nov 2002 09:21:29 -0500


This is a multi-part message in MIME format.

------_=_NextPart_001_01C28BE9.1F9B94E7
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I guys,

=20

I'm mostly lurking here, but it doesn't mean that some of my ideas are
not good :-)

=20

The tiny benchmark thread made me realize something. Although, mono's
short time goals seem to be 'get bug free and finish implementing'. I
think it would be worthwhile to also take into account execution speed
as one of the design goals.=20

=20

The idea is simple, I guess that presently, people (a) find a failing
unit test, (b) fix the code until it passes, and (c) test that the other
unit tests are still passing. Then (d) they might even review the code
to see if they can refactor it a bit.=20

=20

It would be interesting if the phase (c) would also give performance
results of the changes, i.e. information on how the change affected the
performance of mono. That performance testing should actually be
automated daily on a single box that runs nothing else (project wise).=20

=20

When coding there are always different design criteria, and I think that
if the developers see that the performance is increasing or decreasing
because of changes it might make them more aware of the performance
impact of the coding patterns they are using.

=20

I know that usually, performance is always relegated to last. However
getting a framework in place to measure performance might be started
now. The benefits of such a framework might then be felt sooner in the
development cycle as opposed to later.

=20

Feel free to ignore me :-)

=20

Phil

=20

PS And yes, I could help write some of those performance tests if they
would be used daily.

=20

=20


------_=_NextPart_001_01C28BE9.1F9B94E7
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DGenerator content=3D"Microsoft Word 10 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:PMingLiU;
	panose-1:2 2 3 0 0 0 0 0 0 0;}
@font-face
	{font-family:"\@PMingLiU";
	panose-1:2 2 3 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I guys,</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I&#8217;m mostly lurking here, but it doesn&#8217;t =
mean
that some of my ideas are not good </span></font><font size=3D2 =
face=3DWingdings><span
style=3D'font-size:10.0pt;font-family:Wingdings'>J</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>The tiny benchmark thread made me realize something.
Although, mono&#8217;s short time goals seem to be &#8216;get bug free =
and
finish implementing&#8217;. I think it would be worthwhile to also take =
into
account execution speed as one of the design goals. </span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>The idea is simple, I guess that presently, people =
(a) find
a failing unit test, (b) fix the code until it passes, and (c) test that =
the
other unit tests are still passing. Then (d) they might even review the =
code to
see if they can refactor it a bit. </span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>It would be interesting if the phase (c) would also =
give performance
results of the changes, i.e. information on how the change affected the =
performance
of mono. That performance testing should actually be automated daily on =
a
single box that runs nothing else (project wise). </span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>When coding there are always different design =
criteria, and
I think that if the developers see that the performance is increasing or
decreasing because of changes it might make them more aware of the =
performance
impact of the coding patterns they are using.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I know that usually, performance is always relegated =
to
last. However getting a framework in place to measure performance might =
be
started now. The benefits of such a framework might then be felt sooner =
in the development
cycle as opposed to later.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Feel free to ignore me </span></font><font size=3D2
face=3DWingdings><span =
style=3D'font-size:10.0pt;font-family:Wingdings'>J</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Phil</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>PS And yes, I could help write some of those =
performance
tests if they would be used daily.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C28BE9.1F9B94E7--