Often times, most companies will overlook the testing phase of a software lifecycle. But large enterprises understand the importance of software testing in the lifecycle; they don’t want to lose customers or unnecessary expenditure due to untested systems or applications.
Most enterprises have a software testing department — be it an in-house team or outsourced. The point is, they are aware of this important aspect of the software development lifecycle. Since they’re large enterprises, money and resources are not constraints for them, so it should be no issue for them to hire or outsource testing.
For startups, SMEs, it’s a different ball game. Aside from the costs, I’m quite surprised that most startups don’t even think about testing and the impact of not having a proper testing before releasing their apps. Most of the time, they think that developers/programmers have already performed their own tests so any additional testing is redundant.
Developer do the testing
“Since unit testing and test-driven development burst onto the programming scene in the early 2000s, too many programmers have deluded themselves into thinking that they could ship high-quality software with automated testing alone. It’s a mirage.” –
DHH – Creator of Ruby on Rails, Founder & CTO at Basecamp (formerly 37signals)
With the evolution of Software Development Life Cycle (SDLC), different kinds of programming methodologies have entered the picture. From Waterfall to Agile and now DevOps.
People tend to think that, with all these current methodologies, they can just automate testing and release it quickly. First of all, I agree with James Bach, I don’t like to call it Automated ‘Testing’ because it’s actually is ‘Automated Checking’, which is marvellous to complement testing, but it is missing something.
Testing needs to be performed by humans with deep and critical thinking. Based on my experience, some organizations want to keep up with the trends but don’t do it correctly.
For example, some organizations like to mention that they are using the Agile method or that they are in Agile environment, but actually, what they did is just ‘Waterfall’ and then they added a ‘scrum’ meeting and a ‘Kanban’ board. The timeline and everything, is still based on a waterfall model. This is still happening currently in some of the larger enterprises.
Even for automation, there’s a list of automation checking that you can do. From unit testing to regression testing. The regression testing script is written by the tester.
As for automation, I know of one major MNC here in Malaysia which is still struggling to set up their automation framework, even after 3 years. Yes, 3 years. You can’t solve everything by automation. Automation can help you do repetitive tasks faster and easier, but it can hardly explore and find bugs for you. Automation is scripted and it will execute based on how you script it. It can’t think and act like real users!
Costs and time
If you follow my posts, I believe you already know that I keep mentioning about this.
The first thing is costs. The main reason why a company doesn’t do proper testing is due to the cost-related issues. To hire a QA team or outsource the testing will cost them a quite the sum.
But if you have invested so much time and money on developing your app, why are you are willing to skip the testing and release an untested app? Do you know that the cost of fixing bugs in production is way more expensive than trying to fix them during development? Based on data by IBM, the cost of finding bugs is 30 times more expensive at the later stages compared the to design and architecture phases.
Not only that, don’t forget all the possible losses that you might have, such as losing your users’ confidence.
We are a startup/small/new company and so we can’t afford to do testing
Let me tell you this, not having any testing is basically a recipe for disaster. You think you’re saving some money in the beginning, but, you may lose so much more in the end.
Currently, most apps are similar to each other, since you’re a new player, what makes you different? The quality of your app! Having a quality app will help you retain your current users by earning their trust and confidence, it will also help you acquire new users!
Maybe some of you has a way of thinking like, “it’s ok. we’re new and we’re allowed to have auntested/buggy app.” Well, now, let’s put yourself from the users’ perspective. I can bet that you don’t care whether this startup is new, or if its app was just newly launched, because what you care is the app working as intended. E.g. If it’s an e-commerce, all you care is to be able to make a purchase successfully.
Most, if not all, companies want to release their products or apps at the soonest. Sometimes, they think, just doing minimal testing or ‘Happy Path’ or even worst, skipping the testing phase, shouldn’t hinder the app from being released. Often times, most companies will think that adding testing to SDLC will be time-consuming and delay the product launch.
If you use the right expertise and the right testing method, testing can be done correctly without taking so much time. Most important things is the quality! We want to have a high quality app in order to ensure maximum customers and users satisfaction!
What’s the worst can happen if we don’t do testing?
Well, let’s see real-life events that happened due to software or application bugs.
- Toyota recalls 625,000 cars over software malfunction.
- Nissan Motor Company had to recall over a million cars due to the software bugs in the airbag sensor detectors.
- 60 percent of Starbucks in the US and Canada being forced to close because they were unable to process payment transactions due to bugs in the POS system.
- Let’s get closer to our SEA region
- Malaysia’s biometric system error on 2011 : Travelers were pissed off after they were forced to wait nearly an hour and a half to pass through Malaysia’s immigration checkpoints. A lot of them had to change or cancel their travel plans all together, even worse is this happen during the peak holiday season.
- In 2014, Jollibee lose millions of pesos a day due to a malfunction system that forced some of its stores to close.
- A “software logic issue” with the new signalling system and a “confluence of failure conditions” caused the train collision at Joo Koon MRT station Singapore on Nov 15, 2017.
What works before must work now
If you see above screenshot, user were telling that before this, the app works just fine, but after updates, it doesn’t work anymore. This is because the developer or the app company didn’t do regression testing. Whenever you do updates or enhancement to your app, regression testing is a must! So that, it won’t break the previous release functionality or the whole business process.
In cases where previous releases were not run through rigorous testing, for the next release, this is one version of the app you MUST do testing in your cycle!
The future of testing
When I started my career in the testing industry, there was a huge discussion that said manual testing will be replaced by automation checking. Well, up until now, manual testing is still in demand! This is due to the fact that automation checking can’t replace a human brain. All the decision making, test data analysis, and the most important part, thinking, can’t be done by the script!
Currently, the huge discussion now is that AI going to replace manual testing. My stance is as above: AI will surely help a lot and create a huge impact in software testing, but again, we still need human brains to do the thinking! It won’t take over the testing but surely it will change the way testing is done.
Software testing has evolved and will continue evolving. In order to stay relevant as a software tester, you need follow the changes. You can’t afford to be the same or just stick on whatever you’ve been doing for the past 10 years! Or else, you will be irrelevant! Put effort on learning new things, do some research etc.
Image Credit: ronstik / 123RF Stock Photo
Editor’s note: e27 publishes relevant guest contributions from the community. Share your honest opinions and expert knowledge by submitting your content here.