Testing is the only way to guarantee software quality

06/08/2020

Guarantee means that you have tested and confirmed that it is correct.

The most important thing to guarantee the quality of software is testing , because not only software but only testing can guarantee the quality of products . For example, to guarantee that the diameter of a pachinko ball is 11mm +/- 0.1mm, actually measure the diameter of the pachinko ball. Measuring means verifying, that is, testing, and this is the most direct way of guaranteeing. The software is the same, and the most reliable way to guarantee that it meets the functions and performance is to test it and confirm that the result is correct .

Plan the test according to the purpose and manage and evaluate it well

In how much may be carried out what test do you? The normal system test and abnormal system testing, unit testing and system testing , RAS function test and security test , but there are various nickname tests, such as, can be enough to guarantee the quality of the software if the amount the implementation of how much any kind of test Is it?

Once you have decided on the type and quantity of tests to be performed, you will also need a test plan that organizes the equipment and test personnel required to perform those tests by the time of release . Once you have a plan for your test, you also need to manage your test to see if it’s going according to plan . And finally, it is also necessary to evaluate the test to judge the quality of the software from the test results .

As the scale of software grows, the importance of testing in software development becomes more and more important , and various know-how is required to plan, manage, and evaluate the results of these tests. In the group of this article, I will introduce various things about the test that Father Gutara has been doing from his experience.

 

Use test names with a purpose in mind

In a word, a test has various purposes , and the test name is given according to the purpose . In the world of software, there are many activities in the muddy field rather than science, so there are various test names and it is often difficult to decide which test to take.

And divide the test in the development phase unit testing , integration testing , system testing will come out is named, and divided in the function check the normal system test , quasi-normal system test , abnormal system test will be, design verification and validation little wide that it is also the name of the test that points to the range, exploratory test Toka combination test to there is also a name like that, RAS functional testing and security testing so on, there is also the name of the test along the individual requirements. If you take a closer look, there are also purpose-specific test names called system test categories .

It’s easy to get confused by the names of different tests, but it 's easier to design and run tests if you first think of the tests you need for the purpose of the test and then use the test names that match those ideas. .. Here, first of all, I tried to divide the test by what name there is according to the purpose of the test, based on the experience of Father Gutara and his own discretion.

It is important to create a plan for the test

Recently, tests have become particularly large , and many people are using a lot of equipment to perform tests in multiple locations. When this happens, it becomes important to have a test plan that has a solid test as well as the development of the software itself . You will not get good test results unless you have a solid test plan, use it to align the intentions of all the test teams , and work towards the same goal with all the team members. ..

In the test plan, first clarify the test policy and goals , determine the structure and division of roles of the test team to achieve these, prepare the environment and equipment necessary for conducting the test, and test design and design review. You will need to decide how to proceed, how to record and track test results, how to manage these test tasks, and write these things down in your plan. As the scale of the test grows, it may be necessary to use appropriate metrics to understand the status of the test, so write this down in the test plan as well.

What should I think about when making a test plan? Here, I will introduce what you should write in the test plan based on the test plan that Father Gutara has seen so far. ..

Once you have a plan, use it to manage your tests

Once you have a test plan, it’s time to start the actual test. We design the test , prepare the test environment , perform the actual test, record the test result, and track the result . Bugs found in the test are managed by bug tracking , feedback is given to the development department, and when the software that fixes the bug is re-released, the status of the fix is ​​checked . Since these test tasks are also collaborative work by multiple persons, various test management is required.

Manage the progress of work processes such as test design and execution , monitor the number and contents of bugs detected in the test to manage the efficiency of the test, and debug whether the bugs found are being fixed smoothly. For managing work, managing the status of bug recording to see if the information necessary for reproduction of found bugs is properly recorded , managing the completion judgment of the test when to finish the test, and managing the test. There are many things that really need to be done, and there are also many ways to do that.

There is no right answer, as test management varies greatly depending on the organization conducting the test. Before starting the actual test work, consider the management method suitable for each organization and software development project and write it down in the test plan. And when the test work starts, let’s proceed with the work of managing the daily test situation according to the contents of the test plan .

The important thing in test management is to proceed with test management as written in the plan . At first glance, it sounds easy, but in the actual test site, when the release approaches and the backlog accumulates, the test work itself is inevitably overloaded and test management tends to be thin. However, in such a situation, test management that provides the material for making decisions to operate the limited test resources of people, equipment, and time most effectively is necessary . Never forget that test management is needed in the death march.

After testing, use the results to evaluate and improve quality

