Sunday, February 1, 2015

Why acceptance criteria for every story is important to deliver project successfully?

What is acceptance criteria?


Acceptance criteria are documented requirements for every story and product owner

validate every completed story against these criteria. Team consider these criteria as checkpoints while developing software and story is considered done when team meets all criteria. Lack of clarity on acceptance criteria can leads to poor quality and delay in development.


Acceptance criteria must includes functional and as well as non-functional requirement. Functional requirements include exact business processes, user types, boundary limit and validations. Non-functional requirements includes authentication, authorization, speed, security and performance.  

Who will decide and write all acceptance criteria?

Ideally customer (product owner) should write acceptance criteria because product owner know about requirement. But does product owner also understand about non-functional requirement? If yes, can team deliver all non-functional requirements? Considering all this, its better that product owner writes functional acceptance criteria  and further refines them during backlog grooming and sprint planning where team collaborates as well.

What is format for acceptance criteria?

There is no such format for writing acceptance criteria but if team is planning to follow Acceptance Test Driven Development (ATDD) or Behavior Driven Development (BDD) then Given, When and Then is very popular format.

Reach to me on naveenhome@gmail.com or +91 9810547500 for corporate training.

We deliver training on Test Driven Development (TDD), Behavior Driven Development (BDD), Cucumber, Selenium, Jira Agile, Scrum, Jenkins, Scrum Master, Scrum Developer, Product owner, agile estimation and planning, writing user stories etc. 

      

Saturday, January 31, 2015

Test Driven Development (TDD) Workshop in Bangalore, Delhi, Chennai and Pune

Course Overview

TDD is becoming popular especially within self-organized team. TDD gives confidence to team members and help them to follow emergent design. TDD and refactoring helps team to minimize technical debts and write only code that’s needed. Our training is completely hands-on and team can follow any technologies like .Net, Java or C++.  This 2 days program helps you understand and start practicing TDD. This is not only for developers but more for testers as demand for testers growing with the knowledge of test first approach. We deliver TDD training in Bangalore, Pune, Chennai and Delhi.



Objective
  • Understand about test first approach
  • Why TDD is important for agile team
  • How to maximize code coverage
  • How TDD is more useful for emergent design
Who should attend?
Developers, Testers, Business Analyst, Technical Lead, QA Lead, Architect and Managers with technical background

Topic Coverage
  • Introduction to Unit test, unit test characteristics
  • Test Driven Development – why, what and how
  • TDD Cycle - Red, Green and Refactor
  • TDD helps you design software
  • Why testing first is better than testing after
  • Multiple classroom exercise on TDD
  • Overview of Refactoring
  • Clean Code principle
  • When to Refactor
  • Refactoring for Maintainability and Refactoring to Patterns
  • How to use mocking frameworks
  • How to effectively translate technical specs into tests
  • XP Mantras
Prerequisites
  • Bring your own laptop to work through our hands-on exercises
  • No software installation is required but if you already have IDE installed then appreciated 
  • For exercises needing software, the same would be provided during the training
DeliverableThe attendees would be provided with the following:
  • Soft copy of presentation
  • Participation certificate
Reach to me on naveenhome@gmail.com or +91 9810547500 for corporate training.

We deliver training on Test Driven Development (TDD), Behavior Driven Development (BDD), Cucumber, Selenium, Jira Agile, Scrum, Jenkins, Scrum Master, Scrum Developer, Product owner, agile estimation and planning, writing user stories etc. 

Junit and nunit training in Delhi, Bangalore, Chennai and Pune 

Behavior Driven Development (BDD) Workshop in Bangalore, Chennai, Delhi and Pune

Course Overview

BDD is based on test first approach similar to TDD and ATDD.  Behavior driven development follows same principles of TDD like first write test cases, then code and then refactor. We teach BDD using Cucumber and Specflow depending on participant choice. Our 2 days program helps team to start writing features file, runner class and resolve some of the basic issues. We do introduce Selenium web-driver and teach how to write test for GUI based application.Our class is divided in four sprints that includes writing user stories and acceptance criteria, Writing multiple features and scenarios. We deliver TDD training in Bangalore, Pune, Chennai and Delhi.

Objective

  • Understand about test first approach 
  • What is Acceptance criteria and who is responsible for writing acceptance criteria
  • Why BDD is important for agile tester and developer
  • How to maximize code coverage
  • How to automate acceptance criteria
  • Role of BDD in development and testing process
  • Install and configure required tools including cucumber
  • Create Test Suites
Who should attend?

