Monday, 4 January 2016

Is it really difficult to write quality automation code?

After joining back from month long vacation, my manager greeted me by asking me to do code review of basket full of new/existing automation scriptsL. When I started, I found that the automation scripts were not up to the mark and needed lot of improvement to be considered quality scripts.

I ended up creating a basic coding guideline document for my team which I am sharing with all of you. Please note that these guidelines are for Java Programming Language.

 Coding Guidelines:



  1. Comments at method level: For each method that we write, we should provide comments suggesting what the method is expected to do. In large projects where multiple teams work, comments are very helpful.

  2. Comments at code level:    Inside any method, we must write comments where ever we are implementing a complex functionality.  Other teams / team members will have tough time understanding this complex piece of code if there are no helpful comments.




  3. Final Variables: We must ensure that as a practice, all final variables must be defined as all uppercase letters connected by underscore.




  4. Extensive use of try-catch blocks: At no point, we would want our automation scripts to crash because of uncaught exceptions. I have not seen try-catch block being used often. As a practice, any piece of code that we suspect can throw an exception must be enclosed between a try block followed by a corresponding catch block or a finally block.

  5. Local variables VS Instance variables: When writing code, start off by declaring variable locally and then move it to instance level as per requirement. There is no point declaring all variables at instance / class level when it is not required.

  6. Do not hard code xpath: At no cost, should us hard code xpath directly inside a method. Instead declare it as final variable at class level and then use it where ever required. This point is crucial from code maintenance point of view.




  7. Reuse existing code:  Don’t be afraid to reuse existing code rather than duplicating it. Have a look at this example:




  8. No hard coded values: Do not use hardcoded values. For some reason let say we need to pass integer 5 as parameter to some methods. Rather than passing 5 straight away, we must declare an instance variable and initialize it with 5. Now pass this variable as parameter. Easy maintenance.


Hoping that above listed coding guideline will help you write effective and optimized code. Please do not forget to comment your thoughts about this blog.

5 comments:

  1. Informative and best practices followed

    ReplyDelete
    Replies
    1. Thanks for your comments. Nice o hear that best practices are being followed.

      Delete
  2. Very Informative and good work

    ReplyDelete
  3. For complete coding guidelines follow java code conventions document published by oracle. Very few of them and most common are listed in this blog post.
    Method names given in examples are long, they should be short in length and as per context of use e.g isElementFound(String locator)
    Switch case not implemented as per standards, the default case is not handled in above mentioned example
    and many more...

    ReplyDelete
    Replies
    1. Thanks Anonymous for your comments. In second para, i said basic coding guideline. Nowhere i claim that this is a comprehensive document. Method names are not long enough to send out a warning signal. Regarding switch case, could you find the ending brace of switch case. If not, it means that it is not a complete screenshot which would show default case.

      I appreciate your effort. Please don't be anonymous. Good luck :)

      Delete