...something we'd like to disinvent

Posted by John
on Sunday, 26 October 2008

The Rock

IE6 is a pain, especially supporting it when you're trying to build something really wonderful with javascript. However when you're web metrics come back showing over 60% of your users use it you really have to go that extra yard to put a smile on their face, it's tough but it's worth it in the end.

Thankfully a good friend pointed me to a site called evolt.org providing standalone copies of IE6, should help.

There are alternatives, Microsoft provide Virtual PC images to help you support their latest browsers; they've got a lifespan of about 3 months per download so you've got to grab a new one every couple of months but good as an acid tester.

On the Linux front you should be able to use the standalone IE6 build from the link above with WINE, or IE4LINUX.

Beyond that there's IETester for Windows, good for Vista as it's hard to get IE6 on Microsoft's latest O/S (xp is easier).

There's also another browser built by the Japanese company fenrir called Sleipnir for Windows which allows you to run Firefox and Internet Explorer side-by-side, last time I tried it had some stability issues but it looks to be getting there with the 2.8.2 release.

Should help.

...by the way the engine used by IE is called Trident ;-)

IE6 on Linux + Safari / WebKit

Posted by John
on Friday, 23 May 2008

webkit

IE 4 Linux

For cross-browser testing you can thankfully run IE6 (and 5/4) on Linux with the handy IE4Linux package.

Assuming you've got WINE you'll also need cabextract, so add a repository to your distro,

sudo gedit /etc/apt/sources.list
deb http://wine.budgetdedicated.com/apt hardy main

sudo aptitude update && sudo aptitude install cabextract

Installing IE6 on Linux is a little tricky, the best way i've found to get it working is doing;

su root
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux

Click to create icon on Desktop, it'll run thru downloading packages and prefixes for Wine after which you should have IE on your Linux distro, which will be accessible (if you lose the desktop shortcut) from,

/root/bin/ie6
Safari / WebKit

Apple's Safari browser is powered by the WebKit rendering engine, which thankfully is an opensource project and can be installed and tested against on your Linux machine via a few steps (yep, i've run thru this and it does work).

First get the dependencies,

sudo aptitude install autoconf automake libtool bison flex 
gperf libicu-dev build-essential libxt-dev libsqlite3-dev 
libjpeg62-dev libpng12-dev libglibmm-2.4-dev libgtk2.0-dev 
libcurl4-openssl-dev libxslt1-dev

Now goto http://nightly.webkit.org/ and grab the latest nightly build.

Unzip and Terminal into the archive dir and build the source,

./autogen.sh
./configure --enable-svg-experimental
make

Once that's all done (which will take a while) you should now have a mini-WebKit browser in which to test against via...

./Programs/GtkLauncher

Navigate to the ACID3 website to test for standards compliance here http://acid3.acidtests.org/.

You should get 100/100, WebKit is pretty on when it comes to standards.

acid test

Running under THIN

Posted by John
on Monday, 03 March 2008

As I really want to push THIN (the light mongrel rails server) and see how it really stands in a production environment I've decided to run this site on it for a week and see how the thing handles.

For the inquisitive, this is the command I ran to start it up...

thin start --port 8000 --environment production --servers 2

Starts 2 THIN rails servers at ports 8000 and 8001 under production mode.

Currently they're consuming about 64mb of memory (less than mongrel's 120mb).

Let me know how you think it handles.

Update

So far running pretty sweetly, much more responsive than Mongrel and the memory usage is down a heck of a lot. Considering using ArchLinux for my server box, have liked using that linux distribution.

Firefox Addons (3rd edition)

Posted by John
on Thursday, 03 January 2008

More really decent Firefox Addons...

  • ColorZilla
    ...provides an eyedropper, like photoshop

  • ThrashMail.net
    ...dummy email address generator

  • FFmyIp
    ...displays your machine's ip address

  • LoremIpsum Content Generator
    ...generates lorem ipsum text for your web designs

  • FireFtp
    ...ftp file manager addon for firefox

  • FireBug
    ...the best web debugger in history

  • Web Developer Toolbar
    ...very competent web design addon

  • Delicious Toolbar
    ...add your del.ici.ous links to firefox

  • YSlow
    ...addon to FireBug, ranks your sites performance and offers solutuions to speed it up

  • FireCookie
    ...addon to FireBug, gives you total control of cookies

  • Tails
    ...Microformats statusbar extension, lights up when it sees microformat code in a webpage

  • PicLens
    ...instantly transforms your browser into a full-screen 3D experience for viewing images across the web

All tested to work with the latest Firefox 2.0.0.11 build.

Unit Testing

Software Testing

Posted by John
on Wednesday, 07 November 2007

Specialist Terms

Test Harness

  • In software testing, a Test Harness or automated test framework is a collection of software and test data configured to test a program unit by running it under varying conditions and monitor its behavior and outputs. It has two main parts: the test execution engine and the test script repository.

  • Test harnesses allow for the automation of tests. They can call functions with supplied parameters and print out and compare the results to the desired value. The test harness is a hook to the developed code, which can be tested using an automation framework.

Regression Testing

  • Regression testing is any type of software testing which seeks to uncover regression bugs. Regression bugs occur whenever software functionality that previously worked as desired, stops working or no longer works in the same way that was previously planned. Typically regression bugs occur as an unintended consequence of program changes.

  • Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged.

Unit Testing

  • Unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method; which may belong to a base/super class, abstract class or derived/child class.

  • Unit testing is the cornerstone of Extreme Programming (XP), which relies on an automated unit testing framework. This automated unit testing framework can be either third party, e.g. xUnit, or created within the development group.

Engineer Tests

Black box Testing

  • Black box testing treats the software as a black-box without any understanding as to how the internals behave. Thus, the tester inputs data and only sees the output from the test object.

  • This level of testing usually requires thorough test cases to be provided to the tester who then can simply verify that for a given input, the output value (or behavior), is the same as the expected value specified in the test case.

White Box Testing

  • When the tester has access to the internal data structures, code, and algorithms.

  • For this reason, unit testing and debugging can be classified as white-box testing and it usually requires writing code, or at a minimum, stepping through it, and thus requires more skill than the black-box tester. If the software in test is an interface or API of any sort, white-box testing is almost always required.

Grey Box Testing

  • Grey box testing could be used in the context of testing a client-server environment when the tester has control over the input, inspects the value in a SQL database, and the output value, and then compares all three (the input, sql value, and output), to determine if the data got corrupt on the database insertion or retrieval.

Acceptance Testing

Alpha Testing

  • Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing.

Beta Testing

  • Beta testing comes after alpha testing. Versions of the software, known as beta versions, are released to a limited audience outside of the company. The software is released to groups of people so that further testing can ensure the product has few faults or bugs. Sometimes, beta versions are made available to the open public to increase the feedback field to a maximal number of future users.

Links

Software Testing - Wikipedia