In practice, what is a system test and what should it cover?

Asked

Viewed 4,139 times

8

Among the best known tests then the unit tests which test each class of the system individually, the integration tests which test two distinct parts of the system, such as a DAO and the database. But what is the system test? What is it, how is it done and what is its goal?

Is to test even the system interface(view)?

  • Look, I know you Unit Tests, Acceptance Tests and Functional Tests, plus e2e tests, but I don’t recall hearing that term System test before. Can you show me somewhere where you saw this?

  • @Thiagosantos vi in books, in some places was described as software test.

  • I then believe that System test and/or Software Testing is a generalization that encompasses all types of tests

  • @Thiagosantos I think not, according to the book I read (TDD: Test and Design in the Real World): "A system test is one that is identical to the one run by the application user. If your application is a web application, this test should go up the browser, click on links, submit forms, etc.". But then searching in other sources I find something kind of different than this. So I decided to ask.

  • That you described sounds a lot like a functional test, which does the tests you mentioned.

3 answers

2

The system test, can be considered the "third phase" of the test, being the first unit or unit test, testing the smallest units of the system, looking for logic and implementation errors in each module separately. The second would be the integration test, which aims to detect failures in the interaction between drives, usually the types of failures found are sending and receiving data. Remembering that integration with other systems is not part of this phase.

The system test aims to test the system thoroughly. It is common to call this test black box, because the system is tested with everything connected: batch Jobs, database, web services, etc.. This test puts the whole system to the test.

In practice they are executed under similar conditions to those that the user will use. This test checks whether the components are compatible, whether they interact correctly, whether they transfer the right data at the right time, etc.

To answer your question "Is testing even the system interface(view)?" see this one image (slide 20), it shows a summary of the tests:

inserir a descrição da imagem aqui

As we can see, the answer to your question is Yes. It is at this stage that the system interface is tested.

There are also the acceptance test and regression test. The acceptance test aims to verify compliance with business and user requirements in the last phase of the development cycle, validating the product for delivery. They are usually performed by a restricted group of end-users of the system. The regression test is applied when launching a new version of the software or when there is a need to run a new test cycle during the development process. It is not considered a test level, but is an important strategy for reducing side effects.

References and related links:

-2

In practice I see that the test should be done for any test that becomes expensive to be done manually.

No test will be as up-to-date as a test made by a person and so I see that in practice, you should create tests seeking the stability and scalability of the code, ensuring that the solution is mature and has not suffered impacts in the course of new implementations.

Creating tests without the implemented solution being mature often causes the test to need to be rewritten.

Thinking this way, it does not matter if the test is by UI (screen to screen) or by code, but if it is honorable to do manually or if it is already a use case (solution) mature enough to enable the writing of the test, at that time.

Finally, in practice, you should balance the effort of implementing automated testing (and its changes) with the effort of manual testing.

  • At what point do you answer "what is a system test"?

-3

My opinion is that yes, it is to test the interface of that system, make sure that all resources available to users are working before putting the system into production. But it goes beyond that, the timing of the project and the context in which it applies may require a battery of regression testing, for example, which involves testing each feature and ensuring that specific customer business rules are working as expected. The fact that testing whether a button is working, whether the system is responsive or runs on multiple browsers may not seem as important as other tests for those who have technical knowledge, or participate in the project, however for end users of the system or who pays for it can add a very large value, so it is necessary to test the interface of a system, as well as many others.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.