Software Testing in Lean Methodology
Each software development methodology has its own approach to project operations including testing. The way of testing may differ significantly from one methodology to another. In this article we will tell you about software testing in Lean methodology. But before doing that, it is necessary to give the full definition of Lean and describe its main features.
Lean methodology originated in Japan in the middle of the 20th century. It was invented by the managers of Toyota Corporation. At that time the company had large problems with product delivery. Its manufacturing chains were too long, so the customers could not get their production in time. That is why the managers of Toyota have decided to invent a new system of manufacturing. Initially it was called Toyota production system. However, when it became popular all over the world, it changed its name to Lean manufacturing. Now it is widely used in various fields all over the world. The main idea of lean manufacturing is quite simple. The methodology is aimed at improving the terms of product delivery by waste elimination. Anything that does not contribute to the final product is considered a waste in Lean. Such approach allows the companies that use Lean to save their time and money.
Lean methodology has been applied to software development in 2003 when two famous researchers Mary and Tom Poppendieck published their famous book called “Lean Software Development”. This book was a successful attempt to implement Lean principles in software development. Now it is extremely popular among the programmers all over the world. The book describes seven basic principles of Lean methodology and tells how to implement them in software development. Lean is considered an Agile methodology. That can be explained by the fact that Lean projects have iterative structure and Lean teams work in Agile style. A typical Lean team is small. Such teams are self-managing, because they don’t have formal leaders. Unlike the teams of traditional software development methodology, they include only several roles. Lean teams do not have project managers, business analysts, and testers. Their tasks are performed by regular developers. It means that a Lean developer must be a high qualified specialist. He must be capable of performing more tasks than the developers of other methodologies. Such an approach to team building makes Lean methodology extremely effective for managing small projects with strict time frames. However, it is quite hard to maintain discipline in a self-managing team.
What is testing in Lean methodology?
The process of software testing is extremely important for Lean methodology. That is because of the fact that Lean teams are focused on quality of their production. Providing high quality is one of the main principles of Lean. In most cases Lean developers avoid bugs. That can be explained by the fact that they don’t want to waste time on fixing them. However, it is impossible to create a software product that does not contain bugs. That is because of the fact that modern software applications are extremely complex. It means that Lean developers have to test their product as often as possible. Usually they do it after every iterative cycle.
The process of testing in Lean has its specific features. The first thing we need to mention is that it is aimed not only at fixing bugs, but also at improving the code of the final or intermediate product. Code improvements are required because of the waste definition of Lean methodology. In Lean a bad code is defined as a waste even if the software product works properly.
The structure of testing process in Lean is similar to the structure of this process in other methodologies.
First of all, the final or intermediate product is tested with the help of issue tracking tools. Such applications are capable of testing software products automatically.
After the bugs are detected, they should be reported. In modern world this process is also automated.
At the next stage of the testing process the bugs are fixed.
After that the developers should test the software product one more time to make sure that there is no more bugs in it, and that it works properly.