Sure, a lot of programmers don't need to be referred to as engineers. Because they're not engineers. Software engineers, the sort that do less programming and more engineering work (which is, sadly, mostly paperwork) should be refereed to as engineers because that's what they are.
A lot of programmers do a lot of architect work. If it's a big enough code-shop or a project, then there may even be people who don't do much programming anymore and focus on the architecture rather than the codebase. Not that I've ever seen that personally, but it exists in theory. And there are OH GOD SO MANY programmers that cannot be trusted to perform any architecture work, and generally have trouble building things from scratch.
DevOps are programmers that also answer the phone and generally know the IT side.
Testers are trained monkeys while test engineers are an entirely different beast who specialize not in writing code, but in breaking it. Some of those people are called SWQA, but they're not to be confused with the sort that only file DO-178 audits.
It'd be awfully nice if everyone could agree on these terms, and be more or less consistent, but sadly the entire field isn't a century old and there are plenty of growing pains.