Friday, May 21, 2021

Setup to make work from home easier for your health

Having a proper setup is very important when working from home. Else it can mess up your posture, back, neck, ...

I recently upgraded my work-from-home setup. If anyone wants suggestions how and what I did, will be happy to share.

 I had posted this on LinkedIn - https://www.linkedin.com/feed/update/urn:li:activity:6799935956540624896/


To my surprise, a lot of people responded to know more about this setup. Instead of replying one at a time, here is what I did to help me have a better work environment. 

But before the solution, here are the problems I was facing:

  • I was sitting for around 10-12 hours on my chair every work-day
  • Though I try to maintain a good posture, I figured out I kept slouching automatically over time
  • As a result, my back started paining

I had to change something quickly, because this weird time is just not ending. 

So, this is what I did. I researched and spoke to lot of people, and figured that a standing desk will help me maintain a good posture and avoid back pain.

My work setup though had a fixed desk, which I could not change. So I did the following setup:

1. Adjustable desk - which I can change to use as a standing desk or sit-down desk

Rife Instant Gas Spring Sit Stand Converter Desk

 


https://www.amazon.in/gp/product/B0749H2WNK

2. Too much standing in the day caused my legs and lower back to start paining. So I invested in a Saddle Seat

Rife Ergonomic Adjustable Rolling Active Chair, Saddle Seat and Angle Adjustment

 

 

https://www.amazon.in/gp/product/B08C2C4RDT

3. To reduce the strain on my eyes, I got a good & large monitor to connect to my laptop, with a keyboard & mouse

Dell 24 inch (60.96 cm) Ultra Thin Bezel LED Backlit Computer Monitor

 

https://www.amazon.in/gp/product/B07NXP6W4Q 

 

4. Because I work on 2 laptops, there was a challenge when I needed to switch between the 2 machines as one laptop had the keyboard and mouse connected, the other did not. So I bought a multi-device wireless keyboard and mouse - which can automatically switch between any laptop of choice - by a click of a button, or a simple gesture. 

Logitech MK850 Multi-Device Wireless Keyboard and Mouse Combo

 

 

https://www.amazon.in/gp/product/B01NAVO5PF


Hope this helps others! 

 

Stay safe, stay healthy! 

Friday, January 22, 2021

Visual Assertions - not another buzzword

Visual Testing and Visual Assertions may seem like yet another buzzword in the Software industry.

Being curious, I did an experiment using Applitools Visual AI to see if this is something that can genuinely help, or if it is a buzzword. You can read about this experiment, refer to the code and see the resulting data from this post - "Visual Assertions - Hype or Reality?".

Thursday, January 7, 2021

TDD and its variations in 2021

Back in 2018, I had written a blog post about Test Driven Development (TDD) and its modern variations.

Today I have some more insights on the variations.

To recap, here is the original list

BDD = Behavior / Business Driven Development
BDD = Blame Driven Development
BDD = Buzzword Driven Development
CDD = Calendar Driven Development
CDD = Checklist Driven Development
CDD = Chadi (stick) Driven Development
CDD = Constraint Driven Development
DDD = Date Driven Development
DDD = Defect Driven Development
DDD = Document (PRD) Driven Development
EDD = Escalation Driven Development
EDD = Estimation Driven Development
EDD = Excel Driven Development
FDD = Fashion Driven Development
FDD = Fear Driven Development
FDD = Footwear (punishment) Driven Development
HDD = Hope Driven Development (fingers crossed)
IDD = Instinct Driven Development
IDD = Issue Driven Development
JDD = Jira Driven Development
MDD = Metrics Driven Development
MDD = Manager / Management Driven Development
NDD = No-Drive (towards) Development
PDD = Patch(work) Driven Development
PDD = Plan Driven Development
PDD = Prayer Driven Development
PDD = Process Driven Development
RDD = Resource Driven Development
RDD = Resume Driven Development
SDD = Stackoverflow Driven Development
SDD = Stakeholder Driven Development

Here are the new variations I have come across:

ATDD = Acceptance Test Driven Development
CDD = Complexity Driven Development
CPDD / CDD = Copy-Paste Driven Development
DDD = Demo Driven Development
FDD = Fake-it Driven Development
MDD = Mandate Driven Development

MDD = Meeting Driven Development
PDD = Profanity Driven Development
SDD = Swallow-exceptions Driven Development
SDD = Sprint Driven Development
TDD = Trust Driven Development
VDD = Velocity Driven Development 

Have you come across any of the above variants? Anything I have missed?

Wednesday, December 9, 2020

Getting started with implementing Automation

Getting started with implementing tests for automation (web or native apps) may seem daunting for those who are doing this for the first time. 

Assuming you are using open-source tooling like Selenium or Appium, there are multiple ways you can get started.

  1. DIY - Build your own framework by scripting based on the documentation

  2. Use Selenium-IDE for quick record and playback

  3. Use TestProject Recorder for quick record and playback

  4. Use TestProject SDK to build your own custom scripts for automating the tests

Each of the above approaches has its own pros-and-cons. Let's look at this in some detail:

Approach #1 - DIY - Build your own framework

Selenium: https://www.selenium.dev/documentation/en/

Appium: https://appium.io/docs/en/about-appium/intro/

Pros

Cons

You can build all features and capabilities as per your design & requirement

*You need to learn a programming language


*You have to build everyone on your own (though you can use supporting libraries)



* Depending on the context of the team, the above points can also be considered as an advantage


Approach #2 - Selenium-IDE

https://www.selenium.dev/selenium-ide

Pros

Cons

Easy to set up

Basic reports

Works in Chrome & Firefox

Works only for automating Web applications

Code can be exported in various formats


Recorded tests can be run from command line


Tests can be run in your own CI


Will always be in-sync with underlying WebDriver




Approach #3 - TestProject Recorder

https://testproject.io/easy-test-automation/

Pros

Cons

Advanced recorder (lot of actions, validations, self-healing, customisations possible, and a lot of community Addons)

Recorder works only in Chrome, but tests can be executed on all browsers

Recorder works for Web applications as well as Native Apps (in real devices or emulators) for Android and iOS (even iOS on Windows machine)

Generated code is very simple - good as a reference to see how the underlying implementation / interaction is done

TestProject agent automatically determines all available browsers available and devices connected to the machine and execution can be customised accordingly

Each recorded test needs to be exported individually. No concept of reuse in this approach

Can schedule test runs as one-time, or repeated activity via build-in scheduler / CI/CD tool integrations or via their RESTful API


Reports are comprehensive with meaningful data, including screenshots and option to download to PDF format


Code can be generated from the recorded script


Can share tests easily using the "Share test" feature




Approach #4 - TestProject SDK

https://testproject.io/advanced-scripting-capabilities

Pros

Cons

Probably the most powerful way of these 4 approaches as it uses WebDriver / Appium under the hood. Get the power of building your own framework, while reusing out-of-the-box features like driver management, automatic reporting, etc.

You need to learn a programming language

Driver management is TestProject responsibility. Test implementer can focus on automating tests