Monday, September 8, 2014

Scrum Process Flow

1)Set Up 
a)Set up the environment for Agile, in Rally or Jira
b)Activate the Agile plugins
c)Assign scrum roles and access to the teams

2)Create Product
a)It is list of Prioritized requirements 
b)You can use excel. post it on walls or filpchart to store product backlogs

3)Create User stories
a)A user story is a brief statement of a product requirement or a customer business case created by a product owner
b)Discuss user stories with development team, distribute work to team, create tasks in Rally/Jira tools
c)Define ready and done meaning

4)Create Release
a)A release has a start and end date during which a number of development iterations are completed. 
b)When a release record is created, at least one scrum team and its members should also be created

5)Create a Sprint
a)A sprint is the basic unit of time in the development process. A sprint can be of any length, but typically takes between one and four weeks to finish. 
b)The scrum master creates one or more sprints from within a release. 
c)All sprints within a release must fit within the release start and end dates.

6)Plan the sprint
a)the team and scrum master decide on what stories they can commit to completing within a sprint
b)The scrum master must make sure that the effort (story points) required to complete the stories matches the capacity of the release team
c)A velocity chart is available to help in the estimation process

7)Track sprint Progress
a)The scrum master manages the sprint team's efforts, provides progress reports, and removes any impediments that the team encounters
b)Team members update task and story records and conduct daily stand-up meetings (scrum meetings) to communicate their progress and concerns to the scrum master

8) Generate Charts
a)Use charts
b)Use burn chart chats
c)Use velocity charts

Agile Retrospective


1)Share lesson learnt
2)Generate common sights
3)Bring improvements into the team
4)Uncover the conflicts
5)Correct dysfunctional behavior

When should be restrospective to be held
1)After the sprint
2)After important milestome
3)At the end of project

Scrum of Scrums


1)Scrum of scrums are meeting between different scrum master across the teams invloved in the project
2)ideally dialy they should meet, but 2-3 times a week is good
3)Discuss issues that could create impediments to other scrum teams
4)All teams must begin and end sprint on same day, discuss what impediments might occur to  meet the dates

How to conduct Sprint Review


1)The scrum master opens the meeting
2)The team presents the results
a)The stakeholders offer opinions and the feed back
b)The product owners accept the results
c)The product owners records new ideas and insights and open issues to update the product backlog
3)The scrum master states the velocity, recapitulates the insights and thanks all participants and announces next meeting
a)Retrospective and Sprint planning
b)Date and venue of the next sprint

Controlling and Reporting in Agile


a)Feed back loops in Scrum
1)Daily : Evaluating the remainin work and updating the sprint burn down chart
2)Sprint : The team velocity during the sprint and updating the sprint burn down chart after the realase plan
3)Release: Deploying value to customer

Reports in Scrum
You can use tools like Rallyand Jira for it
1)Sprint burn down chart : Shows the total remaining effort for the team
Additional variations are, counting open tasks and open user stories
2)Sprint end Report : Complied by scrum master, contains, start and end date of sprint, product backlogs, sprint backlogs, impediments open and closed, Story points delivered
3)Task board : List of taks for each sprint, marked completed or pending
4)Release Burn down chart
5)Velocity Diagram

Conducting Daily Scrum


1)Everyday day at the same time and place
2)Insist that it begins on time
3)Keep it to the time box of 15mins
4)Only scrum team members must speak

what to achieve from Daily Scrum
1)Each team team must answer exactly three questions
what i have done since last meeting
what i wil do until next meeting
what impedements i have 
2)All team members must participate dialy 

After the Daily Scrum
1)Scrum master works in removing the impediments 
2)When additional questions come, like technical issues, schedule addtional metings

Tracking the process
1)At the end of dialy scrum, the sprint backlog must be updated and burn down chart must be updated
2)after the meeting,discuss the adaptations with product owner 

The Dialy Scrum


1)Each team members should know what the other team members are doing and what they have achieved
2)Each team member must report report about his/her work in enough details to make it transperant to others 
3)The dialy scrum is akey part of inspect and adapt

Sprint backlogs


1)Suring sprint, the product backlogs are broken into tasks, and any pending taks fron the sprint becomes the sprint backlog 
2)It is a living artifact
3)Team tracks this remaning effort unttil remaining effort is zero

