Friday Dec 13, 2024
Tuesday, 28 September 2021 03:23 - - {{hitsCtrl.values.hits}}
By Janith Gunasekara
Delivering software products with exceptional quality is essential for technology organisations building mission-critical systems. If an application is not delivered to exacting standards of quality, this becomes a significant risk to the survival of these organisations in a fast paced and competitive world.
For these organisations to stay ahead of the competition, it becomes imperative that quality engineering tools and techniques are implemented correctly as they can have a significant influence on product cost, overall quality, and the organisation’s bottom line. The principal of quality engineering and the role played by quality engineers that conform to the highest possible quality standards is of utmost importance in determining an organisation’s success.
Quality engineering has thus become a vital discipline and a career option for many young professionals. There are multiple sub-disciplines in quality engineering; each of them offers diverse options for career growth as well as opportunities in strategic leadership positions.
However, before choosing quality engineering as a career, it is important to understand the different roles that are available in the industry. It is also essential to understand the main responsibilities of the role, skills required, and future trends.
Quality engineering as a practice
A skilled quality engineer can help enterprises in implementing industry best practices. There may be misconceptions that a quality engineer is only responsible for testing. However, there is a much wider scope, and the practice includes methods, concepts, and the right engineering approach to ensure minimum defects. The quality engineer is thus responsible for limiting production failures and ensuring maximum uptime for an organisation’s critical systems.
Harking back at some costly failures as a result of improper attention to quality engineering, the breakdown of the Mars Climate Orbiter in 1998 comes to mind. This was the result of incorrect calculations and a mismatch in the measurements used: the cost of errors was estimated at $ 193 million. Also, the chaos at Heathrow Airport in 2008 due to hasty implementation of new software, caused loss of baggage and flight cancellations: the root cause was determined as failure to test with real-time scenarios.
The Heartbleed virus issue of 2014 where a vulnerability called ‘Heartbleed’ emerged in April of that year and allowed hostile attackers complete access to sensitive information across thousands of servers including huge sites like Yahoo. Caused by a flaw in OpenSSL, the vulnerability allowed malicious users to easily trick a vulnerable web server into sending sensitive information, including usernames and passwords. This can also be attributed to a serious flaw that resulted in a worldwide data leakage.
These failures could have been averted with a proper approach and testing strategy. The cost of prevention and associated activities can ascertain that failures are not present in production. Costs may be incurred in the course of this process, but the overall cost of failure will reduce drastically as a consequence.
Similar to software engineering, the correct methods, tools, and approach is necessary to build a product that meets quality standards.
Role of a quality engineer
One of the main responsibilities of a quality engineer is to ensure design specifications are operational: i.e., utilising the process of ‘Functional Verification’ to ensure that the expected functionality of an application meets the defined requirement becomes a core task throughout the quality engineering life cycle.
A quality engineer also needs to ensure that non-functional aspects such as performance of the application, application security and usability are operational. For example, a quality engineer should assess the application’s vulnerabilities pertaining to security, prevention of hacking and user experience and fix these before the application is deployed and goes to market.
A quality engineer in addition to performing manual tests, should automate repetitive testing tasks by utilising a tool or a framework. Implementation of test automation will enable more time to be spent on other important tasks.
A quality engineer can progressively become an expert in automation, performance, security or function as a generalist with good all-round knowledge on all facets of quality engineering.
Ascending the career ladder
Many questions surround future prospects for a quality engineer: Where will this career lead me? Can I become successful? Can I contribute to the Sri Lankan economy? Will my career earn respect and support me financially?
The career path begins with a QE Internship. Once an individual completes the internship and also completes a first degree or diploma, he/she will proceed to become a quality engineer.
A quality engineer needs to focus strongly on certain aspects. Chief among these is the ability to perform functional verification (understanding the business requirement and the testing scope) automating test cases, understanding performance requirements, reviewing security aspects and accessibility criteria.
In today’s context, it is insufficient for a quality engineer to merely draft test cases or perform routine application tests. A quality engineer needs to understand testing strategy: A proper test strategy will be based on the type of application, the release cadence (the frequency of releases to production) and business scope.
Upon completion of this stage, a quality engineer can progress to become a senior quality engineer. Continuous learning and an understanding of the quality engineering life cycle together with experience will result in promotion to the next level of ‘Associate Lead’; in this role individual provides supervision for certain activities and leads small teams. The next step in the career ladder is achieved by advancing to ‘Lead’ and thereafter, progression to ‘Senior Lead’. In these latter roles, individuals progressively take on greater responsibility and lead larger teams.
A senior quality engineering lead should be able to undertake, and plan testing for a large deployment and develop a strategy that defines how quality engineers under their purview should approach the project. Following some experience in this capacity, an individual can proceed to a managerial role: A QA Manager can lead an entire quality engineering division or function. It is also an option to specialise as a Quality Architect. A Software Quality Architect is an expert in providing solutions, specific to a distinct area such as performance or test automation.
Students and professionals thinking about embarking on a career in quality engineering should attempt to understand the full spectrum of quality engineering as a preliminary step. It Is crucial that individuals Understand and identify their respective skill set and areas of passion in order to be successful in the long term, the individuals can also accelerate career progression by building with continuous learning targeting accomplishments and achieving them.
Ideal attributes for a quality engineer
When selecting a quality engineering pathway, hard and soft skills are equally important. It is a misconception to believe that becoming a quality engineer stems from the inability to become a software engineer.
A quality engineer needs technical understanding, knowledge of code, insight into how a developer converts business logic into programming and solutions.
These skills and knowledge are vital to plan and design testing. A certain knowledge of coding practices is necessary to perform automation, performance, and security related activities. Soft skills are also important – a positive attitude Is required, especially when navigating difficult challenges. To become an all-round quality engineer, an individual needs to have a curious mind and the ability to approach problems with a solution-oriented mindset.
The ability to multi-task, work faster and become a quick learner will hold a young quality engineer in good stead. A quality engineer also needs to be able to think and act as an end-user and understand the user’s thinking patterns in order to generate optimum results.
A quality engineer needs to have critical thinking skills that make data analysis possible. Creative problem solving will ensure quality engineers are central to any operation.
While specialisation is an option, developing soft skills is also vital for career success. A quality engineer is expected to be able to communicate fluently with team members, clients, and other stakeholders. A mix of technical and soft skills, particularly the ability to work well with people can pave the way to senior management roles.
Future trends
With emerging technologies shaping the future and changing market dynamics, an individual looking to become a quality engineer needs to understand and navigate through trends that will affect the role.
Industry 4.0 technologies such as Artificial Intelligence (AI) Internet of Things (IoT), Big data, QA Operations, AI, performance engineering, test environment and test data management will add to the importance of quality practice.
Through self-study, research and reading, a QE can gain insight and understanding into many of these new trends. This will help a quality engineer become ready to face future challenges and be fully geared to undertake challenges.
(The writer is the Director – Quality Engineering of Sysco LABS Ltd. He has 15+ years of experience in strategy formulation, implementation, and leading quality engineering practice. He holds a Master’s degree in Business Administration awarded by the University of Moratuwa. Janith is a member of the advisory committee of the SLASSCOM Quality forum.)