Published 4/2023
MP4 | Video: h264, 1280×720 | Audio: AAC, 44.1 KHz
Language: English | Size: 433.25 MB | Duration: 1h 15m
Software practices, Debugging, Software testing, software engineering, prodcutivity, unit testing, clean code
What you’ll learn
Basic debugging from programming practices perspective
Techniques to deal with bugs
Testing to avoid painful debugging in future
Actionable testing and debugging techniques to improve code quality and productivity immediately
Requirements
Basic programming experience in any programming language
Description
Welcome to Debugging and Testing in Programming Practices, a one-hour course designed to help you master the art of debugging and testing your code effectively. This course covers a wide range of topics, from debugging techniques and tools to various testing methodologies, with a focus on practical programming scenarios.Note: The content of this course is also published as part of an in-depth course titled “Programming Practices Bootcamp for production ready coding.”Course Outline:Debugging Course IntroductionDebugging and its importance, challenges, and techniquesDebugging Techniques and ConsiderationsStress Tests, Array Bounds, Start Small, Creating FailuresDon’t Ship Test Code, Avoid Using Defaults, Test on Many MachinesTypes of TestingWhite Box Testing, Black Box Testing, User Testing, Correctness of TestsDebugging Tools and LanguagesSophisticated Tools, Errors Are Imminent, Same Time Programming As DebuggingDebugging Is Unpredictable and Time-Consuming, Techniques to Improve DebuggabilityRole of Language in DebuggingDebugger Advice and FeaturesUse Optimally, Availability, Stack Trace, Break Point, UtilityDebugger Challenges: DSL, System Dependent, Limited in Lower LevelsChoose Carefully, Don’t Probe BlindlyDebugging Strategies and TipsFix Same Issue Throughout Code, Fixed Is Better Than ShippedRead Code Before Attaching Debugger, Explain Code to Someone, Collect Stack TraceSeek Patterns, Type Conversion Issues, Passing By Value and ReferenceFloat Conversion Issues, Uninitialized Variables, Start With Most Recent ChangeTesting and ToolsIntroduction, Testing Is Trying to Break Programs, Testing Can Get TrickyCode Generation, Test-Driven Development, Boundary TestingPre and Post Conditions, Using Asserts, Program Defensively, Check Errors and ExceptionsTest Automation and Systematic TestingCase for Test Automation, Automate Regression Testing, Create Self-Contained TestsDon’t Reinvent The Wheel, Systematic Testing Incrementally, Start SimpleVerify Conservation Properties, Compare Independent Implementations, MeasureBy the end of this course, you’ll have a solid understanding of debugging and testing techniques, and how to effectively apply them in your programming practice. With practical examples and insights, this course will help you enhance your programming skills and ensure the quality of your code. Enroll now and start mastering debugging and testing in programming practices!
Overview
Section 1: Bugs Everywhere!!
Lecture 1 Introduction
Lecture 2 Bugs seem universal
Lecture 3 More components, more complexity.
Lecture 4 Programming languages make an attempt to ease debugging but its upto you
Lecture 5 Sophisticated tools to check correctness of programs to make debugging managable
Lecture 6 Errors are imminent.
Lecture 7 You will spend same time programming and debugging during your career.
Lecture 8 Debugging can be unpredictable and time consuming at times
Lecture 9 You must invest in techniques to make your code easier to debug
Lecture 10 Role of programming language in debugging
Lecture 11 Treat tool chain warning with same rigour as bugs
Lecture 12 Programming language cannot prevent every error
Section 2: Features of a good debugger tool
Lecture 13 Ease of Availability
Lecture 14 Provision to provide Stack trace
Lecture 15 Break Points
Lecture 16 Add value to debugging experience
Lecture 17 Debugger Challenges when dealing with Domain Specific Languages
Lecture 18 Debugger Challenges around platform dependencies
Lecture 19 Debugger limitation
Lecture 20 Does one need to be cautious while choosing a debugger?
Lecture 21 Blind probing does not count as debugging!
Lecture 22 Using tool is not the primary objective!
Section 3: Debugging with sufficient clues and easy bugs
Lecture 23 Its always the world at fault.
Lecture 24 Collect the stack trace
Lecture 25 Reason backward as if solving a mystery.
Lecture 26 Seek Patterns
Lecture 27 Type Of conversion Issues
Lecture 28 When to pass by value or pass by reference?
Lecture 29 Float conversion issues
Lecture 30 Uninitialized Variables
Lecture 31 Start with recent changes
Lecture 32 Eradicate the issue not just fix an instance
Lecture 33 Shipped is better than perfect. Fixed is better than shipped!
Lecture 34 Debugger is not a tool to read code!
Lecture 35 Take help of peers as sounding board
Section 4: No Clues, Hard Bugs
Lecture 36 Reproduce the issue
Lecture 37 Programmatic Reproduction of issue
Lecture 38 Document the Inputs causing issues
Lecture 39 Observer the changes that make issue disappear
Lecture 40 Study the frequency of Failure
Lecture 41 Track intermediate outputs
Lecture 42 Self Checking Code
Lecture 43 Recording progress via log files
Lecture 44 Use block diagrams to “see” the issue
Lecture 45 Environment compatible tools
Lecture 46 Document the investigations
Lecture 47 Finally you may attach a debugger
Section 5: Non Reproducible Bugs.
Lecture 48 The black swans. The Ghost On the machine
Lecture 49 Niche bugs
Lecture 50 Other people’s bugs
Section 6: Testing
Lecture 51 Motivation
Lecture 52 Testing is not debugging!
Lecture 53 Testing isn’t obvious!
Lecture 54 Testing benefits from codegeneration.
Section 7: Test as you Code
Lecture 55 Test as you develop / Test Driven Development
Lecture 56 Boundary Testing
Lecture 57 Pre condition and post condition testing
Lecture 58 Use assert statements
Lecture 59 Program Defensively
Lecture 60 Check for errors and exceptions as you are coding
Section 8: Automation is a boon!
Lecture 61 Test automation is becoming mandatory
Lecture 62 Automate your regression Testing
Lecture 63 Create Self Contained Tests
Lecture 64 Don’t reinvent the wheel
Section 9: Systematic Testing
Lecture 65 Testing incrementally is recommended
Lecture 66 Start with simple use cases
Lecture 67 Verify Conservation Properties
Lecture 68 Compare Independent Implementations
Lecture 69 Measure what matters
Section 10: Other consideration while testing software
Lecture 70 Stress Test
Lecture 71 Array bounds
Lecture 72 Start with small data
Lecture 73 Simulating or generating failure scenarios
Lecture 74 Don’t ship the test code!!
Lecture 75 Case for not using default values in test cases
Lecture 76 Tests in multiple environments
Lecture 77 White box testing
Lecture 78 Black Box Testing
Lecture 79 User Testing
Lecture 80 Correctness of tests?
Lecture 81 Apply the knowledge!
Section 11: Conclusion
Lecture 82[Bonus Lecture]
Beginner software developers,Computer Science students,People curious to build skill of writing production ready code,People curious to learn programming beyond competetive portal coding
Password/解压密码www.tbtos.com
转载请注明:0daytown » Programming Practices: Debugging And Testing Software