3. Testing types and methods
Three testing methods

  1. Black box testing - is when you just play with the app for example without knowing whats going on on the back end.
  2. Grey box testing - is when you know what is happening(higher level) on the back end, and you use some tools(Fiddler or Charles Proxy for example)
  3. White box testing - you look/run code and try to find possible bug flows(mostly done by devs or white box testers)

Here are types that will most likely deal with:

Functional testing types include:

  • Unit testing - done by developers to test each unit(method, block etc) of their code
  • Integration testing - we take two systems/modules/parts of code and integrate them(registration page and login, front end and back end, facebook and instagram)
  • Exploratory testing - exploration of the application through testing. You basically learn app while testing
  • Sanity testing (check) - is a subset of regression testing - AKA short version of regression. It checks if code changes are working properly
  • Smoke testing - quick test on main functionality
  • Regression testing - partial testing of modified software see if no new bugs were introduced after the code change
  • AdHoc testing - is performed without any planning or preparation. AdHoc aims to break application by randomly trying system functionality. QA tests using his knowledge, whatever he/she feels is necessary
  • End to end testing - name speaks for it self. It's a testing of end to end flow. EX: Item purchase. This one would require: search, add to card, checkout, pay and verify purchase confirmation

Non-functional testing types include:

  • Performance Testing - checks how app gonna perform with a big load(not bigger than expected)
  • Load testing - checks a limit of load without performance degradation
  • Stress testing - testing of a limit of death of the app
  • Security/Penetration testing - can I hack it? Usually done by special team of testers
  • Compatibility testing - validates how software behaves and runs in a different environment(browsers, phones etc)
  • Usability testing - user-friendliness test of application. How easy to understand app flow
  • Localization testing - someone translates the app to Russian, and you check if their translation makes sense (or you translate it)

These are most common types of testing. They can be done manually, or can be automated (you will learn later).

Interview questions that you need to know

  • What is regression testing?
  • What is the difference between Smoke test, and sanity check?
  • Who writes unit tests?
  • What is black box testing?
  • What is grey box testing?
  • What is white box testing?

Good luck!
We help ambitious people to get into Tech with no prior experience.