Another short update on what I have been up to: end of December 2019 – mid January of 2020.
Testing Internship Update and Thoughts on My Progress
Well, I have mixed feelings on the progress of my internship.
On the one hand, since the start in July 2019, I've been working consistently and genuinely tried to help make Aerofiler's software product better. Every week, I dedicate one full day to testing. I try to work systematically and use time effectively by planning my days' tasks and tracking time. I use Pomodoro timer to keep me focused. I work from home, so it is really hard to stay away from distractions (in my case - twitter, youtube, my inbox and unproductive web surfing). Here is what I usually do during my testing day:
- - Manual testing
- - Adding new test cases
- - Communicating with client/mentor
- - Automation practice
- - Updating website
On the other hand, I cannot get rid of feeling that my progress is too slow and I do not use my time effectively. Yes, I have only one day per week plus a few hours on the weekend. Yet, I probably could work faster if I would
- - improved my focus
- - spent less time on distractions.
One example. I know that quality of my sleep has a significant impact on my productivity. Yet, I often go to bed too late and do not get enough sleep.
Do I make any progress at all? Yes, definitely.
Do I make everything I could to make me closer to my ultimate goal - full-time stable job as a software tester? Not sure? It's been almost a year since I started to learn to test. Some people like me probably have found a job over that period...
Yes, probably I should be more proactive and do more to actually get closer to my goal, rather than guessing what I do wrong.
Learning Python and Pytest
I am really excited about it. Yes, sometimes it is really frustrating to see that I wasted 30-40 min of my time just because I did not know something about Python syntaxis, usage of types or did not notice an obvious mistake in my code. Yes it is also frustrating to read someone's code and realize that you do not understand how it works.
However, it turned out that in most cases I am able to get through my mistakes and grasp new concepts. One example. Recently I started reading great book - Python Testing with pytest by Brian Okken. When I first opened it and looked at random pages I could understand only 50-60%. As I kept reading, I noticed that I can understand more and more. Even some concepts that initially seemed like extremely complex.
Here's what I not only learned but also implemented in my first Python web UI tests:
- - marking and skipping test using pytest markers
- - parametrizing tests
- - using fixtures
- - implementing page object models
- - reading files
- - using nested dictionaries
- - python list comprehensions and generator expressions
Really excited to see how transformed my tests. They are probably still far away from good tests but I feel that I make some progress.
Another thing that I enjoyed is that as get to learning Python I see lots of cases in my everyday work where I could leverage Python to create automated process. I hope one day I will find some time to write this code and I will be smart enough to make it work.
Here is a list of some script ideas for my personal Python projects:
- Read Gmail inbox and extract invoices. Automatically organize and store pdf files on hard drive.
- Watch folder with screenshots and automatically compress added images using tiny.png API.
To tell the truth, I did not make much progress on 2 courses that I started recently (Python basics by Codecademy and Unix for Mac OS users). This was mostly due to lack of free time. However, they were quite helpful. Since I learned some things about using Mac terminal I started to use it more often. I also try to use what I learned from GitHub Course to manage my code.
Hundred Days of Testing and Automation Challenge
At the time I am writing this it is 83rd day of my 100 days challenge. As an old idiom says "one picture says a thousand words"
Yes, it is extremely slow and recently I skipped a lot of days or just did not make records. Some days it is no more than spending 10 min per day doing Unix course. However, it is much better than if I would not start it at all. And I can say that these 60 hours already produced some results.
Tools, Courses, Random Links on Testing
As always, I've come across lots of interesting online resources related to testing and automation. Some of them might be quite handy one day. So I just list them here to save links and make it easier for myself to find them in the future.
I wanted to highlight a couple of tools that help me to prepare my bug reports and capture screenshots/video. I've been using them regularly:
Interesting articles, mostly about Python
- - Python list comprehensions
- - Python dictionary dispatch
- - Python functions are objects
- - Articles Python testing
- - Logging in Python
- - Python .format
- - Python List Comprehensions and Generator Expressions
- - Python tests code quality
- - Python testing with pytest by Brian Okken
- - Web ui testing with python
- - Reading and Writing YAML to a File in Python
- - Convert list of dictionaries to json