Posts

Showing posts from 2015

Test pyramid

  The test pyramid is one of the efficient approaches to test a complex system. Recently I had opportunity to work on a banking system and found the test pyramid of great value in testing the system. The banking system is based on event based architecture.   In a test pyramid, we draw a pyramid with horizontal slices. Each slice represents a type of testing. The bottom part would be Units tests, followed by functional tests, Integration tests (within system), contract tests (system interacting with third party system), external integration tests (system and other third party systems) and UI tests.   The unit test can be normal unit tests, or mock mvc. Functional tests can be covered using Axon functional tests. Integration tests (user journey tests) would be in groovy. The performance tests could be in scala.  The contract tests (cross functional domains) would be in java.  UI tests could be completely in javascript, like jasmine framework.      

Never missing your friends birthdays

I always had this problem of missing my friends birthdays. I would remember it a day afterwards or sometimes ( worst scenario), they would call me up and remind me. I would be engrossed in my work and I would lose myself in time. And this is the only reason. I really cared a lot for my near and dear ones. The following post is an attempt to solve the issue of not remembering birthdays on time. Facebook had a list of all the birthdays of my friends. Brilliant! Sometime back, I had downloaded all the birthdays from Facebook in Excel format. Google search revealed 123greetings and AmericanGreetings. And my work is in progress...

Studying C# - process vs thread

Process Process is a virtual address space. Threads They execute code. They can be considered as a path of execution through a single process. This means they follow a path of execution through an exe and probably many dll's in the process space. Threads usually have access to all the code within a process space. But in .Net managed code, the accessible of the threads are limited to the app domain. In windows, when all the the threads have exited from a process space, windows calls the "tear down" method of the process to destroy the process. Multi threading advantages 1. Can utilize multi-cores in multi-core machines 2. Can give a more responsive UI by increasing the priority for the UI thread. 3. Perform CPU bound operations while I/O operations are waiting to complete. Disadvantages In a single thread CPU, it will take more time. Explanation This is due to the extra time for scheduler to stop a thread and assign the remaining part of the work

Finding a rented flat in a new city (Pune) in four days - and understanding about business relationships!

Last week, I joined TW and relocated to Pune. And I had to find a flat as quickly as possible. How do I approach this problem? What are the choices? I was able to do it in a record 4 days, and here is my experience of the same. Fortunately, I was able to narrow down a few choices. Send an email to my colleagues in my company, Thoughtworks. Talk to as many people as I can. Finding the right timing is important, since most of the people are busy in projects and asking a question like " I am looking for a flat..blah..blah" during a business meeting is not good for relationship building.  Look for a portal where colleagues publish information about rented houses. The contributors could be owners or brokers. And if the owners are from TW's , then nothing like it. Find out about the online sites which cater to users looking for a rented flat in Pune. Meet the brokers - professionals who earn their livelihood by taking one month's rent and providing you a wide

Learning C#

Image
I am planning to revise C#. What better way to learn than learning it from videos hosted at pluralsight?

The best free and Paid Online courses for Software

Image
Free courses The best free course website would be  coursera https://www.coursera.org/ It provides courses, assignments from the leading universities of the world and it is is free. Paid courses http://www.pluralsight.com/training Plural sight provided training on latest software technologies. With bookmark feature for each lesson, and ability to provide training through videos which can be played on any browser, this is a training website you do not want to miss.