22

I'm a jr developer. I started off in automation testing and don't mind it but the testing codebase is cancer, doesn't follow basic Java conventions even basic naming conventions like camelcase, and the tests are super slow using hardcoded Thread.sleep(). Since the automation tests are not automated, I have to run manually. YES manually, every morning I wake up early at 7am to run the 2.5 hour long tests (7am because this before people get to work and when the application goes back online). I run this bitch and monitor them but most of them fail anyways. I also have to write a email report on the results which means I have to explain why shit is failing so I have to debug all this crap. This shit literally eats up an additional 2-3 hours of my work day everyday and the time is not even accounted for. ALSO, since it's running on my laptop, it makes my computer slow most of the day. If I have to debug, I can't have the browser be headless so fuckin chrome browsers be popping up every 2 minutes. I did this for legitimately 8 sprints until I decided enough was enough and bitched about it and the team told me I had no choice. I eventually got them to push towards automating it but it's still in progress so I'm still running this dumb shit. The contractors try to take advantage of me any way they can by giving me mindless bitch work they don't want and they know I don't usually say no since I'm a jr resource. I hate running the fucking automation tumor. Sometimes I go into the meeting rooms alone to scream.
I feel like I'm wasting my life away and not learning as much as I could somewhere else

Comments
  • 0
    Take it as a challenge to convince your team to fully automate every test... Maybe you'll also need to convince management that this should be your main priority.
  • 5
    1. Code a script that runs the tests for you at a given time.
    2. Code a script that collects tests results and mails them to you so you can review these when tests are done.
    3. Improve tests exceptions so when you actually need to debug something it will be no more than 30 seconds (report stack trace?)
    4. Improve overall execution of tests by refactoring shit (Thread.sleep to wait.until, parallelize independent tests)
    5. Remaining dependent tests should be integrations running part of a different tests suite. You should strive for as many independent tests as possible (ideally all of them).

    1 and 2 are really easy if you use CI tool like Jenkins.
  • 0
    @muliyul So actually we do have an existing automating process BUT these tests are so slow that the UI ones won't complete in time because they run on saucelabs. What takes 2.5 hours on my machine may take 5-6 hours on saucelabs. I generate reports using ExtendedCucumber. But I have to manually copy and paste the tables they want from the outputted file to the email. Not sure if I can make a script to do that just due to the format of the report.
    I have removed a lot of thread.sleeps but found out in a lot of places if I use wait until, it breaks somehow still. Parallelizing I'll look into, but they all have to run one by one because the application only allows one session login per user in the tests.
    I appreciate you giving me these tips though, I'm going to see if I can attempt this list some more, maybe I didn't try enough. Thanks everyone, I'm going to push to the team to automate this somewhere else besides saucelabs
  • 0
    @mochiknees how so one session per login?
  • 0
    @muliyul So, the way the tests are structured is that there's hardcoded users that log in for each test. If you have tests running in parallel, logging in for one test will logout that user for another test.
  • 0
    @mochiknees Also, the users are the same for all tests. forgot to mention
  • 0
    @mochiknees not necessarily. Chrome has user-data-dir property (or something similar) that should solve the multi session issue
  • 0
    @muliyul For more context, our application has fragile sessions. Even if you navigate away from the website it's an immediate log out. Each cucumber feature has a manual typing in the user and password and clicking logging in. I looked up user-data-dir and I'm not quite understanding what it does. It stores the profile/session so you can multiple sessions at once? would this only apply to unique users and not the same one?
  • 0
    If you generate different dir for each test (random ofc) you create a completely separate chrome instance.
  • 1
    @muliyul Okay, I'll look more into to it. Thank you for the suggestion! 🙂
Add Comment