background preloader

Painless Functional Specifications - Part 1: Why Bother?

Painless Functional Specifications - Part 1: Why Bother?
by Joel Spolsky Monday, October 02, 2000 When The Joel Test first appeared, one of the biggest sore points readers reported had to do with writing specs. Why won't people write specs? I believe that on any non-trivial project (more than about 1 week of coding or more than 1 programmer), if you don't have a spec, you will always spend more time and create lower quality code. The most important function of a spec is to design the program. Let's visit two imaginary programmers at two companies. Speedy and Mr. Speedy decides that the best way to provide backwards compatibility is to write a converter which simply converts 1.0 version files into 2.0 version files. Now, Mr. When opening a file created with an older version of the product, the file is converted to the new format. The spec is shown to the customer, who says "wait a minute! When opening a file created with an older version of the product, the file is converted to the new format in memory. Another 20 minutes have elapsed. Mr. Mr. Related:  Test Driven DevelopmentWeb

Bookshelf v7.7: Functional Test Cases Functional Test Cases Functional test cases test a common business operation or scenario. Table 3 shows some examples of functional test cases. A functional test case may verify common control navigation paths through a view. Functional test cases typically have two components, test paths and test data. Test Case A test case describes the actions and objects to be tested. Test Data Frequently, a single path can be used to test many scenarios by simply changing the data that is used.

To Version Control or Not? « Boagworld Development Digital Strategy: The estimated time to read this article is 7 minutes This post has stemmed from an e-mail by Simon Hamp whom has just started working for a PHP development team and has been given the task of assessing their current systems. I wanted a professional opinion on a proposal I have made to move from file-based version control (i.e. manual folder management) to full-blown source code management. Version control is one of those things that you already know you should be using, and if you’re like me, have promised yourself for a while that you’ll get round to learning and integrating into your own workflow. I’m going to be honest with you here, I can’t profess to be an expert in version control. That being said, I don’t think there even is a decision to be made. Let me take a step back, and explain what version control is for anyone unfamiliar with the concept. The real benefit of VCS comes when you have more than one person working on the same file. By Paul Stanton

Rosetta Code Step by Step guide to Test Case Development Test case in simple terms refers to a documentation which specifies input, pre-conditions, set of execution steps and expected result. A good test case is the one which is effective at finding defects and also covers most of the scenarios/combinations on the system under test. Here is the step by step guide on how to develop test cases. 1) Detailed study of the System under test Before writing test cases, it is very important to have a detailed knowledge about the system which you are testing. It can be any application or any website or any software. 2) Written in simple language While writing test case, it is highly recommended to write in a simple and understandable language.It is equally important to write your steps to the point and accurate.Exact and consistent names for e.g. of forms, or fields under test must be used to avoid ambiguity. 3) Test case template It looks like: Let us look at each parameters should included good test cases: ii) Test Case Name: This filed can contain

minify - Project Hosting on Google Code News 2013-07-23 Minify 2.1.7 is released in response to a serious vulnerability discovered in all previous versions. You are strongly urged to follow the instructions in the report to secure your installation, and to upgrade to Minify 2.1.7. 2013-07-19 Minify 2.1.6 released. This fixes several JSMin bugs. About Minify is a PHP5 app that helps you follow several of Yahoo!' It combines multiple CSS or Javascript files, removes unnecessary whitespace and comments, and serves them with gzip encoding and optimal client-side cache headers. Support List Minify in Use The stats above are from a brief walkthrough which shows how easy it is to set up Minify on an existing site. The design is somewhat similar to Yahoo's Combo Handler Service, except that Minify can combine any local JS/CSS files you need for your page. Minify integrated into other Projects/Plugins Features Requirements Installation See the UserGuide. Support List PHP5 Component Classes Warnings Problem Domain Here are some of Yahoo!'

Three Universal methods of reducing complexity Three Universal methods of reducing complexity. 1. Partitioning Reducing the number of factors that have to be dealt with simultaneously. 2. Directs our span of attention and allows for levels of detail Aids in the later construction of systems The shape of the hierarchy is important and should reflect the functionality of the system. 3. The most important idea behind a lot of structured design is "High Module Independence" Objective is not simply partitioning a program into a hierarchy but determining the structure such that each module is as independent of all other modules as possible. Black boxes. This leads to the development of Black Box program modules, derived from the Electronics idea. These are characterised as follows: Such black box systems are: Form a device viewpoint think of HI-FI separates or low-level filters. Coupling and Cohesion of modules Module strength. It is a scale giving the strength of relationships within a single module. The measures were developed by Glenford Myers

Top 13 Tips for Writing Effective Test Cases | QuickSoftwareTesting Test cases are very important for any project as this is the first step in any testing cycle, and if anything goes wrong at this step, the impacts get extrapolated as you move forward in the software testing life-cycle. Knowing how to write good test cases is extremely important for you as a testing resource and believe you me, it doesn’t take too much of your effort and time! You just need to follow certain guidelines while writing test cases or as they call it – follow “test case writing best practices.” In this article, I am going to talk about some simple yet effective tips which you could use for writing effective test cases. Test case writing is an activity which has a great impact on the testing phase and this makes test cases an important part of the test execution process! So, writing test cases which are effective as well as reusable is very important; good test cases save a lot of time in the later stages of testing (really!) #1. Let’s take an example! #2. #3. #4. A few pointers:

A Guide on Advanced Logging and Benchmarking with FirePHP In a previous article, we discussed FirePHP’s basic logging functions for debugging your PHP web applications. Although–as we have seen–it can be used for debugging purposes, its main utility is to log information about your web apps, and it does a terrific job in that regard. In this article, I will introduce you to an old concept that seems to be forgotten by most web developers today: the importance of logging. Additionally, I’ll walk you through some of functions designed to keep your logging more organized. We will talk about: Grouping messagesTablesBenchmarking your code We’ll also learn how to redirect trappable PHP errors to FirePHP, which is a neat and very convenient feature. The importance of logging While debugging is essential to ensure an application works, it does not explain why, for example, a user is having trouble subscribing to your newsletter when other users can. Unfortunately, many web developers tend to disregard logging, making bug squashing a lot harder. Tables

Code Standards | Isobar Overview This document contains guidelines for web applications built by the Creative Technology (front end engineering) practice of Roundarch Isobar. It is to be readily available to anyone who wishes to check the iterative progress of our best practices. This document's primary motivation is two- fold: 1) code consistency and 2) best practices. Pillars of Front-end Development ◊ General Practices ◊ Indentation ◊ For all code languages, we require indentation to be done via soft tabs (using the space character). Readability vs Compression ◊ We prefer readability over file-size savings when it comes to maintaining existing files. We will use server-side or build processes to automatically minify and gzip all static client-side files, such as CSS and JavaScript. The first component of any web page is the tag-based markup language of HTML . Markup defines the structure and outline of a document and offers a structured content. HTML5 is a new version of HTML and XHTML. Template ◊ Doctype ◊ Using !