Since testing is a means to guarantee or improve the quality of software, it is only when the test results are effectively used that the quality of the software for the purpose of the test can be guaranteed or improved. The scenes where the test results are used are roughly divided into two, the first is during the test work and the other is after the test work .

It is important to efficiently debug and fix bugs found during testing. For debugging, it is important to record the bug event (what kind of problem occurred) and the condition of occurrence (how it occurs). In addition, the designer or coder investigates the cause of the found bug, fixes the bug, and passes it to the tester to confirm the bug fix .

One of the major purposes of the test is to discover latent bugs, so the found bug itself is the result of the test, and using this result to efficiently fix the bug and improve the quality of the software is to utilize the result of the test. increase. And, as for how to utilize the test results during this test work , it is important to write a concrete method in the test plan as well as test management, and proceed according to it . If you change the usage of test results in the middle of the test work, it may cause confusion in the debugging work, so it is better not to change the usage of the test results in the middle of the test work as much as possible.

When the test work is completed, the test results such as the found bugs and their correction status and the test evaluation that analyzed the test results are organized and compiled as a test report . What is test evaluation? For example, was the bug detection rate in this test good or bad, was it possible to find many bugs efficiently in the first half of the test, and was there a bug that was difficult to find in the second half of the test ? , Etc. It is a judgment whether or not this test achieved the planned result.

The test result is the most important product of the test work because it is used for the release judgment by judging the quality of the software . And test evaluation is used to improve the test process of test planning and test execution . Whether or not this test evaluation can be carried out firmly and lead to improvement of the test process is a big difference in whether or not you can grow into a good test team , so let’s consider it carefully.

Introduction of Gutara father style test

In the following articles classified as tests, I will organize the ideas and information necessary for software testing as much as possible and write them in the article.Although there are still few articles, I will add it little by little. Please wait. 

At the beginning of the article title, there is a sub-category related to software testing . The subtitle following the subcategory is the outline of the specific article. There is no particular rule on the order of reading, so please read the articles in order from the one you are interested in.

For a quick overview , see the article outlining the sub-categories . If you want to know a little more about what is written in the summary article, please see the individual articles or read the individual articles linked from the end of the summary article in order.

  •   Overview・Software test objectives and test types 
  •   Overview・Items to write in the software test plan
  •   Overview・Items to write in the software test report 
  •   Overview・Useful test for quality assurance of embedded software 
  •   Test type・Unit tests, integration test and system test 
  •   Test type・Normal test, abnormal test and semi-normal test
  •   Test type・Semi-normal test in communication protocol processing 
  •   Test type・Semi-normal test in state transition 
  •   Test type・Semi-normal test with hardware control 
  •   Test type・Functional testing of RAS
  •   Test type・Security test
  •   Test type・System Testing Category in The Art of Software Testing
  •   Test type・Function/Large amount of data/High load/Usability/Security/Performance/Storage area
  •   Test type・Configuration/compatibility/installation/reliability
  •   Test type・Abnormal recovery/maintainability/documentation/runbook 
  •   Test type・Is the test for debugging or for quality assurance? 
  •   Test plan・The plan writes the test policy first 
  •   Test plan・Test Goal (Part 1) Delivery time, cost and product quality 
  •   Test plan・Test Goal (Part 2) Process Quality, Work Quality and Test Management
  •   Test plan・Sharing of tests (Part 1) Design, implementation, recording and reproduction
  •   Test plan・Sharing of tests (Part 2) Primary isolation and debugging of defects 
  •   Test plan・Test metrics (Part 1): Schedule and Deliverable Progress Management
  •   Test plan・Test metrics (Part 2): Test result management
  •   Test plan・Test environment and environment preparation
  •   Test plan・Decide how to classify defects and bugs and the items to be recordp
  •   Test plan・Definition of bugs and bug states is important for managing bugs and
  •   Test plan・Priority and track bugs and bugs
  •   Test report・Bugsmust must be prioritized and tracked 
  •   Test report・Estimating latent bugs by reliability growth curve
  •   Test report・Test evaluation begins with an evaluation of the test content
  •   Test report・Write an evaluation of the test schedule in the evaluation of the test plan
  •   Test report・Write an evaluation of test efficiency in the evaluation of the test plan
  •   Test example・Memory leak test 
  •   Test example・Non-memory dynamic resource leak test
  •   Test example・Rollover test of timers and counters
  •   Test example・Simultaneous execution test of multiple functions
  •   Test example・Add semi-normal and abnormal test to the startup
  •   Test example・Deterioration test of secondary storage devices such as flash memory and HDD
  •   Test example・Aging test under high load
  •   Test example・Aging test on poor quality channels
  •   Testing is the only way to guarantee software quality
  • Posted by グータラ親父