<br><br><div class="gmail_quote">On Thu, Nov 20, 2008 at 2:19 AM, Ben Finney <span dir="ltr">&lt;<a href="mailto:ben%2Bpython@benfinney.id.au">ben+python@benfinney.id.au</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d">&quot;Noah Gift&quot; &lt;<a href="mailto:noah.gift@gmail.com">noah.gift@gmail.com</a>&gt; writes:<br>
<br>
&gt; If I was in his position, I would tell the developer(s) that<br>
&gt; routinely give him broken web apps that they were poor developers<br>
&gt; for not including at least some basic tests. These could even be<br>
&gt; minimal, like a script that connects to the database and tests a<br>
&gt; couple of URL parameters for example.<br>
<br>
</div>I recommend that anyone being asked to pay for software should receive<br>
the functional application, its source code, and the full automated<br>
test suite for the entire application as a routine part of the<br>
transaction.<br>
<br>
In other words, sufficient to, if and when the customer chooses, and<br>
without needing any further consultation with the vendor, allow the<br>
customer to take the whole lot to a trusted third party expert, ask<br>
*them* to examine the source code to see if it&#39;s of good quality, and<br>
examine the automated test suite to ensure it&#39;s comprehensive and<br>
matches the requirements, and that all of those match with the<br>
application as supplied.<br>
<br>
All of these are perfectly reasonable requirements, and no competent<br>
vendor can claim that they aren&#39;t necessary or that they&#39;re extra<br>
burdens on the process. They are the equivalent of land assessments,<br>
architectural blueprints, circuit diagnostic logs, and other<br>
supporting expert documentation of the design and engineering process<br>
that are routine in the process of building anything else to someone&#39;s<br>
specifications.<br>
<br>
Even if the customer can&#39;t *themselves* make use of these documents<br>
(although it&#39;s never wise to assume that the customer can&#39;t understand<br>
at least some of the technical stuff you&#39;re doing), they are thereby<br>
assured that their vendor accepts peer scrutiny of their work if it<br>
becomes necessary.<br>
<br>
It is astounding that so many vendors, and so many customers, expect<br>
that these can be omitted from the deliverables of the project. Yet<br>
there is no good reason for it, and we should be challenging that<br>
status quo and expecting the same quality of relationship that any<br>
other customer of a design or engineering profession would expect.<br>
<div class="Ih2E3d"></div></blockquote><div><br></div><div>That is exactly what I was thinking by a code of ethics as an engineer. &nbsp;I think there is a natural pull against more formal testing of small web applications for 3rd party web dev shops when often those applications are done with more photoshop, and javascript efx, then logic. I do agree with the analogy of a blueprint, or perhaps line drawing for an electrical engineer. One potential problem though, is that IT doesn&#39;t require certification, and software developer is a broad term. &nbsp;Getting a CTO at a small company to mandate full test coverage for web applications might be tough as there isn&#39;t necessarily an agreed upon level of testing before an engineer or company is considered irresponsible. &nbsp;There is pressure to produce quickly, and &quot;fix it on the back end&quot;. &nbsp;Often small shop web developers are self taught developers with minimal software engineering experience.</div>
<div><br></div><div>I wonder if we could come up with a simplified standard of ethical testing, akin, to the golden rule, which is a pretty simple way of saying be good. &nbsp;Maybe it could be that if you use persistence, at a minimum, it should be tested. &nbsp;</div>
<div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="Ih2E3d"><br>
&gt; Is there anything I could point him to that could help convince the<br>
&gt; CTO and developers at this company that testing is just ethical?<br>
<br>
</div>Hopefully the above analogy can be helpful.<br>
<br>
--<br>
&nbsp;\ &nbsp; &nbsp; &nbsp; "I bought some batteries, but they weren&#39;t included; so I had |<br>
 &nbsp;`\ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;to buy them again." —Steven Wright |<br>
_o__) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br>
Ben Finney<br>
<br>
<br>
_______________________________________________<br>
testing-in-python mailing list<br>
<a href="mailto:testing-in-python@lists.idyll.org">testing-in-python@lists.idyll.org</a><br>
<a href="http://lists.idyll.org/listinfo/testing-in-python" target="_blank">http://lists.idyll.org/listinfo/testing-in-python</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Noah Gift<br><a href="http://noahgift.com">http://noahgift.com</a><br>