[PEDA] Testing and other matters (was Re: Many similar Sheet Symbols)
Geoff Harland
g_harland at optusnet.com.au
Mon Nov 6 02:36:59 CST 2006
> Hi Geoff,
>
> As a user of AD, I'd first like to say "Thank You" for "fighting the
> good fight" on our behalf, while you were there.
>
> I'm currently reading Beginning Python, by Magnus Lie Hetland, Apress.
> There is a nice quote from page 343 that I thought you might appreciate:
>
> "...it can be useful to adopt the attitude that a feature doesn't really
> exist (or isn't really a feature) until you have a test for it."
>
> Phil Stevens
Thanks for your feedback, and I'm glad to hear that there are some people
who appreciate my efforts to improve the quality of Altium Designer.
I have an idea that I could even have a copy of the same book ("Beginning
Python", or at least its first version), which I bought a few years back
when I envisaged that I might be able to find some time to have become
familiar with Python. (I've had a bit of experience in using Perl, so I had
visions of gaining some expertise in using Python as well.) I don't
specifically remember reading that particular quote, but then I did purchase
and browse through that book before I started working for Altium.
For all that, thanks for alerting me to that quote, as I certainly do
appreciate the message behind it.
In the case of Altium Designer, it would be untrue to say that there is no
testing undertaken at all, but one reason why there are issues with the
software is that the testing which *is* undertaken is often nowhere near
comprehensive enough to determine whether a feature or functional aspect
*always* works as intended (and/or how it *should* work).
One example (out of a regrettably large number, but still a typical example
for all that) involves the addon server which creates a PCB Library file
from the components contained within a PCB (document) file. A number of new
properties were provided for primitive objects for the first time in Protel
99 SE, such as the Keepout property for arcs, fills, and tracks, and support
for user-specified (in addition to Design Rule specified) Solder Mask
Expansion and Paste Mask Expansion values for pads and vias, etc. However
most, if not all, of those newly provided properties were *not* correctly
"copied" from the "source" components to the footprints (within the PCB
Library file), and even more new functionality was provided following Protel
99 SE, such as Height and Description properties for components (and
footprints), and new types of objects such as Regions and Component Bodies.
However that addon server was only fully "updated" relatively recently
(meaning that the final versions of Protel 99 SE, DXP, and Altium Designer
2004 all have buggy functionality in this regard). (There was an update of
that server after Component Bodies were first provided, but it was still far
from satisfactory, because at that time their Layer property was not
properly copied, and assorted other aspects, which had been crying out for
rectification for years, were not rectified at that time either).
Had one or more test files been created which contained components whose
child objects included *all* types of primitive objects provided, and which
used *all* of the properties which had been provided at various times, then
such files could have been used to help determine whether that addon server
had been kept fully up to date, and in a fully satisfactory manner.
There were (and almost certainly still are) various other aspects about
Altium's corporate culture which conspired against the quality of the code
within Altium Designer being as high as it could and should be, with one
example being inadequate communications between different members of staff.
With the final (SP4) version of Altium Designer 2004 (and some of the
previous and following versions?), if you write a (Delphi) script to report
whether the presently selected value for Measurement Units within PCB files
is Metric or Imperial, the script will report one of those units, while at
the same time the strings displayed in the Status Bar are using the *other*
unit. (So the accomplishment of some tasks from a script requires that
script to "invert" the value of the Measurement Unit that is returned by the
associated function.)
That property can have ("enumerated") values of either eMetric or eImperial,
and in previous versions the former always had an ordinal value of 0, while
the latter always had an ordinal value of 1. I'm surmising that it's likely
that "wires got crossed" when schematic files (also) acquired the ability to
use either Metric or Imperial measurement units, but the fact that it did
happen, regardless of the exact circumstances concerned, is still a "smoking
gun" that Altium has communications issues.
There are limits to what else I can say, so I will settle for saying that
those limits are advantageous from the point of view of Altium's management,
but not so advantageous from the point of view of the users of Altium
Designer. But as I assess that the odds are stacked against Altium's
corporate culture improving to a truly satisfactory level through their own
efforts, I can only repeat that users should be very forthright about
significant shortcomings in Altium Designer.
Regards,
Geoff Harland.
More information about the PEDA
mailing list