Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2....

38
Week Assignment Source Code Control (SCC) & Bug Tracking Systems Hans-Petter Halvorsen https://www.halvorsen.blog

Transcript of Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2....

Page 1: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Week AssignmentSource Code Control (SCC) & Bug Tracking Systems

Hans-Petter Halvorsen

https://www.halvorsen.blog

Page 2: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Week Assignment1. SCC Systems Overview

– Everybody should collaborate creating a Document Quiz giving an overview of different SCC and Bug Tracking systems today.

2. Bug Tracking & Reporting in Azure DevOps-> Work Items - Bug

3. Cont. Implementing your System with focus on Source Code Control– Try to use some of the more “advanced” Source Code Features in

Azure DevOps

See Next Slides for more details...

Note! All Documents, Code, etc. you create should be uploaded to Azure DevOps

Page 3: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Introduction

Hans-Petter Halvorsen

Source Code Control (SCC) & Bug Tracking Systems

Page 4: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Software Configuration Management (SCM)

• Software Configuration Management is the process of managing all the pieces and parts of artifacts produced as part of software development and support activities.

• We will focus on Tools that need to be brought in to facilitate the management of these artifacts– Azure DevOps is such a Tool– Tools for handling the Source Code – Source Code Control

(SCC)

• Software Configuration Management is much more than just creating and keeping multiple versions of code or documents

Page 5: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

SCM Artifacts Examples• Requirements Specifications• Design Specifications• Source Code Control

– Programming Code, e.g., C# Code– Database Tables (Diagrams and SQL) and Initialization Data

(SQL), e.g., Post Numbers, Stored Procedures, ...

• Executable Code, Builds• Test Cases• Bugs (Bug Tracking)• Support Incidents

Page 6: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Tools for Configuration ManagementThese configuration management tools may be viewed in three tiers:1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS2. Software Builds, Deployment, Continuous Integration

(CI), e.g., Jenkins, Azure Pipelines– These tools make sure the software is always ready to be tested

based on the updated Code base

3. Development (Bug Tracking or Issue Tracking) and Support Process Activities

Azure DevOps has all these 3 tiers

Page 7: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Jenkins

https://www.youtube.com/watch?v=89yWXXIOisk

Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.

Page 8: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Azure Pipelines

BuildProgramming CodeRepository

Deploy

Test

Azure Pipelines is Microsoft’s “alternative” to Jenkins, but you can also use Jenkins with Azure DevOps

Page 9: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

SCC

Hans-Petter Halvorsen

Source Code Control Systems

Page 10: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

SCC Systems

Concurrent Versioning System

SVN

Page 11: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Cloud-based SCC Hosting Services