Sprint Goals


1)The sprint goal always represent a potentially shippable product contaning new valuable business functionality 
2)This keeps teams focus on value creation
3)It keeps stakeholders supportive of the project

How to determine sprint velocity


1)Execute 2-3 sprints and measure the velocity
2)Use historicle data to make an estimate of the velocity 
3)perform a simulated sprint and estimate how much can be delivered in a sprint

What is Good User story


A good User story must be
1)Independent
2)Negotiable
3)Verticle
4)Estimable
5)Small
6)Testable

User story, Structure of User Story


1)User story describes business scenario in natural language
2)It is intentionally short and does not cover all details
3)it represents the feature to be implemented

Structure of User Story
As a.. (role : who wants something)
I want.. (What : business reqs)
because.. (Why: benifits, business value)

Product backlog


1)It is list of Prioritized requirements
2)You can use excel. post it on walls or filpchart to store product backlogs

Requirements in Scrum


1)In scrum collecting requirements and realiing of requirements overlaps, they are not seperate processes
2)Requirements in Scrum are emergent, ie, existing requirements change and new reqs are discovered

Team Charter


1)Team charter is a working Agreement of the Team 
2)It contains basic information, as to, what softwares will be used, what tools will be used, what are the cimmunication rules, What are the commitments
3)It will define what is ready and done means
4)In case it is very large project it can be a seperate document

Benifits and Pitfalls of Team Charter
1)It helps to uncover ambigious project goals
2)It helps team to develop common understand of their work and to develop good working relations
3)It can also be common activities for a new team 
4)Keep it short 

Who qualifies to be a Scrum Master


1)He should be able to effiectively prganise the meeting
2)He should be able to find techniques to develop the team creativity 
3)He should be able to helps team to develop
4)He should be able to help individual team member to exploit their potential
5)He should help team to continiously improve the work

Scrum Team

The Development Team 
1)Self Organizing 
2)IDEALLY full time they are dedicated for sprint 
3)Selects the requirement that is to be realized in a sprint and commits to the sprint goal
4)Collectively reponsible for meeting this commitment and demonstarting the new product increment at the end of the sprint

Role of product Owner 
1)Defines product features and resolves open requirement and business issues
2)Accepts or reects the results 
3)He is responsible for ROI of the product 
4)Determines delivery date and scope of the product 
5)Priorities the features depending on teir value and the assiciated risk

Scrum Master
1)Scrum master ia s servant leader
2)His strength is lack of power
3)For a new team, being scrum master is a full time job 
4)Coaches team and product owner
5)Removes impediments 
6)Ensures compliance with Scrum values and principles
7)Protects team from external disturbances
8)Removes impediments 

Scrum Roles


1)Product owner : Defines the product, he is responsible for the results
2)Scrum Master : Removes impediments, He is responsible for process
3)Team(Development Team) : Self organising(Both Dev and QA), They are responsible for releasing the product imcrement
4)Others Stakeholder : They speak with product owner and scrum naster for all details regarding the sprint and project as the whole

Scrum Flow


1)The product owner is responsible for creating and prioritising the product backlog, a dynamic list for the product 
2)Before each sprint, team meets and discusses how many highest proirity tasks they can deliver during the sprint
3)During the sprint, team meets in daily scrum call and follows progress in burn down chart
4)The Scrummaster coaches the team, removes impediments and ensures that team is able to work effectively
5)During sprint valuable functionality is developed and a potentially shippable product is incrementally developed
6)At end if sprint, team holds a retrospective meeting and identifies how they can work together more effectively during the next sprint

Agile Principles

1)Highest priority is to satisfy the customer through early and continuous delivery of valuable software
2)Welcome changes in requirements even late in dev cycle
3)Developer and business people must work together through out the project
4)The most effective and efficient way of conveying information is Face to face conversation 
5)Working software  is the primary measure of progress

Friday, September 5, 2014

How to Connect to DB in SoapUI with Groovy Scripting

1)import groovy.sql.Sql : Import the SQL package

2)def request = context.expand('${TC_Name#request}')
def holder = new XmlHolder(request)
OrderNum = holder.getNodeValue("//v1:tagname")
log.info OrderNum  : This will hold the request that is being received from the down stream application with the order number