Developers, Testers, Business Analyst, Technical Lead, Architect and Managers with technical background

Topic Coverage

  • What is BDD?
  • Acceptance Criteria and DoD
  • Cucumber implements BDD
  • Preparing Features File having test scenarios
  • Writing a step definition
  • Writing Runner Class
  • Given, When, Then, And, But annotations and usage in features class
  • Passing parameters in Step Functions
  • Using regular expression in steps
  • Install Cucumber JVM
  • Create Cucumber project
  • Tags and Glue Code
  • Junit Test generation in Cucumber
  • Using Assertions to report failure
  • Running simple feature/Step scenario
  • Building a simple test case
  • Executing project from eclipse
  • Cucumber tests on API Layer
  • Running all/limited tests
  • Cucumber tests on GUI Layer
  • GUI Project Requirements
  • Same or different feature files
  • Dealing with GUI changes as the user stories evolve
  • Selenium Components
  • Selenium Configuration
  • Using Assertions to report failure
  • Running simple feature/Step scenario
  • Building a simple test case
  • Executing project from eclipse
Prerequisites
  • Bring your own laptop to work through our hands-on exercises
  • No software installation is required but if you already have IDE installed then appreciated 
  • For exercises needing software, the same would be provided during the training
Deliverable - The attendees would be provided with the following:
  • Soft copy of presentation
  • Participation certificate

Reach to me on naveenhome@gmail.com or +91 9810547500 for corporate training.

We deliver training on Test Driven Development (TDD), Behavior Driven Development (BDD), Cucumber, Selenium, Jira Agile, Scrum, Jenkins, Scrum Master, Scrum Developer, Product owner, agile estimation and planning, writing user stories etc. 

Cucumber training in Bangalore, Delhi, Chennai and Pune
Selenium training in  Bangalore, Delhi, Chennai and Pune



Tuesday, December 30, 2014

Certified Scrum Developer (CSD) Vs Certified Professional - Automated Agile Testing (CP-AAT)

Program Name Certified Scrum Developer (CSD) Automated Agile Testing (CP - AAT)
Certification Authority Scrum Alliance Agile Testing Alliance
Recognition All over world Very little and only in India and Malaysia
Website URL https://www.scrumalliance.org/certifications/
practitioners/csd-certification
http://agiletestingalliance.org/aat.html
Participant Level Developer, Tester, Scrum Master, Agile Coach Developer and Tester
Prerequisite No prerequisite CP-BAT (certified Professional - Basic Agile Testing)
Duration of Training 5 days 3 days
Course fee 39,000 INR 35,000 INR
Course outline Agile Values and Principles
Difference between Waterfall and Agile
Scrum Framework
Scrum Roles, Artifacts and Ceremonies
Agile Estimation and Planning
Writing user story and acceptance criteria
Test Driven Development using junit/nunit
Mocking
Refactoring, Patterns and Anti-Patterns
When and how to Refactor
Collaboration and Pair Programming
Continuous Integration
How to use TDD with Continuous Integration
Behavior Driven Development using Cucumber
How to use Selenium with Cucumber
Agile Values and Principles
Scrum Framework
Scrum Roles, Artifacts and Ceremonies
Test Driven Development using junit/nunit
Refactoring, Patterns and Anti-Patterns
Behavior Driven Development using Cucumber
Acceptance Test Driven Development using Fitnesse
How to use Selenium with Cucumber

How to start TDD (Test Driven Development)?

This is a most common question I here in my training as soon as I say TDD is based on test first approach and we should write test before writing code. If you are already writing unit test for your code after writing code then moving on TDD is easy for you but many developers don’t even write unit test. If they write then they write functional test instead of unit test.

How to differentiate between unit test and functional test?
Developers often write functional test as unit test and ask how is different between tests written by testers. Answer is testers write more negative test cases compare to developers as part of functional test. Basically developers write test NOT to check a unit of code but to check a slice of functionality. This is not unit test. Unit test is for one unit of code like one method, one code block, interface, class or function and functional test is for a piece of functionality after integrating all related code. 

How to switch from functional test to unit test?
Until developer understand what unit test is and how to write an independent unit test to check piece of code, moving to TDD will not be easy. Usually developer start coding either from UI then middle tier OR database then middle tier so if you ask them to write business layer or controller directly without UI or DB, they struggle. I do see few developers have started writing unit test using unit testing framework but for different purpose. Purpose is to meet some agreed condition related to code coverage but if you go and look at it closely then again those tests are not unit test but functional test. Developers need to explore or get trained on writing unit test and practice it under guidance of coach for some time to make it habit. This will only happen when you understand importance of unit test and can think what exactly your code is supposed to do. Nowadays developers has good unit testing framework like junit, testing, nunit and ftest as well as need for unit test. So only missing thing is how to write good unit test.

