Application testing is a process involved in all life cycles of software development. It implies review and planning of the product requirements, preparation and performance of changes. As a result testers reveal inadequacies and errors. And trying to get a systematic view, every person in software development company actually plays the role of tester. If you look at IT-project as at a person, then roles of different specialists can be described in the following way:
• Project Manager is a backbone and the autonomic nervous system
• Programmers are a skeleton and motor nerves
• Analysts are organs of sense
• Testers is conscience
Software Quality Assurance is often considered as a synonym of testing, but this method actually was called upon to prevent errors beforehand, rather than finding and fixing them. Quality in this sense should be considered as a characteristic of finished product (software or web-application).
So, testers have to verify even requirements specifications, project plans and analysis, not just program code and interface. Software testing is particularly important in critical systems. For example, the Therac Radiotherapy apparatus (1985) irradiated 6 people with lethal dose of radiation due to the lack of code verification and validation. Or Mars exploration rover (1999) brought the loss of 125 million dollars because of crude common measurement system between developers. And even during the electronic elections in Estonia there were some problems because of poor high-load testing. These examples and practice of software and web development companies shows that all testers should follow basic principles from ISTQB test documentation and other sources.
A lot of developers face a problem of creating a table with scrollable body and fixed header during their web application development tasks. There are several solutions which suite to different situations.
Oxagile software development company created a new solution which supports both IE7 and IE8 and is also suitable for Firefox 3.5 and Google Chrome.
Here is a demo:
Column 1
Column 2
Column 3
Column 4
Column 5
Column 6
Column 7
Column 8
Column 9
Column 10
Cell 1.1
Cell 1.2
Cell 1.3
Cell 1.4
Cell 1.5
Cell 1.6
Cell 1.7
Cell 1.8
Cell 1.9
Cell 1.10
Cell 2.1
Cell 2.2
Cell 2.3
Cell 2.4
Cell 2.5
Cell 2.6
Cell 2.7
Cell 2.8
Cell 2.9
Cell 2.10
Cell 3.1
Cell 3.2
Cell 3.3
Cell 3.4
Cell 3.5
Cell 3.6
Cell 3.7
Cell 3.8
Cell 3.9
Cell 3.10
Cell 4.1
Cell 4.2
Cell 4.3
Cell 4.4
Cell 4.5
Cell 4.6
Cell 4.7
Cell 4.8
Cell 4.9
Cell 4.10
Cell 5.1
Cell 5.2
Cell 5.3
Cell 5.4
Cell 5.5
Cell 5.6
Cell 5.7
Cell 5.8
Cell 5.9
Cell 5.10
Cell 6.1
Cell 6.2
Cell 6.3
Cell 6.4
Cell 6.5
Cell 6.6
Cell 6.7
Cell 6.8
Cell 6.9
Cell 6.10
Cell 7.1
Cell 7.2
Cell 7.3
Cell 7.4
Cell 7.5
Cell 7.6
Cell 7.7
Cell 7.8
Cell 7.9
Cell 7.10
Cell 8.1
Cell 8.2
Cell 8.3
Cell 8.4
Cell 8.5
Cell 8.6
Cell 8.7
Cell 8.8
Cell 8.9
Cell 8.10
Our idea is simple:
We created a mark-up which contains two tables: Table 1 for header and Table 2 for body which look and act as a single table.
We put both tables into a container which scrolls them horizontally.
We put Table 2 for body into a container which scrolls it vertically.
We created a container which simulates the scroll of the body and is positioned in the top right corner of visible content.
Both tables and all their cells should have fixed width.
You should always know the quantity of columns beforehand.
Cells must have fixed height for IE7 (when you use some DOCTYPEs) and you should know the quantity of rows, as in some cases IE7 does not support document.documentElement.clientHeight property.
Create header and body tables with fixed table and cell width. For example, if you have 10 cells, you should set the width of each cell to 100px and the width of the whole table to 1000px).
Create a DIV-container, let’s name it “y-scroll”, which wraps Table 2 (the body-table).
Set the width of the y-scroll container to be equal to the width of Table 2 plus the quantity of columns in Table 2.
For example, if the width of Table 2 is 1000px and the quantity of columns is 10, the width of the container should be 1010px.
Note: This amendment takes place only in the case when table border width is set to 1px.
Set overflow style of “y-scroll” to: x – hidden, y – auto and max-height to be equal to the height of Table 2 visible content.
Create a DIV-container, let’s name it “x-scroll”, which wraps both tables. Set the width of the scroll to be equal to the width of visible content. Set overflow style to: x – auto, y – hidden.
Now you have a scrollable table, but there are two problems:
The header table is shifted 1px to the left.
To fix this problem just wrap this table into a DIV-container. Name it “header-container”.
Vertical scroll appears only after you scroll the whole table horizontally.
To fix this problem create a scroll which simulates the behavior of the real vertical scroll and is positioned at top right corner of Table 2 visible content.
Create a DIV-container, let’s name it “fake-y-scroll-container”. Set position of this container to relative. We use this DIV as a container for absolute positioning of fake scroll. Fix the width of the container in the same way as for “x-scroll” and set overflow style to hidden.
Create a DIV-container, let’s name it “fake-scroll” and put it into the “fake-y-scroll-container”. “Fake-scroll” should be positioned absolutely and have inner content height equal to the height of Table 2.
To set the inner content height to be equal to Table 2 height, create an inner DIV-container, let’s name it “table-emulator” and set its height with JavaScript on page load:
var tableEmulator = document.getElementById(’table-emulator’);
Eclipse Foundation has released a new version of Eclipse Pulsar, open tool for cross-platform mobile applications development.
RIM devices like Nokia, Motorola, Ericsson and Sony Ericsson – In the near future Eclipse Pulsar will allow to develop mobile apps for these smartphones (RIM means “Research In Motion”, wireless communications).
Now creating applications for smartphones from different manufacturers mobile program developers have to use various SDK-sets corresponding to desired platform. It’s obvious that such conditions make their work more complicate, because they have to prepare different versions of the same program for different platforms (Windows Mobile, Symbian, etc.).
Pulsar creates a unified environment based on Eclipse, which will allow developing multi-platform mobile applications. Now Pulsar supports SDK for Motorola, Nokia, Ericsson and Sony Ericsson. However, developers still have to create separate versions of applications for different phones based on integrated Pulsar SDK.
Integrated development environment Eclipse Pulsar
Today Pulsar supports Java-phones. In the future it is expected to support RIM devices based on BlackBerry (Apple iPhone support is also possible).
I would also like to highlight 3 issues that you would like to know when you manage Joomla:
Security:
Joomla is free which means anyone can download it and look at the code. When hackers find a vulnerable Joomla site, the hack is able to break the password protected CMS portion of the site and upload ads for pharmaceuticals or pornography.
On the other hand, good guys from all over the world also look through the code to find security holes to report them or to provide fixes to the community. Joomla team periodically issues security fixes indeed. Please subscribe to their mailing list to be aware and to make ontime installations.
Usability:
When you are editing content and try to bold a few words or highlight certain words using a different color of text or something, Joomla may add styling code to the backend that has to be cleaned out the next time you want to edit. If it isn’t, over time your font color, style, or placement may become broken.
The issue is that Joomla provides WYSIWYG editor for content submitting. It is intended for users not familiar with programming or HTML but who know user interfaces like MS Word. It is a very hard task to convert visually formatted content into HTML automatically. Therefore it is better to paste the written text to notepad, then to the editor, and then to edit it.
Customizations and upgrades:
When performing customizations or upgrades do not touch Joomla core files, otherwise there may be damage to the system.
Joomla provides several ways for customizations: components, modules and plug-ins. Customizing Joomla with these methods doesn’t require core files modification. Thus, there are no problems with updates and no PHP knowledge is required in this case.
Summary:
We choose Joomla CMS for projects because it provides good base platform to build on. Sure thing, any CMS applies some restrictions but Joomla provides a lot of basic functionality that you have to have developed from scratch otherwise. In most cases, Joomla is more convenient for our customers.
Web development Team from Digital Technology Group (DTG, University of Cambridge) has released an application for Android, which allows anonymous users to travel across the Network with the help of TOR (The Onion Router). This program for anonymous web surfing can be downloaded and used free of charge. It works on the basis of peer2peer technology; it means that this new mobile app uses connection via distributed network of servers, supported by enthusiasts from around the world, in this way it prevents user’s location definition.
This mobile application for the Google Android is the result of a summer project and consists of 2 parts: TorProxy and Shadow (both of them released under the GPLv2). More details about them, including download links and installation information, are available at DTG.
Jacob Appelbaum, one of the TOR Project active participants, said that new Android app is “not ready for full use”, but nevertheless it’s a “nice demo”. So, we believe that such software products will initiate new projects and will present new ideas for mobile programming.