A highly experienced programmer searches for errors without resorting to any techniques, but he subconsciously uses the error guessing method. This method is pretty much
based on intuition. The main idea of the method is to make a list, which lists possible errors and situations in which these errors could appear. Then, based on the list, tests are developed. Assumptions that we can make will relate not to the nature of errors, but to software that behaves like a system with a finite number of states.
- Specialized finite state machine. The programmer may not guess that his program in many cases behaves like a system with a finite number of states. As a consequence, there is no proper analysis, it is not possible to perform adequate testing and many, many mistakes can be made.
- Encoding errors. These may be input, output encoding errors, or state encoding errors, regardless of whether this is explicit or hidden encoding. If the input is encoded as hidden data, then the probability of inconsistent coding that is assigned to each state is high.
Are you fond of playing video games? Do you consider yourself a gamer and desire to take part in adventurous gameplay sessions? Game testing service may be of interest to you as it allows people to play games for free!!!
- Wrong output. This can be a coding error, or, if output encoding does not explicitly exist, then, for example, this can be the invalid subroutine call.
- Unexpected behavior of the state. A large increase in the number of complementary states can be caused by a hidden feature of the state’s behavior.
- Intersection of embeddings’ boundaries. Embedded finite state machines are used in the implementation; however, due to a bad, hastily drafted project or errors in it, the embeddings’ boundaries are ignored. Below is the figure that shows a model consisting of several embedded finite state machines. Each closed area represents a set of states (for example, a menu). If we allow for the transition from the state X, for example, to the state Y, then the entire embedded system will be violated, and, in fact, the behavior as a whole will be as if there was no embedding at all. There are other ways to complete such an intersection of the embeddings’ boundaries, but this should be implemented carefully. Crossing boundaries of the embeddings in the example is a common mistake, but in most cases it can be detected using the finite state machine testing method. Did you ever use a program managed by menus, appear in a menu item that you did not choose and ask yourself: “How did I get here?”
TOP
Add Comment