Debugging

Last reviewed 27 November 2020 by Alex Seymour

Description

We'll be taking a look at some of the strategies and tools that can make debugging easier - more productive, and less painful. While it is tempting to dive straight into the techniques, exploring the best ways to debug provides a stronger understanding and will enable you to be quicker at fixing issues in the future.

Why this is important

Debgging effectively saves time and leads us to working software, it can also be a tool for learning.

Outcomes

At the end of this training you will be able to:

  1. How to record bugs
  2. Access log files to get more information about bugs
  3. Use front end developmnet tools
  4. Know how to write basic tests

Learner Requirements

  1. Basic understanding of HTML, CSS, PHP

Outline

  1. What is Debugging?
  2. Reproduce
  3. Isolating
    • How to use log files
    • How to use chrome tools.
  4. Resolve

Tasks

  1. Create an issue log template Slide
  2. Google chrome JS debugging tool Slide
  3. Check your company website / personal blog with inspector (Discuss) Slide

Further Tasks

  1. Form to report bugs on your blog site
  2. Debug your blog
  3. Create a flow chart to illustrate your debugging process

Resources / Reference

  1. Slides: Slides
  2. Article: Apache configuration for logs
  3. Article: Nginx configuration for logs
  4. Article: Some recommended Atom plugins
  5. Article: Webwash debugging seminar
  6. Debugging Challenges

Skills, Knowledge, Behaviours and Values

Core Skills

This workshop is designed to develop the following from our core skills directive

  • Communication
  • Estimation
  • Summarisation
  • Presentation
  • Abstraction
  • Problem Solving
  • Reflection
  • Research
  • Learning from failure
  • Teamwork

Apprenticeship Standard

This workshop will encourage the development of the following from the Software Developer Level 4 Standard

COMPETENCIES (Skills)

  • C1 - Logic: writes good quality code (logic) with sound syntax in at least one language.
  • C2 - User interface: can develop effective user interfaces for at least one channel.
  • C4 - Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing.
  • C5 - Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues.
  • C8 - Deployment: can understand and utilise skills to build, manage and deploy code into enterprise environments.
  • C9 - Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
  • C11 - Can interpret and follow:
    • software designs and functional/technical specifications
    • company defined ‘coding standards’ or industry good practice for coding
    • testing frameworks and methodologies
    • company, team or client approaches to continuous integration, version and source control

BEHAVIOURS

  • B2 - Analytical and problem-solving skills.
  • B3 - Ability to work independently and to take responsibility.
  • B4 - Can use own initiative.
  • B5 - A thorough and organised approach.

Knowledge

  • K1 - Understands and operates at all stages of the software development lifecycle.
  • K3 - Understands how teams work effectively to produce software and contributes appropriately.