3)getNodeValue() : This will get the tag value of the xpath passed

4) def dbUrl="jdbc:oracle:thin:@tqwertrxx.vxc.abc.com:15xx:tqwetrxx"
def dbUsername="abc"
def dbPassword="abcc#xxxx"
def dbDriver="oracle.jdbc.driver.OracleDriver"
def db = Sql.newInstance(dbUrl , dbUsername , dbPassword , dbDriver)
// Connect to DB

5) def q1 = "select order_id from order where order_name = $OrderNum“
// Writing the query and passing a variable to it, remember to put the dollar sign to make groovy understand that it is a variable

6) result = db.rows(q1) : This will execute the query and return the LIST of data returned from DB in a LIST format

7) result.get(0).get("order_id") // This means, from the 0th col get the value of order_process_status_id
Similarly if the query returns 2 rows then to access the second row we write result.get(1).get("order_id")

8)Once the row from DB are retrieved use them to perform any type of assertion that is required

Risks Addressed Through Performance Testing

Speed related risks

Ensure that your performance requirements and goals represent the needs and desires of your users,

Compare your speed measurements against previous versions and competing applications.

Design load tests that replicate actual workload at both normal and anticipated peak times.

Conduct performance testing with data types, distributions, and volumes similar to those used in business 
operations during actual production

Include time-critical transactions in your performance tests.

Validate that all of the correct data was displayed and saved during your performance test.

Scalibility Related Risks

Compare measured speeds under various loads.

When you find a scalability limit, incrementally reduce the load and retest to help you identify a metric that can serve as a reliable indicator that the application is approaching that limit in enough time for you to apply countermeasures

Conduct performance tests beyond expected peak loads and observe behavior by having representative users and stakeholders access the application manually during and after the performance test.

Validate the functional accuracy of the application under various loads by checking database entries created or validating content returned in response to particular user requests.

Stability Related Risks

Take a server offline during a test and observe functional, performance, and data-integrity behaviors of the remaining systems.

Include error or exception cases in your performance test scenarios (for example, users trying to log on with improper credentials

Apply a patch to the system during a performance test

Force a backup and/or virus definition update during a performance test.

Make time for realistic endurance tests 

Source : Various websites

Baseline and BenchMarking

Baseline : Creating a baseline against which to evaluate the effectiveness of subsequent performance-improving changes to the system or application will generally increase project efficiency.


Benchmarking : is the process of comparing your system’s performance against a baseline that you have created internally or against an industry standard endorsed by some other organization.

Source : Various websites

Categories of performance testing


Performance testing : Performance is concerned with achieving response times, throughput, and resource-utilization levels that meet the performance objectives for the project or product

Load testing : Validating performance characteristics of the system or application under test when subjected to workloads and load volumes anticipated during production operations

Stress testing : Validating performance characteristics of the system or application under test when subjected to conditions beyond those anticipated during production operations. Stress tests may also include tests focused on determining or validating performance characteristics of the system or application under test when subjected to other stressful conditions, such as limited memory, insufficient disk space, or server failure. 


Source : Various websites

What is Performamce tuning??


When end-to-end performance testing reveals system or application characteristics that are deemed unacceptable, many teams shift their focus from performance testing to performance tuning,


When the tests reveal performance characteristics deemed to be unacceptable, the performance testing and tuning team enters a diagnosis and remediation stage (tuning) that will require changes to be applied to the test environment and/or the application. 


Source : Various websites

Why we do performance testing??

Why we do performance testing??


1)For Assessing release readiness
Helps sstakeholders who make decisions about whether an application is ready for release for handling future growth, or whether it requires a performance improvement/hardware upgrade prior to release

2)For Assessing infrastructure adequacy
Determining the capacity of the application’s infrastructure, as well as determining the future resources required to deliver acceptable application performance
Verifying that the application exhibits the desired performance characteristics, within budgeted resource utilization constraints.

3)For Assessing adequacy of developed software performance
Determining the application’s desired performance characteristics before and after changes to the software.

4) For Improving the efficiency of performance tuning
Analyzing the behavior of the application at various load levels.
Identifying bottlenecks in the application. 

Source : Various Websites