<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[anupmohan]]></title><description><![CDATA[anupmohan]]></description><link>https://anupmohan.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 10:02:12 GMT</lastBuildDate><atom:link href="https://anupmohan.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Why Python Is An Essential Language?]]></title><description><![CDATA[Do you generate repetitive reports? or do you perform any kind of repetitive tasks like web scraping, downloading different data, parsing log files, etc?
Why Python?
Python is powerful, yet simple for side projects and professional work. It is a util...]]></description><link>https://anupmohan.com/why-python-is-an-essential-language-6c0b75653dac</link><guid isPermaLink="true">https://anupmohan.com/why-python-is-an-essential-language-6c0b75653dac</guid><category><![CDATA[Python]]></category><category><![CDATA[languages]]></category><dc:creator><![CDATA[Anup Mohan]]></dc:creator><pubDate>Sun, 17 Jan 2021 03:32:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/D9Zow2REm8U/upload/v1645366494750/WTpD7Wk7B.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Do you generate repetitive reports? or do you perform any kind of repetitive tasks like web scraping, downloading different data, parsing log files, etc?</p>
<p>Why Python?</p>
<p>Python is powerful, yet simple for side projects and professional work. It is a utilitarian language for everyday life. The language is used for system operations, web development, server and administrative tools, deployment, scientific modeling, and much more.</p>
<p>Python is used across many industries apart from software like Animation, Film, Apparel business, Government, and many more.</p>
<h3 id="heading-so-what-makes-python-so-widely-used-language"><strong>So what makes Python so widely used language?</strong></h3>
<p>Incredibly easy to learn and use</p>
<p>A wider community</p>
<p>Large library base</p>
<p>Huge base of Open source frameworks and Tools</p>
<p>Reliable and Efficient</p>
<p>The below ranking from RedMonk, shows that the popularity of Python is increasing with more and more professionals choosing Python over other languages. Over the years, Javascript popularity surged but with that Python also became one of the most sought-after language.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1644462469522/fyZ89P8HN.png" alt /></p>
<p>Image from <a target="_blank" href="https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/">RedMonk</a></p>
<h3 id="heading-do-you-know"><strong>Do you know?</strong></h3>
<ol>
<li>Python is often found in 3D applications such as Maya, Modo or Blender, and tends to be for scripting tasks that are complex or repetitive tasks.</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1644462472057/tYbXJzIcK.png" alt="Pic of laptop terminal showing the poem “Zen of Python”" /></p>
<blockquote>
<p>2. There is a <a target="_blank" href="https://en.wikipedia.org/wiki/Zen_of_Python">Poem</a> Written about Python Programming, which can be read by just typing “<strong>import this” in Python CLI.</strong></p>
</blockquote>
<p>3. It is called ‘Python’ because of a Comedy Series, ‘<a target="_blank" href="https://www.imdb.com/title/tt0063929/">Monty Python’s Flying Circus</a>’.</p>
<p>4. According to a survey, in the UK in 2015, Python overtook French to be the most popular language taught in primary schools.</p>
<p>5. Functions can return multiple values</p>
<h3 id="heading-some-of-the-useful-ways-in-which-python-can-be-used"><strong>Some of the useful ways, in which Python can be used.</strong></h3>
<ol>
<li>Setup your dev/test environment</li>
<li>Parse log files</li>
<li>Read data from database</li>
<li>Organise your files</li>
<li>Monitor state of the application</li>
<li>System automation</li>
<li>Easily automate some of the repetitive work</li>
<li>Play around with a vast library of AI/ML to build some cool application</li>
</ol>
<p>So next time you have any repetitive , or complex tasks, don’t shy away from quickly hopping on to some of the online tutorials of Python and learning the easiest language and with few lines of basic code, you may be able to automate some of the above tasks quickly.</p>
<blockquote>
<p>Originally Published in <a target="_blank" href="https://medium.com/@mohananup002">Medium</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Do you assess automation project often or enough?]]></title><description><![CDATA[“We only see what we know.” — Goethe

The above quote from Goethe is apt when we assess a project. So, a detailed analysis of problem statements or the goals of automation will be instrumental in achieving success. In the current competitive environm...]]></description><link>https://anupmohan.com/automation-strategy-a-deeper-look-to-mitigate-risk-and-reduce-failures-df1d68799aef</link><guid isPermaLink="true">https://anupmohan.com/automation-strategy-a-deeper-look-to-mitigate-risk-and-reduce-failures-df1d68799aef</guid><category><![CDATA[automation]]></category><dc:creator><![CDATA[Anup Mohan]]></dc:creator><pubDate>Sun, 20 Sep 2020 07:40:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/AT77Q0Njnt0/upload/v1645367026052/fCvhDxfz5.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p>“We only see what we know.” <strong>—</strong> <a target="_blank" href="https://en.wikipedia.org/wiki/Johann_Wolfgang_von_Goethe"><strong>Goethe</strong></a></p>
</blockquote>
<p>The above quote from Goethe is apt when we assess a project. So, a detailed analysis of problem statements or the goals of automation will be instrumental in achieving success. In the current competitive environment, organisations need to assess the best strategy to implement test automation. With application development becoming more and more complex, and emphasis on simplicity, speed and error-free software, automation of the application is also becoming a compound of different tools and setup.</p>
<blockquote>
<p>“Strategy is figuring out what not to do.” — Steve Jobs</p>
</blockquote>
<p>Automation goals play a major role in defining the path ahead and one should spend a considerable amount of time defining the goals if it is not known.</p>
<p>Along with the goal, it is very important to understand different factors, which ensures that the automation project is successful and working.</p>
<p>Automation strategy, plan, tools selection, framework, skills, and process needs to be well planned to get the maximum ROI and enable faster rollout of the test reports. And many a time due to different factors, organisation fall behind on their plans.</p>
<p>It is very important to do an assessment and see if the automation project is delivering the expected results concerning ROI, efficiency, and quality.</p>
<p>In long-running projects, it is vital to plan due diligence of automation periodically to ensure the above performance indexes are met as expected.</p>
<p>The three pillars of any assessment would be to examine how the skills are distributed, the process, and the technologies being used. Let’s look at each of these in brief.</p>
<h3 id="heading-technology"><strong>Technology</strong></h3>
<p>As technologies are the building blocks of any project, we need to look carefully at how the current technologies that are being used(or the proposed one), fairs under different criteria.</p>
<p>It is very necessary to make an informed decision of different features to be included, tools to be used, languages to be chosen or the different reporting modules to be included.</p>
<p>A thorough and deep dive of technologies used in different areas need to be assessed for below the criteria.</p>
<p>Scalability</p>
<p>Integrations</p>
<p>Performance</p>
<p>Ease of use</p>
<p>Ease of Reporting</p>
<p>Ease of Execution</p>
<p>Maintainability</p>
<p>It is important to assess each entity on these above criteria wherever applicable.</p>
<p>Understanding the tools, framework, coding languages, and the complexity and features associated with it can give a deeper understanding of the underlying problem if any. Careful study will unearth most of them.</p>
<h3 id="heading-process"><strong>Process</strong></h3>
<p>One of the most complex pieces to do an assessment. Why? Because the process can be introduced based on the industry the company serves.</p>
<p>For example: Pharma and banking companies may have too many security-related processes which may be a hindrance to faster roll out of the products or if the application is customer-facing then due to the need of incorporating changes faster or bug fix, the application may undergo frequent changes.</p>
<p>Detailed due diligence would be required, to carve out possible bottlenecks in processes.</p>
<p>When doing process assessment it is necessary to see what is working or may work and what is that which is not serving the purpose.</p>
<p>Understand, if the bottle necks can be eleminated and chalk out a detailed way to address it. Or if it is a necessary step, then see if there is an alternative way to do it.</p>
<p>Development process</p>
<p>Test development process</p>
<p>Test onboarding process</p>
<p>Release process</p>
<p>Review process</p>
<p>Execution process</p>
<blockquote>
<p>In conjunction with the above process, it is also necessary to see if the team is collaborating more, asking more for help, celebrating success or failure equally, and involved in constant learning to know and adapt to new tools and techniques in automation.</p>
</blockquote>
<h3 id="heading-skills">Skills</h3>
<p>Depending on the size of the project, different skills will be required. There can be a team of people each with different skills or only one or two people working on all the roles. So it is really necessary to assess the situation and future aspects carefuly to chalk out the best team and the required skills.</p>
<p>Coding skills</p>
<p>Team management</p>
<p>Testing skills</p>
<p>Test and project management</p>
<p>Architect</p>
<p>An efficient and skillful team is a must for the success of a project. One should not leave any stone unturned to build the best team. It is also advisable to choose technology based on the skills a company already has or if needed re-skill. A well thought and informed decision will ensure that everyone contributes their share, is well motivated, and takes pride in their work.</p>
<h3 id="heading-a-definite-path-to-success">A definite path to success</h3>
<p>With the above methodology of assessments, the grey area of automation minimizes with little or less chance of failures. With this approach, we study the modalities of SUT, current processes, architectures, reporting and the staffing structure to bring the best in all areas. We will recognize, what is working well and where we need to pay heed. Our end results/goals being, to bring more stability and efficiency, we should make informed decisions in all direction.</p>
<blockquote>
<p>Originally Published in <a target="_blank" href="https://medium.com/@mohananup002">Medium</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Do This First To Develop The Best Automation Framework]]></title><description><![CDATA[Automation framework is the building block of any automation project and the right design and development of the framework would ensure the success of the project. So like any product, a considerable amount of time and effort is required to build the...]]></description><link>https://anupmohan.com/do-this-first-to-develop-the-best-automation-framework-fb9563f8c006</link><guid isPermaLink="true">https://anupmohan.com/do-this-first-to-develop-the-best-automation-framework-fb9563f8c006</guid><category><![CDATA[automation]]></category><category><![CDATA[framework]]></category><category><![CDATA[development]]></category><dc:creator><![CDATA[Anup Mohan]]></dc:creator><pubDate>Sun, 16 Aug 2020 15:50:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/vetW6Y89T3w/upload/v1645366884500/29MtqF3IHy.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Automation framework is the building block of any automation project and the right design and development of the framework would ensure the success of the project. So like any product, a considerable amount of time and effort is required to build the framework, starting from the design aspect.</p>
<p>Automation frameworks are mostly integration of libraries and tools, which helps to perform a definite task and analyse the outcome. It is very important to keep tests separate from the framework, we will look at how to design using some commonly used design patterns and best practices. Before designing the framework, it is imperative to define the goal of the Automation. A definite goal will help the team to design the automation framework and eventually will help to measure the success.</p>
<p><strong>Some of the key parameters that need to be considered before building the framework are</strong> choice of language, other frameworks integration, design patterns, different logical layers, scalability, types of tests to be covered, DevOps integration, tools integration, resource skills required.</p>
<h3 id="heading-so-lets-plan-different-elements"><strong>So, let’s plan different elements…</strong></h3>
<p><strong>1. Different platforms supported:</strong> Your <strong>SUT</strong> may be supporting different platforms. For ex: Desktop, Mobile, POS etc. So, it is vital to understand the landscape of the application that is under test.</p>
<p><strong>2. Different OS supported:</strong> If you are going to test the application which supports multiple OS then this is an important factor to consider first. For example: Desktops: Windows, Mac etc, Mobile: iOS, Android etc.</p>
<p><strong>3. Different Browsers supported:</strong> If your application needs to be tested in different browsers like Chrome or Safari then this needs to be factored during the planning stage.</p>
<p><strong>4. Type of Application:</strong> This information is vital for the planning and design of the automation framework. As applications are more complex and run on different platforms, OSs and devices, it is important that we carefully list out all the details of the application.</p>
<p><strong>Technologies used to build the application</strong>- In case of Mobile application whether the application is built on Native or Hybrid technology, which cross platform/framework is used to develop the app like <a target="_blank" href="https://reactnative.dev/">React Native</a>, <a target="_blank" href="https://cordova.apache.org/">Cordova</a> etc.</p>
<p><strong>What kind of customers the application caters to?</strong> — Suppose your project needs to build a framework which caters to only internal audiences, so in that case the most important thing is to keep your cost to a minimum. On the other hand, if the application under test is for external customers like retail applications, then you would like to get the best tools available in the market and cost may or may not be a factor here. Now let’s see some of the different kinds of customers an application can cater to; it may be internal customers, B2B, B2C, geography specific customers etc.</p>
<p><strong>5. Different interfaces supported:</strong> It is very important to understand the different interfaces your test will traverse through. Accordingly one should plan the integrations, the choice of tools and factor scalability. Make sure that the integrations are developed as independently as possible and integrate each other with services/APIs.</p>
<p><strong>6. Users demography:</strong> Very carefully understand and chalk out the users of the Automation framework. Whether the team is centralised or distributed, the different users of the framework can use it to test different use cases, for example testing team can use for E2E test, developers can develop UT test, engineering team can use to check their product and business team may want to see if the requirements are tested correctly. Or they just want to run the test you have written. For example: if the test will be run by business analysts then introducing BDD will be helpful, or if you want someone who does not have coding knowledge to run the test, you may want to introduce a simple UI to run the test.</p>
<p><strong>7. Reporting:</strong> TC mapping, Screenshots, Videos, Logs, Analytics, Dashboards are some of the most important parts of reporting. One can also see if an auto trigger of the email to all the stakeholders is required. It is very crucial to understand the consumer of the test reports, accordingly you may need to plan different reports. Make sure all the artefacts you want to capture are taken care of during designing.</p>
<p><strong>8. Execution Environment:</strong> Some of the factors which determine the execution environments are team demography, platforms supported, types of testing(cross browser test, compatible test).</p>
<p>Analysing the correct and most cost effective execution environment, would be a vital activity during the designing stage . Whether your test will run on your personal laptop or cloud based infrastructure, it is important to derive the execution infrastructure based on the above factors.</p>
<p>There are quite a few tools in the market to set up your own cloud-like infrastructures, like Selenium/Appium grid, or simply using Jenkins to fire the test on distributed infrastructure, where you hook devices/browsers in different hosts. But things can be tricky and maintenance will be difficult if the infrastructure needs to be scaled exponentially. So the best way to minimize maintenance, would be to use different cloud solutions like Perfecto, Seetest, Saucelabs, BrowserStack etc. It is recommended to do a detailed evaluation of tools before finalising.</p>
<p><strong>9. Design Patterns:</strong></p>
<blockquote>
<p><a target="_blank" href="https://sourcemaking.com/design_patterns">According to the definition:</a> A design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn’t a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.</p>
</blockquote>
<p>So we need to look for an appropriate design pattern for the test automation framework too. Some of the common design patterns in test automation framework are:</p>
<p><strong>Page Object Model:</strong> It is one of the most commonly used design patterns where pages are defined by classes and UI elements of that page as variable.</p>
<p><strong>Single Responsibility Principle:</strong> This principle states that a class should do only one task and have only one reason to change. This will ensure that less effort will be required to maintain the test scripts and produce a clean code.</p>
<p><strong>Facade Pattern:</strong> Facade pattern is the extension of the Page Object model where we combine the actions on different pages to create a scenario/flow. This abstraction helps in better maintenance of the code which may be cumbersome when applying only the Page object model.</p>
<p><strong>Singleton Pattern:</strong> There is only one instance per class at any given point of time. With implementation of this design pattern we can ensure that only one instance is created per class for example: loggers, web/appium driver, loading different files etc.</p>
<p>Ideally, one has to combine all the above one to design and develop an effective automation framework.</p>
<p><strong>Before you go..</strong></p>
<p>The above parameters are some of the minimum things you should brainstorm about but depending on the application, SUT or project the points may differ, so you should take a very informed approach towards designing and building your framework, as it will decide the success or failure of the project.</p>
<blockquote>
<p>Originally published in Medium</p>
</blockquote>
]]></content:encoded></item></channel></rss>