Pragmatic Projects Prepared by Doug Glidden. Pragmatic Projects Pragmatic Teams Ubiquitous Automation Ruthless Testing It’s All Writing Great Expectations.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Test process essentials Riitta Viitamäki,
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Week 6: Chapter 6 Agenda Automation of SQL Server tasks using: SQL Server Agent Scheduling Scripting Technologies.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Software Quality Assurance Plan
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
Introduction to Software Testing
© Company Confidentialwww.itcinfotech.com Business Case for Test Automation S.Janardhanan Chief Technology Officer ITC Infotech India Limited Business.
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
MSF Testing Introduction Functional Testing Performance Testing.
11 MAINTAINING THE OPERATING SYSTEM Chapter 5. Chapter 5: MAINTAINING THE OPERATING SYSTEM2 CHAPTER OVERVIEW Understand the difference between service.
Other Features Index and table of contents Macros and VBA.
This chapter is extracted from Sommerville’s slides. Text book chapter
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
Introduction to Systems Analysis and Design Trisha Cummings.
TESTING STRATEGY Requires a focus because there are many possible test areas and different types of testing available for each one of those areas. Because.
Manage Engine: Q Engine. What is it?  Tool developed by Manage Engine that allows one to test web applications using a variety of different tests to.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
TESTING.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Incell Phonium Processor Project Plan Document Dale Mansholt Aaron Drake Jon Scruggs Travis Svehla.
The Joel Test 12 Steps to Better Code. Readings The Joel Test (by Joel Spolsky) 043.html.
1 Lecture 19 Configuration Management Software Engineering.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
1 Principles of Computer Science I Prof. Nadeem Abdul Hamid CSC 120 – Fall 2005 Lecture Unit 10 - Testing.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Event Management & ITIL V3
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
Program Design and Coding
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
LOS ANGELES COUNTY CONVERSION ACTIVITIES. LA Conversion Activities  Changing the current CMS Net functionality.  Adding enhancements to CMS Net web.
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
Information Architecture & Design Week 10 Schedule - Construction of IA and Web - Rosenfeld Chapters 17 & 18 - IA Tools - Presentations.
T Project Review Sotanorsu I3 Iteration
The Software Development Process
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Copyright 2010, The World Bank Group. All Rights Reserved. Recommended Tabulations and Dissemination Section B.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Well-behaved objects Main concepts to be covered Testing Debugging Test automation Writing for maintainability Objects First with Java - A Practical.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Automated Testing April 2001WISQA Meeting Ronald Utz, Automated Software Testing Analyst April 11, 2001.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Java Programming Fifth Edition Chapter 1 Creating Your First Java Classes.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
Software Testing.
Introduction to Software Testing
Design and Programming
Introduction to Systems Analysis and Design
CSE 303 Concepts and Tools for Software Development
Presentation transcript:

Pragmatic Projects Prepared by Doug Glidden

Pragmatic Projects Pragmatic Teams Ubiquitous Automation Ruthless Testing It’s All Writing Great Expectations Pride and Prejudice

Pragmatic Teams No Broken Windows Quality is the responsibility of the whole team No “team quality officers”

Pragmatic Teams No Broken Windows Boiled Frogs Don’t assume someone else is handling it Don’t assume changes have been okayed by leadership Appoint a “chief water tester” to constantly keep track of scope changes

Pragmatic Teams No Broken Windows Boiled Frogs Communicate Communicate within the team, of course Don’t forget the outside world! Generate a brand Crazy team name Funny team logo

Pragmatic Teams No Broken Windows Boiled Frogs Communicate Don’t Repeat Yourself Communicate Appoint a “team librarian” Coordinates documentation and repositories Knows who knows Can spot duplication Appoint “focal point” persons, each with a complete understanding of one component or aspect

No Broken Windows Boiled Frogs Communicate Don’t Repeat Yourself Orthogonality Project activities can’t happen in isolation Organize around functionality, not job functions. Organize teams like code: use contracts, decoupling, and orthogonality Select technical and administrative heads over all teams on a project Pragmatic Teams

No Broken Windows Boiled Frogs Communicate Don’t Repeat Yourself Orthogonality Automation Code formatting Test runs Appoint “tool builders” to create automation tools

Pragmatic Teams No Broken Windows Boiled Frogs Communicate Don’t Repeat Yourself Orthogonality Automation Know When to Stop Adding Paint Allow individual innovation Provide supportive, but not overpowering, structure

Ubiquitous Automation All on Automatic Don’t use manual procedures. Use scripts or batches Schedule nightly unattended tasks

Ubiquitous Automation All on Automatic Compiling the Project Use makefiles Generate code Use regression tests Automate builds Run full build process nightly to ensure all steps continue to operate correctly Run all tests after each build is complete to identify problems as soon as possible Automate final build Automate parameter changes Rerun all tests

Ubiquitous Automation All on Automatic Compiling the Project Automatic Administrivia Use content-driven automation for administrative tasks Automate web site generation by pulling information from the repository nightly Automate approval procedure notifications using markers within the source

Ubiquitous Automation All on Automatic Compiling the Project Automatic Administrivia The Cobbler’s Children Use the tools available to you!

Ruthless Testing Test early. Test often. Test automatically. Coding ain’t done ’til all the tests run.

Ruthless Testing What to Test Unit testing Integration testing Validation and verification Resource exhaustion, errors, and recovery Check normal things like memory and disk space Check unusual things like video modes and bandwidth restrictions Ensure graceful failures Performance testing Usability testing

Ruthless Testing What to Test How to Test Regression testing compares test output with previous tests Types of test data Real-world data Synthetic data Large quantities of data Boundary conditions Statistical properties Exercising GUI systems often requires specialized tools Testing tests Cause bugs to ensure they are caught Use “saboteurs” to test your testing. Testing thoroughly Use coverage analysis tools, but don’t expect 100% coverage Test state coverage, not code coverage.

Ruthless Testing What to Test How to Test When to Test Test as soon as any production code exists Test automatically Running tests Interpreting results If a test cannot be run automatically, test regularly on a specified schedule

Ruthless Testing What to Test How to Test When to Test Tightening the Net Find bugs once.

It’s All Writing Treat English as just another programming language. Build documentation in, don’t bolt it on.

It’s All Writing Comments in Code Comments should explain why something is done, not how Use meaningful variable names Don’t include unnecessary information Lists of functions exported Revision history Lists of other files used Filename

It’s All Writing Comments in Code Executable Documents Develop a single authoritative document for specifications that require multiple implementations Automatically extract data from the controlling document when it is needed

It’s All Writing Comments in Code Executable Documents Technical Writers Follow pragmatic principles even if someone else is writing the documentation

It’s All Writing Comments in Code Executable Documents Technical Writers Print It or Weave It Web-based documentation that can be kept up-to- date is preferable to printed documentation Automatically generate different versions needed from a base document

It’s All Writing Comments in Code Executable Documents Technical Writers Print It or Weave It Markup Languages Rich markup languages make production of different documentation forms simple

Great Expectations Gently exceed your users’ expectations.

Great Expectations Communicating Expectations Don’t ignore unreasonable expectations Ensure users understand necessary changes Impossible expectations Unnecessarily conservative expectations

Great Expectations Communicating Expectations The Extra Mile Surprise users with extra features, such as tool tips and keyboard shortcuts

Pride and Prejudice Sign your work.