2017.03.06 Week Assignment Source Code Control (SCC) & Bug Tracking Systems B. Lund. Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ Hans-Petter Halvorsen
Note! All Documents, Code, etc. you create should be uploaded to Visual Studio Team Services (VSTS) Week Assignment 1. SCC Systems Overview Everybody should collaborate creating a document giving an overview of SCC systems today. Get an Overview of 2-4 SCC Systems/Team. 2. Bug Tracking & Reporting in Visual Studio Team Services (VSTS) -> 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 VSTS See Next Slides for more details...
Introduction Source Code Control (SCC) & Bug Tracking Systems Hans-Petter Halvorsen, M.Sc.
SCC Source Code Control Systems Hans-Petter Halvorsen, M.Sc.
Source Code Control/Version Control What is it? A version control system keeps track of all work and all changes in a set of files (typically your code files, but also other files) Allows several developers (potentially widely separated in space and time) to collaborate and work on the same code Check Out Code when you are going to update the Code Check In Code when you are finished updating the Code All Software Developers need it!! https://en.wikipedia.org/wiki/version_control
SCC Systems Concurrent Versioning System SVN
Cloud-based SCC Hosting Services Visual Studio Team Services (www.visualstudio.com) TFVC or Git GitHub (www.github.com) GitLab (www.gitlab.com) Bitbucket (www.bitbucket.org) Mercurial or Git
Source Code Control SCC Repositories Cloud-based SCC Hosting Services (Monthly payment/5 users free of charge/free for open source projects) Git TFVC or Git Git or Mercurial
Centralized/Client Server Architecture Client Client Client Network Client Server Repository Repository: Source Code Database
Distributed Version Control Systems Repository peer-to-peer peer-to-peer Repository Repository Repository: Source Code Database Repository
Source Code Control @ Google Why Google Stores Billions of Lines of Code in a Single Repository https://youtu.be/w71btkubdqe ( 30min)
Note! - You should always download the latest version of the code from the SCC system and test that you dont get any compiler errors before you Check-in the Code you have updated - If not, your team members may become very angry!
Breaking the Build
Bug Tracking Systems Hans-Petter Halvorsen, M.Sc.
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., Visual studio Team Services, Jira, Bugzilla, etc. https://en.wikipedia.org/wiki/bug_tracking_system
Bug Reporting and Tracking Example Developer Fix Bugs Check if Bug Fixes are Approved Tester Bug Tracking System Report Bugs Check if Bugs are Fixed Assign Responsible Test Manager, Person Project Manager, QA Department Go through Lists of Not Fixed Bugs, Fixed Bugs, etc.
Title Assign To (who shall fix the Bug) In which Module was the Bug found? When (in which Iteration) was the Bug found? You can also upload Screen shots! Important information! Important to Help the Developer to find the Bug Bug Reporting and Tracking in VSTS
Source Code Control Systems Get an Overview of 2-4 SCC Systems/Team All Teams should collaborate creating a common document that gives an overview of SCC systems today See Next Slides for more details...
Concurrent Versioning System SVN
Bug Tracking and Reporting with Visual Studio Team Services (VSTS) Make sure all your code is checked in into TFS 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 VSTS Create Queries: Make different Queries. Go through the Work Items in VSTS with the Developer. Prioritize them See Next Slides for more details...
Work Items and Queries Work Item/Bug Each member in the Group should report 2-5+ Bugs in VSTS Queries Each member should create at least 1 Personal Query (My Queries) and 1 Team Query (Shared Queries)
Title Assign To (who shall fix the Bug) In which Module was the Bug found? When (in which Iteration) was the Bug found? You can also upload Screen shots! Important to Help the Developer to find the Bug Important information!
Make Queries that can handle these situations! Bug Reporting and Tracking Example Developer Fix Bugs Check if Bug Fixes are Approved Tester VSTS Report Bugs Check if Bugs are Fixed Assign Responsible Test Manager Person or Project Manager Go through Lists of Not Fixed Bugs, Fixed Bugs, etc.
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
Bugs vs. Features It's not a bug - it's an undocumented feature J 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?
Bug Tracking in VSTS: Work Items In TFS you can create different Work Items, such as: Task (Developers break down their work into manable Tasks) Bug Feature (New Features reported by Testers/Customers, etc.) Scenario Issue User Story (This type is used in the Product/Sprint Backlog) Test Case etc. These Work Items will be used at different level in your development cycle. When the Testers reports bugs, they will use the Bug Work Item, etc.
Work Items New Bug Test your Application/System. Report Bugs in TFS/VSTS
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) Make one or more Queries in order to find your Bugs (Bugs reported on you) 30
Creating a Query - Example
@Me @Project @CurrentIteration @Today [Any] Query Variables
Set Administrator Rights Cannot Save Team Queries/ Shared Queries? Add Group Project Administrators
Source Code Control in VSTS Use some of the more advanced Source Code Features in VSTS (Give short Demo) Branching, Merging Labelling/Tag Change/Change List (History) Conflict File Locking See Next Slides for more details...
Typical SCC Features Check-out, Check-in/Commit Branching, Merging File Locking (avoid concurrent access) Label/Tag Change/Change List/Change History Conflict Revision, Iteration
SCC Features Check-out, Check-in/Commit Branching, Merging File Locking (avoid concurrent access) Label/Tag Change/Change List/History Conflict 1.0 Label/Tag it Braching 1.1 2.0 Work with Bug Fix Bug Fix Released Work with new Release Merging 2.0 Released etc. Branching in TFS: http://msdn.microsoft.com/en-us/library/ee782536.aspx
Hans-Petter Halvorsen, M.Sc. University College of Southeast Norway www.usn.no E-mail: hans.p.halvorsen@hit.no Blog: http://home.hit.no/~hansha/