Programming and Database Concepts for Testing and QA Professionals (Elective)

This tutorial covers the Elective area of the Test Management Body of Knowledge (TMBOK) required for the Certified Test Manager (CTM) certification. This tutorial also covers the Elective area of the Certified Software Test Professional requirements.

Morning Outline - Programming

Goals: In this section we will discuss programming concepts and how programming relates to QA. We will talk about what you really need to know to be effective and how to participate in technical discussions. Throughout the morning, we will investigate specific areas of programs that need to be tested, and why.

  • What is programming?
  • Programming languages
    • Why so many?
    • What works best?
  • Simple programming concepts
    • I/O
    • Variables and constants
    • Handling strings
    • Control statements and loops
  • More programming concepts
    • File access and data storage
    • User Interfaces
    • Algorithms - sorting and searching
    • Subprograms and procedures
  • It's all about the data
    • If it affects the data, you care about it
    • Data structures
      • Records
      • Arrays
      • Linked lists
  • Internet programming particulars
    • HTML
    • Java
  • Programming as it relates to QA
    • Debugging vs. troubleshooting
    • The logic behind the behavior
    • Garbage in garbage out?
    • Why is error handling hard?
      • Looking at efficiency
      • Looking at performance
      • Programming skills vs. QA skills
    • What happens when it gets too technical?
Afternoon Outline - Database

Goals: Knowledge is power and the data is what creates the knowledge. We need to know how to store it and how to retrieve it in order to be effective in testing the data flow through a system. In this section we will discuss what a database is, why it's used and how to use it. A significant amount of time will be spent discussing SQL and walking through examples. SQL can be a major tool for verifying the data that you are processing during testing. Throughout the afternoon we'll look at database design issues and how they affect the testing requirements.

  • What is a database?
    • Flat files
    • Hierarchical databases
    • Relational databases
  • Why use one?
    • Data integrity
    • Data accessibility
    • Predicting the future
  • Database tools
    • RAD
    • SQL
      • What is SQL?
      • SQL components
      • SQL command set
  • Identifying the data
    • Data types and how to define them
    • Quantifying the data
  • Organizing the data
    • Who needs what, when
    • Schemas and tables
    • Rows and columns
  • Creating the database
    • Database design
      • Specifics to consider
      • Tools to use
    • Creating tables
      • Understanding data relationships
      • Storage for efficiency and ease
      • Identifying and creating keys
    • Example walkthroughs with RAD and SQL
  • Where's the data?
    • Populating the database
      • Via program
      • Via manual input
      • Importing
    • Accessing the data - Finding what you want
      • Simple SQL
        • Adding
        • Retrieving
        • Updating
        • Deleting
      • More advanced SQL commands
        • Nesting and recursion
      • Protecting the data
    • Transaction logging
    • "You can't touch that"
  • SQL in the modern world
    • ODBC and JDBC
    • Internet applications
    • Triggers and cursors
    • Stored procedures
    • The challenges of the dynamic world
    • Handling errors
  • Database technology and how it relates to QA
    • The data is what it's all about
  • Integrity of data handling
    • Inputs
    • Retrievals
    • Updates
    • Deletions
    • Performance and recoverability testing issues
    • Error handling testing issues
    • QA involvement during design
      • Are you the middleman?
      • Maintain the "Big Picture" view
      • Expectations for technical input and understanding