If you are a beginner you have several options.
Formal education
I doubt you will find a single (legit) university or collage that has Quality Assurance Engineering as specialty. There is a good reason for that – the field overlaps with Computer Science, Telecommunications, Information Technologies and virtually everything else that is IT related. What you can do is to get a degree in a related specialty (plenty of those). Depending on the program it may provide for the most important part – understanding the concept and fundamentals on which QA stands on. Another great something about formal education is that it provides very structured approach and you get to meet a lot of new people. Downsides – you have to invest years, it will cost ya, far from suitable if you are in your 30s or over.
Courses / Certification
There are literally tens of thousands of courses around QAE. You can be sure that over 95% of those (regardless on which platform) are waste of time and money. The absolute minimum for a course is at least 160 hours. At least. Everything under is anything but а QAE course. The good thing is that 5% of 10 000 is 50. Worldwide. Dig them up. It’s worth the effort to ensure that whatever you sign-up to is going to live up to the expectations. Last but not least – please do not fall into the ISTQB trap. Don’t feed that crap. Or do it. Your call.
On your own
You have learnt how to learn? You have an idea from where and how to start? Awesome. Train yourself! You can do it.
Become Technical Support Engineer (or anything else IT related)
One of the great ways to start is by proxy. Start as TSE become very good and then move to QA. Problem here is that a lot of companies have awful support so you need to find one that is not that awful. Best places to look for – support corpo grade software or hosting.
Something else
Possibilities are endless. There are way more than just 4 options.
Regardless of which option you choose you will need The Fundamentals. The Fundamentals are the basic building blocks that you need. Like reading and writing. You need those. Shortcuts around them lead to redundancy, to be being subpar or just average. That ain’t nice. Especially for a Quality Assurance Engineer. So what are The Fundamentals?
The Fundamentals
Question: “Can you explain what happens when you type https://www.metaconceptual.com and open the website? What processes and protocols are involved, what actions take place?”
For starters you need a client. In this case the client is the web browser but it could be any web application capable of opening websites. Then … Then the fun begins. Internet is built over the TCP/IP stack. The Network does not understand anything but IP addresses. It does not get names. In this case domain names (www.metaconceptual.com is a subdomain due the ‘www’ prefix, metanconeptual.com is an SLD – Second Level Domain, and .com is a TLD – Top Level Domain). To translate a name to an IP address one needs a DNS (Domain Name Service) protocol. The means to map names to IP addresses. Of course one needs to have DNS server to query about the mapping. As it happens it is not efficient to send a DNS query every time you open a site. Why? It’s an overhead. Needless data. The IP address behind a domain (site) does not change that often, so we use DNS cache. Hence the first thing that is going to happen is that your device (PC/Mac/Phone/whatever) is going to check its local DNS cache if it has an entry for the DNS zone (that’s how we call the mappings for individual domains). If it does it will resolve the name to an IP immediately. If it doesn’t – it will have to query a DNS Server. Which one that would be? Several options. It could be the one you’re running on your router. If the router does not have one that’s okay, the router could be keeping its own DNS cache so the check would go there. If not result then you check the ISP (Internet Service Provider) DNS server & etc until there’s either success or failure. It’s nice to note that the process is not exactly like that. Usually there are means to “hardcode” an IP to a name (dear hosts file), meaning that first the OS is going to check there, then in the local DNS cache, then it will query a DNS server. To have that answer one needs to know what is a protocol, why it exists, how it works. In this case – the Domain Name System protocol. What happens next? The browser sends an HTTP query to the IP address where www.metaconceptual is hosted (present) and then…stopping here. The complete answer can well get into a tiny book. The example was meant to illustrate that The Fundamentals matter. To wrap it up – HTTP protocol is involved along TLS, to be more precise – TLS over HTTP (HTTPS), there’s quite a nice part around how a Web Server works and “knows” that this website is hosted with it, how to open that website and not another (because many sites/domains can resolve to the same IP address). Did not mention anything about ports. Did not mention that there is adDatabase involved, i/o operations, that some packets may get corrupted along the way, error correction codes and error detection/handling mechanisms. Perhaps I should have. Or not. 🙂
In order to become very good, exceptional QA you do need to understand and know the TCP/IP stack. You need to know what is a protocol, why it exists, how it works, why there are so many of them. You need to understand the networking concepts – IP addresses, ports, protocols along with the infrastructure (routers / switches). This does not mean that one always needs to know what bit X signifies in protocol Y’s TCP packet. Unless you are targeting a QAE job in networking. This means that you need to have more than just general knowledge.
One should be able to spin up a Web Server, Email (SMTP/IMAP/POP3), DNS server with ease. Know how they work, how to make them serve you through the everyday tasks. No need to become a system administrator (oh, that would be helpful) to do that. The good thing is that you don’t have to learn everything all at once. You can do it in portions combined with practice.
Before listing a part of the fundamentals wanna stress on the necessity of understanding, learning and getting the concepts behind all that. Those are one of the things what separate a zombified QAE from a truly awesome and/or exceptional one.
The list
- TCP/IP Stack & Networking
- Client-Server architecture
- Web, Database, DNS, Mail, Time(!) Servers
- Operating Systems
- File systems
- PKI
- Programming languages
- Quality Assurance
- Them RFCs, them F1, them man
Those need to be combined and practiced simultaneously. Why? Cuz you gotta feel the flow baby. That’s why. To keep the brain interested
The Practice
Knowledge and experience are nothing without practice. The Fundamentals are irrelevant if you do not put them to immediate use. Practice allows one to understand how the concepts translate into something valuable, useful, cool, awesome, practical. Without practice and in the best case scenario one can be just a certified idiot. Nothing bad but the competition there is truly fierce.
For finale
Starting something new is never easy but it needs not be hard. Learning can be tedious or it can be exceedingly interesting. Discipline, practice and tapping into that curious brains of ours can do miracles.