Artak is a Quality Engineering manager at Synopsys.
He started his career in 1999 as a software test engineer, and since then assumed different roles: software developer, test automation engineer, engineering lead, quality engineering manager, trainer of software testing. From 2010 follower of ISTQB practices, since 2017 member of Armenian national board (ArmSTQB). Artak believes that a lot of areas needs to be improved in software testing, but the key is qualification of engineers.
Other areas of interest for Artak are quality improvement ways other than testing, ML/AI in testing, doing robotics with his kids.
From Performance Testing to Performance Engineering
Building a fully functional software application is important but how it performs is an equally important challenge. Performance is critical to customer satisfaction; if your application’s performance doesn’t meet the expectations of your customers, they will move on to your competitor. Thus, performance plays a key role in the success of an application.
The main goal of Quality engineering is to address issues and risks affecting product quality as early as possible within product lifecycle. The performance as a quality attribute of the product is not an exception. So how do we avoid performance issues without assuming too much about what lies ahead?
The classic approach (measurement-based) is to include performance testing as an integral part of the quality control (QC) cycle, but it doesn’t work well, because, by the time the app gets to QC, it's too late. Not only have we invested a lot of time and effort into the design and development process, but the business needs the app ASAP. If you wait until the last minute to find a fundamental performance problem, it will delay time to market.
What is Software Performance Engineering (SPE)?
Performance engineering is more than just testing, which means understanding how all the parts of the system fit together and building in performance from the first design.
And finally, performance engineering is a set of proven practices based on years of observation and experience. These practices enable teams to deliver fast, efficient, and responsive systems by design, architecture, identifying and eliminating issues in early stages.