defining Access
The matter of access is an essential part of testing. The word “access” has all kinds of meanings and
connotations. Of course, there’s the access of your test harness to the code within the application. The
black box nature of IronPython prevents access in depth, but careful programming can provide access
to unprecedented amounts of information within your application and make testing relatively complete.
You must also consider the access the user has to the application as part of the test harness. For
example, if you use external configuration files, you can count on some number of users accessing
them. Even if you work out methods that are seemingly impossible to overcome, a user or two will
find a way to overcome them. Anything you can devise will be overcome by someone (it’s always eas-
ier to destroy than to create). Consequently, you must consider all forms of user access as part of your
test harness — if for no other reason than to determine how bad things can get when a user meddles.
It’s also important to consider external access. Whenever a system has access to the network or the
Internet, you must consider the potential for outside sources to access your application (even if your
application isn’t designed for such access). Many vendors of shrink-wrapped software have gained
notoriety for not taking this kind of access into consideration. The thought was that the application
didn’t access the outside source, so there wasn’t any need to consider the outside source during testing.
It turns out that any outside access opens avenues of influence and attack for all the applications on a
system, so you must test this kind of access.
Access is a two-way street. As part of your testing harness, you must consider application access
to external resources. For example, you must consider what happens when an application attempts to
access a particular file on disk and can’t find it. Even more important, you need to consider resources
on the network or on the Internet. There are many forms of access that your test harness must con-
sider as it tests the various methods inside the application. It isn’t always possible to test simply for
strict inputs or outputs; you must test inputs and outputs within the confines of an environment
defined by various kinds of access.
Do'stlaringiz bilan baham: |