Saturday, 27 August 2016

Introduction to Scrum

I have recently completed my Certified Scrum Master (CSM) course hence writing this post.

The Scrum is one framework of implementing Agile. This framework is more popular than others especially in Software development and delivery. 

Scrum is a fixed length cycle of iterative developments. Each cycle can be of 2 weeks or 1 month.These are like calendar months, which are fixed and cannot be change to 40 days or 20 days. Also like calendar months, if we do not have any work we cannot remove them. Similarly developers cannot cancel the sprint. Rather they will pull more work from backlog.

Scrum team has only 3 roles. No less. No more.

Let’s find out details of each role -

Product Owner – Business owner or Client. (Product owner cannot be BA or Any other team member. This can be Client Manager / Sr. Client Manager Etc.)

Product owner is responsible to get the value delivered in each sprint by the team members. He will be collaborative and decision maker. He should be able to inform other stake holders on overall progress and bring in the requirements in form of suggestions.

 Scrum Master – The facilitator. May not be technical person, however will make sure scrum functions as expected. He is not responsible for deliveries. He can neither take any decisions to update any feature nor stop any deliveries for quality or any other issues.  He is responsible for protecting team from external interference and checking if team is comfortable to deliver.

He is meeting organizer and helping others to follow the norms so that each meeting will be fruitful. He is a coach to impart agile values in team members.

Development Team – This is self-organised team. This team consist of all the remaining which includes BA, Architect, Developers, QA and anybody else which is required to build shippable item. The responsibilities of development team is to make sure within sprint they deliver quality item in each iteration.

Within development team BAs help to understand and prepare required documents, architect creates design; developers write code and QA test the code. These all members work closely and collaboratively. In each Sprint (2 -4 weeks) all of them work together and create a shippable product. So at the end of each sprint the Product owner if wish to release he can release the developed work.
Scrum has following ceremonies. Ceremonies can be better understood as functions to perform in each sprint (Every 2-4 weeks).

1. Sprint Planning
2. Daily Scrum meeting (Stand up)
3. Sprint review (Demo / Play back)
4. Sprint retrospective
5. Grooming

Sprint planning is 10% of the sprint time and happens at the beginning of each sprint. So if we have 2 weeks sprint, i.e. 10 days then it will be 1 day. Here all the stories (features / requirement) which can be delivered with in sprint will be pulled in Sprint backlog. The tasks for each story are created and hours of work are decided.

Daily Scrum is a daily 10 min discussion. Each development team member and scrum master answers following 3 questions –

1. What did I do yesterday?
2. What will I do today?
3. Any issues (Impediments)

Any help is available within team will be proposed but will be discussed after the scrum meeting.

Sprint review is 10% of the sprint time and happens before the end of sprint. So it will be 1 day if we have 10 days sprint. Here all the work is shown to product owner and he will accept the story if it is done.

Sprint retrospective is 10% of the sprint time and happens after the review. This meeting is to check the learning. It is generally around following questions –

1. What went well in this sprint?
2. What did not went well in this sprint?
3. What we will continue doing in next sprint?

Grooming is a meeting to discuss the product backlog. This happens during sprint and takes 10% of sprint time. In grooming team goes back to product backlog and looks at each product item to assign some high level estimates in terms of story points, this will make the list more sequenced and sorted.

If we look at the time distribution for 10 days (2 week) sprint, actual work will be carried out in 6 full working days.

As a team each one is individually responsible to update the work completed. And the burn down with remaining work is created and displayed on floor.

The basic idea of Agile is around three towers –

1. Transparency
2. Inspection
3. Adaptability

Lot of work on Scrum is created across globe. Each team alters the scrum to make it best fit; however as discussed basic concepts around it remain the same.

It will be more interesting to read more on other agile process as well.

Keep Practicing Scrum!

Thursday, 18 August 2016

Automation Testing using SOAP UI

Thank you for making my blog successful. I am writing this post for those who have requested to write on SOAP UI.

SOAPUI is an open source tool for testing web services and SOA (Service Oriented Architecture). This functional testing tool is used for functional, regression and load testing.

SOAPUI is useful to create XML request and send it to server and get the response from Server.
We need WSDL to test using the SOAPUI. WSDL URL is nothing but the end point URL provided to test the web service. These endpoints are operating on messages containing information. The operations and messages are described and then bound to network protocol and message format to define and endpoint.

Once the SOAPUI is installed follow the steps given below to create test case -

1. Create New Soap Project from File Menu (Shortcut is Ctrl -N)

2. Enter Project Name

3. Enter WSDL and click OK (This is endpoint URL for testing. During actual work you may have your project specific)

