Symmetric and Asymmetric Relations

Symmetric and Asymmetric Relations

A relation is said to be symmetric if it holds both in one and the other directions. This means that the arrow on the graph is directed to both sides. Examples: neighbor is married. The neighbor’s relation is symmetric, but not transitive.


In English, for symmetric relations, the turn of speech “A and B are related to each other” is usually used, instead of “A bears relation to B”. So, we say: A and B are married, A and B are neighbors and so on.


A relation that is not symmetric is usually called asymmetric. The fact that the relation is not symmetric does not mean that a pair of nodes should be in a one-way relationship; this only indicates that the existence of bidirectional relationship is not a prerequisite.


Do you want your software app to show correct behavior? You have the lucky chance to ask specialists of quality assurance company to test your program in order to find out why it works improperly and address the problems. You are recommended to turn to Ukrainian experts for help as they are able to do the job to a high professional standard.


Symmetry is a very important property of relations, and we should check whether or not the relationship is symmetric. For example, if you test a menu in a menu-driven product (namely, in a product that you work with by selecting certain items in the menu), then by checking the symmetry, you actually check whether there is always the possibility of returning to the previous menu. Similarly, if the program (in a text editor, or, let us say, a spreadsheet) has a UNDO function, this means that most operations are symmetric, because you can always cancel the operator actions. However, even an ideal UNDO cannot be completely symmetrical, since there are operations such as printing or sending that cannot be cancelled.


Symmetry and transitivity are often sources of confusion in the specifications, or the problems may arise through the fault of programmers. Natural languages, as usual, also complicate our lives, but in the case of symmetry, problems arise because (to a greater or lesser extent) the symmetry is implied in them, and not explicitly postulated.


Always pay attention and check the symmetry or asymmetry of all relationships in the specification. In addition, check how the programmer understands symmetry or asymmetry. If the concept of “symmetry” is ambiguously interpreted in the specification or by the programmer, then you will have a “burgeoning milieu” for testing.

Leave a Reply

Your email address will not be published. Required fields are marked *