Have you ever wondered how it all started? Before there were those energetic business terms of Entrepreneurship, startups, and ecosystem. How the first runners that worked in software development did the job? How did Microsoft release Windows 1.0 in 1985? What did Apple do to release the classic macOS?
“A people without the knowledge of their past history, origin and culture are like a tree without roots.”
In college, they teach us to evaluate our code structure, hierarchy, and even naming conventions. What they don’t teach us at school is what could possibly go wrong if any mistake happened, any miss calculation we didn’t notice while running the code? Any missing scenario no one thought of while being in the pilot phase of the product or the code?
Here is what they don’t teach you at school. In 1988, a program developed by a Cornell University student for what he said was supposed to be a harmless experiment wound up spreading wildly and crashing thousands of computers because of a bug in the code. It was the first widespread worm attack on the fledgling Internet. The graduate student, Robert Tappan Morris, was convicted of a criminal hacking offense and fined $10,000. Morris’s lawyer claimed at the trial that his client’s program helped improve computer security.
In 1998, NASA’s climate orbiter was ultimately lost in space while it was on its’ mission to Mars. Flight controllers believe the spacecraft plowed into Mars’ atmosphere where the associated stresses crippled its communications, leaving it hurtling through space in an orbit around the sun.
In 2004, a company called EDS supplied software to the UK’s child support agency. At the exact same time, the Department for Work and Pensions (DWP) decided to restructure the entire agency. The two pieces of software were completely incompatible, and irreversible errors were introduced as a result. The system somehow managed to overpay 1.9 million people, underpaid another 700,000, had US$7 billion in uncollected child support payments, a backlog of 239,000 cases, 36,000 new cases “stuck” in the system, and has cost the UK taxpayers over US$1 billion to date.
In 2011, Mt. Gox stated that they’d lost over 850,000 bitcoins. Although around 200,000 of the bitcoins were recovered, Mark Karpeles admits “We had weaknesses in our system, and our bitcoins vanished.”
In 2008, just before the opening of Heathrow’s Terminal 5 in the UK, staff tested the brand new baggage handling system built to carry the vast amounts of luggage checked in each day. Engineers tested the system thoroughly before opening the Terminal to the public with over 12,000 test pieces of luggage. It worked flawlessly on all test runs only to find on the Terminal’s opening day the system simply could not cope. It is thought that “real life” scenarios such as removing a bag from the system manually when a passenger had left an important item in their luggage, had caused the entire system to become confused and shut down.
Over the following 10 days, some 42,000 bags failed to travel with their owners, and over 500 flights were canceled.
Now, after we have learned about our past and the highlights of some incidents that happened because of QA errors and mistakes that could have been avoided if the product was tested more carefully with real-life scenarios.
The companies working in tech industries have learned their lessons when it comes to QA budgeting and the cost that they will pay if they thought of reducing the budget of QA processes and implementations.
Quality Assurance Engineer Journey, at first, as a QA engineer you will have requirements and criteria that need to be matched and evaluated against. So what you will do is normally put a test plan that includes some test cases grouped by test suites then stay idle till the developers release a testable version then start executing with your plan.
The industry changed, the old model (Waterfall) turned out to be very time consuming, business change every minute, customers change their needs every day, we had to come up with a new way of doing the job. People came up with Agile. The way of doing things as fast as possible and as organized as possible while staying in the same old cycle of development.
Instead of planning your tests according to the full requirements of the product, you will be having a small piece of the puzzle to figure out its place, piece by piece until you combine it all together. Scrum is the beloved child of Agile, it just regulates the size of the puzzle’s piece and when will you be receiving every piece whether it’s a 2 weeks sprint or 4 weeks, you will be receiving some of the full requirements at the beginning of that sprint, then you will start running. Keep running until you get the next one. The reason for us to keep running is to cope with the changing world of software engineering.
The cycle kept going for a while until a new type of software engineer decided to do something to change it. Automation… Let us automate what we do instead of keeping doing it every day in our lives, they said. The Software Engineer in Test (SDET), that’s what they called themselves. Frameworks were being designed in parallel when no one was thinking of it. Selenium came up, the first and best library for automation testing created and implemented, all open source.
The clock now got another gear that should be turning, the idea was planted in everyone’s mind. That if you don’t automate your testing cycles, you are doing it wrong. Planted in everyone’s subconscious mind like the movie “Inception”. Now, each company should be having someone in their QA team that’s capable of creating and structuring an automation framework for any type of software they are creating.
After working in 6 startups and being part of several others during their automation transformation, I can give you a point of view of the software industry right now and where is it going. The fast-changing world resulted in having several startups open their doors every day and sadly, others close their doors with no turning back. If we did not get prepared for the change coming towards us, that change will be so cruel and will have no mercy on us neither our careers. Everyone now is transforming their development operations to the next big term that’s come to your mind right now.
DevOps… Now, you can automate your software development operations from testing, deployments, and code review to be executed at once whenever a developer sends his/her code for review. All with a press of a button through several managed services like amazon web services or Microsoft Azure services and a lot of other companies are providing those services. That leads us to this question, Are DevOps the next quality assurance?