Shift from code first to test first
This is another big area where many developer say how someone can write/think or execute test until code is not there. Since we all know our expectation from our code, so it is only about writing those expectations and nothing more. Believe in this idea that if I don't know how to test piece of code I am writing then most likely those code is not needed. TDD is not a testing practice but a development practice. It helps you to design code piece by piece to meet end goal. 

How to start writing TDD?
Take any existing application and try adding new code in system but think about how you will test your code? Whatever you can think, add those as unit test one by one and then write minimum code that can satisfy your each test. I have seen many team members going through this route and adopting TDD and I am sure you can also do that.


Wednesday, December 17, 2014

Is Agile and Scrum same? What is Agile and what is Scrum?

Agile is a software development framework that has become popular is last 10-12 years. Agile software development helps in faster software delivery, continuous incremental delivery and faster feedback. 

In February 2001, 17 software professional met at the Snowbird resort in Utah to discuss lightweight development methods. They prepared and published Agile Manifesto for Software Development. As per manifesto any methodology that follow below 4 core values will be considered agile software development methodology.

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

17 people name who signed Agile Manifesto - Kent Beck, James Grenning, Robert C. Martin, Mike Beedle, Jim Highsmith, Steve Mellor, Arie van Bennekum, Andrew Hunt Ken Schwaber, Alistair Cockburn, Ron Jeffries, Jeff Sutherland, Ward Cunningham, Jon Kern, Dave Thomas, Martin Fowler, Brian Marick
Source: Wikipedia-Photo taken by Maree Reveley (aka Somerslea)
Scrum is most popular approach to achieve agility but Scrum is one the methodology. Other popular methodology is eXtreme Programming (XP), Lean, Kanban and DSDM etc. Beside Scrum, other also becoming popular over the period especially to fill the gap in Scrum process.

Scrum covers 3 roles, 4 ceremonies and 3 artifacts. Scrum doesn't suggest any engineering practices but over the period XP practices has been adopted as a common agile engineering practices. These agile engineering practices becoming more popular after scrum alliance launched Certified Scrum Developer course.

Scrum roles are Product Owner, Scrum Master and Development team. Scrum Ceremonies includes Sprint Planning, Daily Scrum, Sprint Review and Sprint Retrospective. Scrum Artifacts are Product Backlog, Sprint Backlog and Increment (Potentially Shippable Product).

Reach out to us if you want to know more about agile and Scrum on www.izenbridge.com



Tuesday, November 25, 2014

CSD – Agile Engineering Training Program in Bangalore, Delhi, Chennai, Hyderabad, Pune and Mumbai

Scrum is the most popular agile framework for completing complex projects. Teams that apply Scrum methods complete tasks faster and with higher quality. The CSD (Certified Scrum Developer) certification is given to those who have demonstrated through a combination of formal training and a technical skills assessment that they have a working understanding of Scrum principles and have mastered specialized Agile engineering skills.

We are conducting CSD workshop in Bangalore and Delhi every alternate month and now starting in Chennai, Hyderabad, Pune and Mumbai. This is an advance course by Scrum Alliance that covers Agile Engineering and Design, Pair Programming, Test Driven Development, Refactoring, Behavior Driven Development and Continuous Integration etc. 

Certified Scrum Developer (CSD) workshop is for everyone especially for development team member that includes Developer, Tester, Business Analyst and Scrum Master.   

This course helps you in designing ecosystem for continuous delivery of software product and IT operation. Focus of agile engineering is to minimize waste and improve productivity through best practices of Test First Approach, Continuous Integration and Delivery. 

If you are a CSM (Certified Scrum Master) then attend 3 days training to become Certified Scrum Developer (CSD) else 5 days training required for non-CSM. There is no exam after training but trainer will evaluate your performance during training and will share feedback with Scrum Alliance. 

If you are still not a CSM and want to do CSD, then you can register to our (CSM+CSD) dual certification or 5 days CSD training. 

Training cost:-

CSD (3 days) - 30,000 INR + Tax.
CSM - 26,000 INR + Tax.
CSM + CSD - 51,000 INR + Tax.
CSD (5 days) – 44,000 INR + Tax

Reach out to us on naveenhome@gmail.com or +91 9810547500

We also help in getting CSP (Certified Scrum Professional) through CSD training if you have 3 years working experience in Agile/Scrum.