PPRuNe Forums - View Single Post - MAX’s Return Delayed by FAA Reevaluation of 737 Safety Procedures
Old 29th Jun 2019, 14:23
  #825 (permalink)  
Nialler
 
Join Date: May 2008
Location: Paris
Age: 60
Posts: 101
Likes: 0
Received 0 Likes on 0 Posts
Originally Posted by 73qanda
Fergusd can you give some brief ( easily understood) examples of how high quality code is different from most code? Or how the process of writing/developing it is different? I have never been involved in computing at all so have little understanding of what the differences might be.
Cheers
There needs to be a very detailed process beginning from the earliest design specs, going through ever more detailed design documents right down to the coding of the separate routines involved. Strict rules must be set regarding the tools and methodologies to be used. The customer must agree and sign off on these. Separately, a test plan must be created. This must involve developers - in their tests, software always works. Testers try to break, rather than fix.

Again, the customer signs off on this. User acceptance testing is best performed by the customer. At all stages, testing must be documented. All flaws must be documented. A tool set for orthogonal defect classification to detect underlying design defects, or even possibly individual programmer defects. The test plan will allow for some functional testing of programme logic at the desktop level, but eventually the code must be tested in an environment which simulates the environment on which it will run. Again, customer sign-off will be needed and that environment must be provided and managed by the customer.

Then testing begins along the lines of the agreed plan. All successes and failures are logged. Remember, the job of the test team is to break it, so the more extreme the conditions under which the software is expected to operate, the better. Invalid inputs, strange dates, the whole lot. If fixes are required, or an invalid assumption had crept into the design then this must be rigorously documented and signed off by the customer.

After testing, then you proceed to user acceptance testing. This is the role of the customer, and the last step before code goes into production. At this stage, there then are the layers of change management and change control.

How do we release our software into the wild? Obviously, in aviation, there are additional considerations.
Nialler is offline