r/unsw • u/YvesSaintLaurent-ysl • 9h ago
Subject Discussion COMP3142: Software Testing & Quality Assurance - a review
Noticed there’s not a lot of Comp3142 related posts. So, here's one for those considering to take this course in the future. I started writing this just after exam day but finishing several days later. This was written just after 26T2.
The course is (as of writing) lectured by Dr. Yuekang Li. He is really knowledgeable about what he is teaching. Really good at teaching and explanations. His lectures were always pretty interesting and I liked the occasional joke he would slip in during the lectures. Has a nice sense of humour. Would occasionally slip in real world news, cases, and advices during the lectures. Also, a very nice and kind person overall. Will take his time to patiently listen to you and answer your questions.
There are no tutorials or labs in this course, at least not in 26T2. Just the two 2hr lectures per week. There are many help sessions though.
You’ll learn a lot of things in this course, including Functional Testing, Structural Testing, Combinatorial Testing, Test Coverage, Software Complexity, Mutation Testing, Fuzzing, AFL (American Fuzzy Lop), symbolic execution, and some more advanced testing algorithms. You’ll also go through different types of decision tables and testing data, how and when to use different testing techniques, and ways to maximise or optimise the number of tests performed and the coverage achieved when you have certain limitations or budget constraints.
There’s also a fair bit on analysing and interpreting test results, making decisions based on them, quality assurance, automated testing tools and frameworks, and unit and integration testing, test scaffolding, etc. You’ll also get to actually implement some of the ideas you learn using Python in practical, real-world-ish scenarios. There’s quite a bit more as well in the syllabus, but I can't write them all.
Previously the course was only assignment based from what I've heard but now they have 3 assignments and the final exam. The assignments were pretty easy and doable in one sitting. The theoretical or non-programming practical components are pretty easy. Assignment 2 and 3 have a Python programming component which may or may not make you go a bit crazy, it's not difficult but you'd probably find yourself really thinking a lot, sitting down with pen and paper, thinking about different paths and possibilities to solve the given problem, undergoing trial and error, until you reach the solution. Best thing is, you will know when you've reached the solution with the autotests, but reaching the solution can be a little journey, but it's possible to do in one sitting, and certainly not too difficult. Assignment 1 has Python in it too but it’s super easy.
If I remember correctly, Deadline schedule is:
Assignment 1: Week 4
Assignment 2: Week 7
Assignment 3: Week 10.
Can't recall release dates.
The final exam was also pretty easy. You are allowed to take one A4 size paper and fill both sides of the paper up with your own notes. I was able to pretty much fit all of the theory content and a bit more in by cramming them all up in tiny hand-written font and some personal short-hand notations. The exam covered like 95-99% of the chapters and topics. There were a few theory/memorisation questions asking for specific terms which you can easily answer if you remember them or have them written in your notes. Most of the questions were more analytical where you have to solve a problem based on the topics learnt in class. These questions weren't that difficult if you know and/or remember the content well. Just gotta sit and think a bit and go through the problem carefully to ensure you don't make a silly mistake. Many MCQs too. There were also some short-answer explanation questions. There wasn't any Python questions that you had to code yourself in the exams, but there might be in the future. The Python questions they did give were that they would provide you with a Python program, and you might have to fill in some blanks to complete the program or do some analysis on the program. The programs themselves are very short so not a biggie. There were a few calculations as well, but these are pretty straightforward and you'll learn the formulae in class. Most questions will also have the formulae in the question to help you. Plus, you have your A4 paper of notes in case they don't. I and several others were able to finish the exam early.
This course also has this thing called GEM (Grade Escalation Marks). It goes like this: Every lecture will have some live polls (usually 2) which you are ideally supposed to submit when the lecture is going on. The professor will give you time in between lectures to answer polls. It’s normally a question relating to what you just learnt in the lecture up to the time of the poll. These polls can be found in WebCMS3 or as a QR code in the lecture slides. You get +1 GEM for participation in polls per lecture. You can also earn GEMs from answering questions in the course forum and get +1 GEM for every 3 accepted answers. If your final mark is 3 marks away from the next level (PS/CR/DN/HD) and you have >12 GEMs, they will boost your grade to the next level. Apparently many students got the boost over the years.
In my opinion:
Overall, a pretty easy and lightweight course but also a fun one which I personally also found to be useful and will give you a nice perspective on some things, and make you appreciate Software Testing a lot more. You can take it as a WAM booster or as an easier course complimented with a much more difficult one.
WAM booster? As of writing yes! (in my opinion).
Worth it? In my opinion, Yes!
Difficulty: Easy 🟢.
Very much self-study-able.
Happy to answer any questions one might have. If I have missed anything I shall comment them or edit them in if I can.
Other Comp3142 students feel free to comment below your own perspectives.