10 things I learned in a computerized project with multiple interfaces – 02.03.2016
Written by Levi Davish, Customer Experience Manager at Panda Tech
We have recently successfully completed the development of computer testing software for maintenance purposes. This computer is the heart of a multi-interface system the computer should test. The Panda-Tech team played a crucial role in all phases of the project, from the definition of system requirements, through interface design, definition of requirements to the subsystems, participation in software coding, software testing and system-level testing.
This was an excellent opportunity to lead a software project throughout its stages and to be a significant part of the development management process.
From the experience of this project I have tried to summarize ten of the most prominent issues in the activity to which we belong recently:
1. Understanding customer needs
It is important to understand in depth the real needs of the client as expressed in the following ways:
Formal talks with senior representatives
Informal conversations with operators / technicians / engineers
Scan the characterization documents of past projects for the client
2. Maximize customer involvement in all stages of development
Presenting the system's characterization plans, sharing representatives in dilemmas for effective building of the HMI
Allowing the customer to perform tests at the development point prior to the formal testing stage in order to correct on-fly defects created by an inappropriate translation from the coding /
Integration of the client's representatives in the engineering tests - the customer uses the system in a unique way, and only thus can it identify deficiencies created due to lack of knowledge in the daily operation of the system. Without this involvement, the flaws in the formal tests will be discovered and will lead to unnecessary opening of the software versions and costly delays in delivering the project.
3. Development around one application for development management
Each project group has a favorite and preferred application, but when the project manager decides on one application and obliges all project elements to use it only, after a short period of learning, a system of organizational information management is created that includes:
Manage customer requirements + Change committees
Organization of system and sub-system requirements
Concentration of software requirements according to sub-systems
Full test coverage including development tests, system testing and independent testing (IV & V)
4. Set as accurate a definition of the coverage as possible
It is very important to understand that it is not possible to test 100% of the features and characteristics of the product that the project is supposed to provide. Therefore, The team of testers has to set up the most comprehensive testing package possible within the time allotted to it and then analyze and delineate the
test coverage with a list of subjects that will not be examined as part of the proposed package of tests. Of course this list will be discussed within the framework
Discussions with the client.
5. Integrating simulation simulators into interfaces for early detection of bugs during coding.
It is not always possible to perform tests on a well known site and there is not always the ability to perform extensive tests on the site. Therefore, integrating a simulator for key tests simulating the interface environment can significantly improve the maturity of the software designed for integration in a multi-interfaces system
6. The importance of a site for the early detection of malfunctions in the early development stage
Having defined the site as one of the bottlenecks in managing the project, it is time to understand its importance in performing system-level tests in addition to unique testing capabilities using simulators, measuring devices, and software for monitoring and gathering information.
7. Concentrating efforts to define tests using a variety of methods
The most important ability of a site is to allow the testing of negative scenarios and complex scenarios can be tested only at the level of the system and only a site spread secure to prevent damage to the equipment. Use of existing equipment on the site may provide various capabilities for testing such as:
Image faults in the interface (wiring / voltages / signals)
Disruption / Disconnection.
Injection signals at different running stages.
HMI tests are rigorous
8. Freeze requirements as a necessary condition for meeting deadlines / Good planning of a project Defines exact dates for the freezing of requirements and a process of convergence to the defined dates. This is one of the most complex and challenging processes in all stages of the project, since all parties, including the project manager, system engineer, software, all want more time to do as much as possible. Add another important requirement that came in at the very end, better define the requirements of the sub-system and improve a little more on the list of tests. However, failure to comply with the principle of freezing the requirements may lead to the demons of repeated postponements, failure to comply with the project schedule and payment of fines for arrears.
9. The enemy of the very good is excellent
Similar to the need to freeze requirements, there is a time when the product must stop developing, stop and allow the test team to complete the test package without inserting another version and more. The need to fix a bug that was discovered in the last test is almost uncontrollable, but sometimes fixing one bug could add up to ten hidden bugs that will arise in the process of formal testing.
10. A sound work environment and open communication as a key to effective problem solving
This is actually the most difficult element to perform because it is human beings, sometimes with different interests and different ways to reach a common goal. There are hidden power struggles that seem to be relevant but always always personal. So how do you make communication healthy and positive? Here is an example: The testing team is the one that is supposed to point to deficiencies and report failures in planning, thought, execution, and the way to present these deficiencies is very important. The example I take is from our test team, which almost always presents the good things that he examined, gives a good word about brilliance in performance or fine design, and only then clarifies in a practical and precise language what is needed for correction. This makes it easier to get the worst bug that everyone has recognized right away.
Developing a software project is a complex and demanding process, and therefore it is important to act wisely. The advice I have brought here is all the product of experience and a reflection on a special process that I had the right to be part of. Their implementation may contribute to each project to succeed and bring it to a successful conclusion.