• VisuAzure DevOps(https://dev.azure.com)– TFVC or Git

• GitHub (www.github.com)

• GitLab (www.gitlab.com)

• Bitbucket (www.bitbucket.org)– Mercurial or Git

Page 12: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Source Code Control

Cloud-based SCC Hosting Services (Monthly payment/5 users free of charge/free for open source projects)

SCC Repositories

Git or Mercurial TFVC or Git

Git

Team Foundation Version Control (TFVC)

Services

Page 13: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Centralized/Client–Server Architecture

Repository

Network

Server

Client

Client Client

Client

Repository: Source Code Database

Team Foundation Version Control (TFVC)

Page 14: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Distributed Version Control Systems

Repository

Repository

Repository

Repository

peer-to-peer peer-to-peer

Repository: Source Code Database

Page 15: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bug Tracking Systems

Hans-Petter Halvorsen, M.Sc.

Page 16: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bug Tracking Systems• A “bug tracking system” or “defect tracking system”

is a software application that keeps track of reported software bugs in software development projects.

• It may be regarded as a type of “issue tracking system”.

• Typically bug tracking systems are integrated with other software “project management applications” – e.g., Azure DevOps, Jira, Bugzilla, etc.

https://en.wikipedia.org/wiki/Bug_tracking_system

Page 17: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bug Tracking Systems

Bugzilla

Tissue

Tissue is integrated part of the Project Management System (PMS)

Page 18: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bug Reporting and Tracking Example

Bug Tracking System

Developer

Tester

Report Bugs

Fix Bugs

Check if Bugs are Fixed

Check if Bug Fixes are Approved

Test Manager, Project Manager, QA Department

Assign Responsible

Person

Go through Lists of Not Fixed Bugs, Fixed Bugs, etc.

Page 19: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

You can also upload Screen shots!

Important information!

TitleAssign To (who shall fix the Bug)

In which Module was the Bug found?

When (in which Iteration) was the Bug found?

Important to Help the Developer to find the Bug

Bug Reporting and Tracking in Azure DevOps

Page 20: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines
Page 21: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Teaching Outcome

Lectures – 5%

Discuss in Groups – 50%

Reading– 10%

Hear and See – 20%

Demonstrations – 30%

Practical Exercises – 75%

Teaching others – 90%

Passive Learning Principles

Active Teaching Principles

“Traditional Lectures are passive teaching methods, where you can keep your attention for 10 minutes” Alf Inge Wang, Professor NTNU (The vendor of Kahoot)

Page 22: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Source Code Control Systems

• The Class should collaborate creating a common document that gives an overview of SCC systems today

– Everybody should work with and update the document at the same time

– We will use Google Docs for Real-Time Collaboration

• Individual: Each Student should get an overview of and write about at least one SCC System

See Next Slides for more details...

Last Year

Page 23: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Source Code Control Systems• Each Team should make a Quiz with 30+ Questions (10

Questions per Student)

• Each Team should collaborate creating a Quiz that gives an overview of SCC systems and Bug Tracking Systems today

• We will use Google Forms in order to create the Quizzes (or other Quiz systems if you prefer, e.g., Kahoot)

• Everybody in the Team should work with and update the Quiz (at the same time). You can add Collaborators

See Next Slides for more details...

Page 24: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Friday (after lunch)

• Each Team should make sure the Class take their Quiz (Give them access to the link)

• After the Quizzes are finished, the Team should present the correct results.

• The person that gets the highest total score after all the Quizzes and Questions will get a prize.

Page 25: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Google Formshttps://www.google.com/forms/

Page 26: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Concurrent Versioning System

SVN

Page 27: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines
Page 28: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bug Tracking and Reporting with Azure DevOps

• Source Code: Make sure all your code is checked in into Azure DevOps before you start

• Perform Code Review/Testing of the Application/Module to another Developer in the Team

• Work Items: Report Bugs, New Features, etc. as Work Items in Azure DevOps

• Create Queries: Make different Queries. Go through the Work Items in Azure DevOps with the Developer. Prioritize them

See Next Slides for more details...

Page 29: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Work Items and Queries

• Work Item - Bug/New Feature– Each member in the Group should report 2-5+

Bugs/Feature Request in AzureDevOps based on the Code Reviews

• Queries– Each member should create at least 1 Personal

Query (My Queries) and 1 Team Query (Shared Queries)

Page 30: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

You can also upload Screen shots!

Important information!

TitleAssign To (who shall fix the Bug)

In which Module was the Bug found?

When (in which Iteration) was the Bug found?

Important to Help the Developer to find the Bug

Page 31: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bug Reporting and Tracking Example

Azure DevOps

Developer

Tester

Report Bugs

Fix Bugs

Check if Bugs are Fixed

Make Queries that can handle these situations!

Check if Bug Fixes are Approved

Test Manageror Project Manager

Assign Responsible

Person

Go through Lists of Not Fixed Bugs, Fixed Bugs, etc.

Page 32: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bugs• A software bug is an error, flaw,

failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways

• They found a bug (actually a moth) inside a computer in 1947 that made the program not behaving as expected. This was the “first” real bug.

• Debugging: Find and Remove/Fix Bugs

Page 33: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Bugs vs. Features“It's not a bug - it's an undocumented feature” ☺

“For as long as I've been a software developer and used bug tracking systems, we have struggled with the same fundamental problem in every single project we've worked on: how do you tell bugs from feature requests?”

Page 34: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Work Items – New Bug

Test your Application/System.Report Bugs in Azure DevOps

Page 35: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Queries• Used to find existing Work Items

• You may create different Queries to make it easy to find the Work Items you need

• Queries may be personal or visible for everybody in the project (Team Queries)

40

Make one or more Queries in order to find your Bugs (Bugs reported on you)

Page 36: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Creating a Query - Example

Page 37: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Query Variables• @Me

• @Project

• @CurrentIteration

• @Today

• [Any]

Page 38: Week Assignment - halvorsen.blog · 1. Source Code Control (SCC) Tools, e.g., Git, SVN, CVS 2. Software Builds, Deployment, Continuous Integration (CI), e.g., Jenkins, Azure Pipelines

Hans-Petter Halvorsen

University of South-Eastern Norway

www.usn.no

E-mail: [email protected]

Web: https://www.halvorsen.blog