4. This will create your first project to test and learn

5. Double click on Request 1and Click on (+) to add the test suite

6.  Enter name to create Test Suite and Click OK

7. Enter test case name and Click OK

8. This will ask you to enter request to test case. Enter the name. Click OK

Once the test case is created click on the RUN (Green Arrow). This will execute the test case. This will take few seconds. The request will send to the WSDL end point and the response will be received.

Now we will add some assertions. Assertions are nothing but validations. If assertion fails then the test case fails.

Once we have created all the test cases as mentioned above under the regression suite then we can run them from command prompt as well.

Testrunner.bat “C:\ParagTestBlog\SOAPTestProject.xml”

Thursday, 11 August 2016

Automating Devops

Thank you all for visiting my posts frequently.

Let's see the process of Automating Devops and how testing blocks fits in the process.

Devops is development operations; which means once the code is written by developers then we need to collect the code and combine it to make larger functionality. This code is then built to make executable version and deployed in the environment i.e Test or Production. In a very simple language these all operations comes under Devops or Development Operations.

This process is repetitive and requires automation. Also, due to the changing requirements and iterative development code drop is frequent. So we need to run the code-integrate-build-deploy cycle frequently within small window.

There are two major concepts CI (Continuous Integration) and CD (Continuous Delivery). All the code when combined by the tool and sent out for build and deploy is called as Continuous Integration.  The build and deployment cycle may be manual or automated. And CD will be achieved once the code is integrated and if the build is deployed to make sure that application is ready to use after every build.

Automation testing is an essential and integral part of CI and CD. In our previous posts we have seen how Jenkins - open source tool can be used to implement CI and CD.

Selenium allows to write tests in most popular languages like Java and makes it possible to create test suites for unit testing, functional or integration testing. While automating Devops Selenium tests are triggered to make sure the functionality is working as expected. Any integration issues are not passed through and regression suite to confirm that nothing else has broken by the new code.

Any failure to the automated tests will revert the changes and inform all the stake holders. To achieve the most ideal automated system of Devops, requires expertise and willingness to provide enough time on designing the system.

Once the system is in place the maintenance of the system involves but not limited to maintaining Selenium Automation Scripts. Here if automation framework is built then it becomes easy to manage automation scripts for quick maintenance.

Hope you find this information useful.

Keep Automating!  

Thursday, 4 August 2016

Quick Guide for Selenium issues

Thank you for your response. I received a few questions on Selenium so thought of answering them in this post -

Issue 1) How to handle the dynamic objects?

The first solution is to check if you have another locator. e.g. If you are using name locator try to use xpath.

If you do not have another useful locator then try to find out its parent locator and you can come down to the dynamic locator.  

You can also use CSS pseudo classes to walk to the dynamic object. If CSS is not a solution then last but the effective solution is to talk to developer and request to name the object. Here your good communication skills play an important part. 

Issue 2) Application is showing pop up messages?

Operating System level messages like print dialog box, file download dialog box etc. are outside of Selenium’s control. However most of the times you will find the controls are created for browser only and such controls are handled by Selenium. Browsers based pop up messages are easy to handle.
Send keys are not very good to use, however you may find Send keys are the only solution when other solutions don't work for pop up messages.

Issue 3) Application opens a different tab (Multi tab applications)

Usually if we click on hyperlink it opens into a new Window, however few applications open up a tab, for such applications you need to use send keys “Ctrl + Tab”.

Issue 4) Complex selenium scripts, difficult to maintain

If you have complex selenium scripts then break it in small functions. Small functions typically perform one single action like click on button / enter some value / get some elements property.

You can also add all the critical elements to repository (e.g. text file, xml file) for maintaining them outside the script. This is the simplest way of handling the object properties which keep changing frequently. Sometimes element names are different in SIT and UAT, in such cases you can make the changes to text or xml file out of the script.

Issue 5) Reporting

Selenium does not provide you with the reports. Hence this is the best opportunity to create your custom build reports like HTML, XML reports. Or you can use Junit / TestNG reports.

About reports, most important part is to make them very simple and user friendly. Always add date, time, and project information with environment details to your reports. You can also use SMTP emailing option to email reports. Email reports always have summary in email body and effective subject line.

Issue 6) Selenium support

Selenium support is available through forums so if you have issues with your code then post it to Selenium forums. And provide all details like what you are trying to do, your code and what error message you get if any. Don’t give out your conclusion and don’t expect immediate response.

Most of the time on forums you will find someone responding immediately however you can assure yourself to get the right solution you may need to wait for a day or some times for a week depending upon complexity involved.

Keep discussing!