(UPDATED) 11/2023 Software Security and Testing D385

Disclaimer: I have never posted before, ever in my life, this is my first ever reddit post, but I felt that people need to hear the truth about this class!!

I passed my OA and felt overly prepared because I spent way too much time studying materials I found outside of WGU online. I took a lot of time in this class before I took the test because this course was intimidating! Amid dealing with work/family life balance it took me about 3 months. I crammed the last 3 weeks but I was still dreading OA. The lack of relative course material/ proper support for a coding exam that throws you in headfirst.

If I took it any sooner I would have failed the first time and I did not want that. I scheduled an appointment with my CI, they said that they had no advice and I will fail the first time. I don't think students need to fail the OA the first time to be able to pass the second time. That's not a model for success. If I only studied what WGU had and used the quizzes from chapters 2,3, and 4(Which were mostly irrelevant to anything I was tested on); I would have failed miserably.

I understand that the course instructors are responsible for multiple courses sometimes, and that there's a group of instructors. But who is the responsible party and held accountable for the lackluster experience of D385? I mean calling it lackluster is being generous.

PLEASE PLEASE PLEASE use this stuff I found that helped me!!! I hope you don't struggle like I did. This test is hard and you must be prepared!

Use this to know the http headers and status codes: https://realpython.com/python-api/

200 OK

Your request was successful!

201 Created

Your request was accepted, and the resource was created.

400 Bad Request

Your request is either wrong or missing some information.

401 Unauthorized

Your request requires some additional permissions.

404 Not Found

The requested resource doesn’t exist.

405 Method Not Allowed

The endpoint doesn’t allow for that specific HTTP method.

500 Internal Server Error

Your request wasn’t expected and probably broke something on the server side.

You need to know types of cyberattacks and how they happen! Just by looking at some scripts of code. There were 2-3 of these questions.

Credit to Cydo_Entis! Use this for mutiple choice questions: https://quizlet.com/813493586/d385-pre-assessment-all-correct-flash-cards/?new

You must know forwards and backwards all the coding, and yes I said ALLLL OOFF ITT! Its all mostly the same on the PA to the OA. Here is a link that has the right answers for the PA: https://glass-diadem-acc.notion.site/D385-Assessments-3261412dc25f4bce829d34341f33e8b3

Here is my own list because its slightly different, even some of the glass-diadem solutions reported wrong on the PA's before I took the OA. Pay attention to the variables and declarations because you will have to use different ones they give you in the code on the test. Example: instead of x, its z; Example: instead of encrypted_text its encrypted_plain_text. Watch for these things.

  1. Logging error

logging.error('The exception that occured is: ' +str(e))

  1. Check a Null using assertion error ( May change the x to z)

if x is None:

print("x is a null value")

return y

elif y is None: Make sure to use elif not else!

print("y is a null value")

return x

return x * y

  1. Templates (Changed name declaration to admin_name, use this instead of name)

    name_template = Template("Hello, my name is $name.")

    greeting = name_template.substitute(name=name)

    print(greeting)

  2. Rate limiting (BUCKETS) (Only asked for the if else portion)

bucket = self.bucket + time_passed * (self.tokens / self.per)

if (bucket > self.rate):

self.bucket = self.rate

if (bucket < 1):

pass
  1. Assertions (changed declaration Temperature to temp_check, and the string of text is changed)

assert Temperature >= 0, "Colder than zero degrees Celsius!"

  1. Check data to verify values null (personally did not complete this question on the test, just left it blank)

if type(wg_int) == str:

try:

cast_int = int(wg_int)

return(isinstance(wg_int, int))

except Exception as e:

return False

else:

return(isinstance(wg_int, int))

if wg_string:

return True

else:

return False

  1. Hexes (Will need to add in 3, and 'hex in the digest part)

d= hashlib.sha3_256(enc_pwd)

hash = d.hexdigest()

  1. Serials (The test will have you create an if/else statement instead of fixing this code.)

new key = generate_key(serialized_data)

return deserialize(serialized_data)

  1. Numeric check (Instead of (zipCode), its (zip_Code_Input)

zip_check = int(zipCode)

  1. length check if else statement (Same on the test, except string of text is different)

if(len(password) >=8):

print("Your password is long enough.")

else:

print("Your password is too short.")

11.Range check if else statement (Same on test except string of text is different)

if num in r:

print("The number input is in range from 1 and 10.")

else:

print("The number input is not in range from 1 and 10.")

  1. Ciphers (encrypted_plain_text instead of just test

encrypted_text = cipher.encrypt(plain_text)

  1. Least privilege broken (This was the exact same)

if result:

os.chmod(filename, stat.S_IRWXU)

else:

os.chmod(filename, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)

  1. Broken Object level authorization (Exact same except getuserid and ownerid have different names, and you must change the string of text in print function).

if(GetUserID() == ownerID):

print("This is the user data")

The test is WGU proctored and uses ZyBooks just like the PA for your test!

I hope this helps! This is how my testing experience and preparation went. I wish I had all this material before me instead of finding it. If your CI sends you course tips, ignore them! They tell you to study a lot of things that will not help you, only wasted my time! MAYBE study the chapter exams in the course material 2,3, and 4. Its about 15% relevant to anything on the test. It helped a little, if you got time to do it.