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:
- How to record bugs
- Access log files to get more information about bugs
- Use front end developmnet tools
- Know how to write basic tests
Learner Requirements
- Basic understanding of HTML, CSS, PHP
Outline
- What is Debugging?
- Reproduce
- Isolating
- How to use log files
- How to use chrome tools.
- Resolve
Tasks
- Create an issue log template Slide
- Google chrome JS debugging tool Slide
- Check your company website / personal blog with inspector (Discuss) Slide
Further Tasks
- Form to report bugs on your blog site
- Debug your blog
- Create a flow chart to illustrate your debugging process
Resources / Reference
- Slides: Slides
- Article: Apache configuration for logs
- Article: Nginx configuration for logs
- Article: Some recommended Atom plugins
- Article: Webwash debugging seminar
- 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.