Skip to main content

STORY: Most Challenging Bug


It was an embedded software running on a specific hardware. Software was consisting of different modules for each task. The functionality that I was testing was related to two different modules which are written by two different developers. Required functionality was not working and test was failing consistently. Then, we debugged the Module-1 with Developer-1, Module-1 seemed to work properly. Then, we debugged the Module-2 with Developer-2, Module-2 also seemed to work surprisingly. Of course, each developer was blaming the other developer for the fault : )

Then I suspected about my own test case and re-reviewed and inspected it again, but test case also seemed as OK. Afterwards, we suspected about the software testing tool and debugged it with the developer of the test tool. Not surprisingly, test tool also seemed to work properly : ). Ooopsss. What is next? The next suspicious guy was the data buses between test tool and the software/hardware. Then we checked data buses and their physical connections using bus tools and Data buses also seemed OK. 2 testers and 2 developers had no idea about the ongoing issue at all. So, we ended up with nothing.
In every company, there is always some key guy who is more proficient, experienced and knows about the many things about the project as a whole. We 4 people decided to go to this key guy (who was also responsible for software integration) and asked for help. After long hours of inspection behind a little insect (bug), this key guy found out that the link(port) between the two modules didn't exist at all. BINGOO !! This fault was an integration fault, since software was being developed in modelling language environment and needed to be integrated manually.


Comments

Popular posts from this blog

Star Wars ASCIImation with Python - Windows

In this post, we'll watch a Star Wars movie in ASCII format. The only thing we need for this demo is Python-installed PC and internet connection. Figure : Screenshots from Python Command line while Star Wars is being streamed All credits gained in this demo will go to " blinkenlights.nl " [2] website, which broadcasts this ASCII movie using Telnet protocol on Port 23, and Python which makes socket implementation very easy for us. No authentication is needed for this broadcast. Anyone who is able to create a TCP socket and listens  blinkenlights.nl  on port 23 would be able to get this stream and display on their Python command line. CODE My main source for Python source code is [1]. What  code below does is simply importing Python "socket" library, create a socket, use " towel.blinkenlights.nl " address variable to create connection, receive data from socket and display it. While typing (copy/paste) code, be careful about indentatio...

How to Fill out a Cheque?

In this post, I will demonstrate how to fill out a cheque properly. You can have a cheque book either from your bank or any store. If you find these two suggestions expensive, you could also design and print out your own cheque. In Figure 1, a sample cheque is displayed and in Figure 2, some regions of the sample cheque are highlighted. Figure 1: Sample unfilled cheque. Figure 2: Some regions are highlighted in sample cheque. 1- Name and Address of Payer: Name and  address of the person who is the owner of this cheque and is filling out the cheque should be written in this region. 2- Date: For any official document, date is a mandatory field and hence you should write current date in this region. 3- Payee Name: Payee could be either a person or an organization (Store, Restaurant, Company, School etc.) You should write the name of the payee here explicitly. 4- Amount of Payment (Numeric): Exact amount of the payment should ...

ESP8266 Mini Project: GPIO with Button and LEDs

In this post, I'll be sharing a mini project of mine, again using ESP 8266 NodeMCU chip and MicroPython. This project mainly focuses on GPIO pins and methods for this chip. LEDs will be my output and I'll use a button as an Input. My input button will be used as a Start/Stop command for ongoing operation. Ongoing operation will be blinking of LEDs with varying frequency. I'll implement this project in two different methods: Using Asynchronous Polling Using Interrupt Request Setting Up Circuitry GPIO 16, GPIO 5, GPIO 4, GPIO 0, GPIO 2, GPIO 14 pins will be configured as Output pins being pin_D0, pin_D1, pin_D2, pin_D3, pin_D4, pin_D5 respectively. GPIO 12 will be configured as Input pin and will be connected to a small button circuitry. Button simply behaves as a switch and default position is OPEN (no contact between side pins). By default, logic LOW (0) is applied to input pin, when button is pressed (switch is closed) logic HIGH...