EurekaMoments

This is my studying logs about Autonomous driving, Machine learning technologies and etc.

What is a thing a software test professional take care?

Table of content

Introduction

I read the following article for studying "What should we take care in testing software?" and "How can we do a good test?".

employment.en-japan.com

The content of this article is an interview with 2 engineers, Hiroyuki Sato and Shunsuke Tanioka who are working at SHIFT Inc.. This company's businesses are software quality assurance and testing.
I am writing about a thing what I studied by reading this interview.

Test has already started as of requirement definition

We can be easy to plan a test case by defining a specification. They said starting to write a test case without definite specification is similar with starting to write a source code before design has been decided.
I think that deciding a policy of developing and testing is the most important too. It will take much time to decide but I believe that the decided policy make us able to develop and test our software smoothly.

How should we decide to write a test code or not?

Writing a test code is not always correct. If the specification was still not fixed, it would be changed next week. And then, we will take too much time to maintain our code because of the test code.
It is important that we should secure a reproducibility by the test code not to forget the content of test. A test case which is forgetful need to be automated. In addition, we need to clarify a directionality "What is a purpose of writing a test code?". If we didn't have long term perspective, we would not be able to collect the initial cost to write the test code.

How can we reduce test cases effectively?

About each function, we should give priority to the test cases. A good method to decide the priority is to think a correlation like "if the function's test was not executed, how would it affect the service?"
In our team, we should share all of issue which had ever happened in detail. Depend on the information, we can consider "what should we focus on to plan a case?"

What we should do to improve our test

  • To clarify a purpose of our test
  • To decide the priority is to think a correlation like "if the function's test was not executed, how would it affect the service?"
  • To get an opinion from test engineers when we decide how to change the design and specification
  • To share all of issue which had ever happened in the past. Especially, "How was the issue found?" and "How was the issue included in our software?" are very important.