Quality Testing: How a high quality product will ensure satisfaction of your customer

qaHow will the development of a high quality product make the life of your customer and, as a consequence, your own life better?

To answer this question we suggest the following options:

1. Testing of the software will reduce the number of its returns for further development (including returns from the Customer and end users) during its implementation and, what is more important, its operation and maintenance phase. This will allow:

-  for a reduction in  time spent by  developers  in enhancements, correction and administration of the product;

-  for less  consultant and developer diversion  (for these enhancements) from other projects;

-  As a result of the two aforementioned points – the project will  keep to a certain budget and terms? time frame?  – Surely any directors dream!

2. Project testing will contribute to a considerable reduction of errors and requests that come to a technical support team. This will allow:

- for less time to be spent by technical support team specialists and also people who will be involved in correcting possible errors;

- for an increase satisfaction and loyalty of the Customer which is quite crucial.

3. Project testing will help reduce the risks of possible software failures resulting from which the Customer may lose real money.

The main specificity here is in the fact that the emergence of a failure in the “field environment” is very costly and testing can help reduce the number of such failures. This is what the Customer may get, meaning they cansave  money on testing. At the same time, the return of investment (ROI) is achieved by means of reducing the number of problems in operation; the Customer doesn’t lose any money when, due to system failures they do not receive it from their clients.  The Customer is ready to pay for this, thus increasing the project budget.

This happens to be the most honest way of treating the Customer. When the contractor makes a cheap product with a number of faults and then persistently demands money from the Customer for support, administration and error correction, the strategy “Money for your own mistakes” is a surefire recipe for success.

4. Testing of requirements. This type of testing at the earliest stages of project implementation will allow  for a reduction at the minimum expense of a large number of errors  and  for a reduction in time for developers who are often  limited by  incomplete, unclear, and non-testable,  requirements. To postpone testing is to reject it. Passing up testing once will see it passed up for good.  (A stitch in time saves nine! ← this is what you’re saying in a less literal way.)

Softage offers product software testing and quality assurance services. Contact us through our website http://www.softage-group.com/ for a free project quote.

How to Introduce Architecture and its Changes

The specifics of describing architecture and its changes is in the fact that as opposed to a program code it has no evident representation, except for those cases when it is clearly documented. However, even in this case it is hard to guarantee the correspondence of documented architecture to the factual high-level logical structure which in reality exists in the system.

Structural models can become means of describing architecture and its changes. There are currently a large number of notations and tools supporting structural modeling of software. The possibility of the automatic extraction of models from a code guarantees their precision and allows for their timely updating. This possibility becomes crucial for choosing the necessary tools as the compliance of the model with the factual structure of the existing code in the process of modeling the architecture and its changes happens to be exceptionally important for securing a precise and manageable process.

For the further study of program systems architecture we will use a notation of structural modeling accepted in KLOCwork Architect tool which allows for the automatic extraction of models from a program code and their editing. Here is a brief review of the notation:

Program system models utilized by KLOCwork Architect are somewhat similar to Entity-Relation models. They belong to a class of container models. The model’s basic elements are as follows:

Architecture Block.KLOCwork Architect model consists of so called architecture blocks. Architecture blocks introduce into models structural elements of a program system irrespective of the level of abstraction in which the modeling takes place. Architecture blocks have at least two major attributes, such as name and type. Names of architecture blocks are predetermined by the names of those structural elements of the system which they introduce into models. Types of architecture blocks substantially depend on the level of abstraction where modeling takes place, and a concrete task within which the research of the architecture is carried out. For example, to model systems built within any component technologies “components” will be the type of architecture blocks used. For modeling systems of building software the chiefly used types will be “folders” and “files”.

Relation. In the model KLOCwork Architect relation means a one-way relation between a pair of architecture blocks. Just like architecture blocks, relations can be of various types. The following types of relations can be used as an example:

Instancing: A instances B (block A is a function, block B is a class).

Access to data: A reads data from B (block A is a function, block B is a class or a class attribute).

Between any pair of blocks there can be a random number of differently directed relations. Their types can also be differentiated at the same time.

Architecture Refactoring

architecture_toolsRefactoring is one of the most successful approaches to changing existing software. It is the approach based on systematic transformations of the initial code. Refactoring is the change in the internal structure of software aimed at facilitating the understanding of how it works and simplifying the modification without tackling the observed behavior. It is commonly understood that during a software development process the system design is created first and only then is its code is written. In the course of time the code is modified and the system wholeness, i.e. the correspondence of its structure to the initial design slowly gets worse. The further development of the system gradually shifts from a directed, guided activity to hacking. Refactoring appears to be quite the opposite practice. With its help any chaotic and misguided project can be transformed into a well-designed code. Each step of the process is quite simple. For example, one of the steps involves transferring the field or method from one class into another, class separation, etc. However, the total effect of such minor and seemingly insignificant changes proves to be cumulative and can radically change a project for better. The process of refactoring is a direct opposite to a gradual system code degradation.

For documenting and cataloguing refactoring methods, one uses semiformal notation in which every method is described by means of a so-called pattern. Any pattern describes and names typical tasks which constantly appear in the process of work, and also the principle of their solution. As a result, such solutions can be used over and over again. Patterns name, demarcate and identify key aspects of a general solution structure. Patterns also form the dictionary of solutions to a certain problem area and allow two specialists in that field to name typical solutions and understand each other without explaining the core of solutions.

The refactoring of an object-oriented code has proved to be an efficient means of solving tasks of program evolution and support. However, presently there are practically no studies dealing with refactoring at a higher level of abstraction – the level of software architecture. Correspondingly, the transfer of this methodology to a higher level of abstraction is interesting.

Functionality of Identity & Access Management Systems

In their nature, IAM systems appear as an in-house or external single data storage about users. Their major objective is to ensure that data accounts granting the necessary rights appear in all the applications required by the user (preferably there should be one single account for all the applications).

Here is what this process looks like:

A request is compiled in the system regarding the necessity of granting a certain group rights (possibly, by means of acquiring data on regular operations from a corresponding system)

The request is confirmed with all responsible persons including specialists capable of assessing the consequences of such an access

When confirmed, this request is broadcast into instructions and is to be executed by system administrators

System administrators carry out all the necessary settings

The system controls the faultlessness of these settings, their completeness and sufficiency

The instructions may be carried out in the automated mode.

In order to allow the user to remember only one data account Identity Management systems are integrated with Access Control Management and Single Sign-On solutions.

Allowing the user to authenticate themselves in all the applications with the help of one set of credentials presents significant challenges, because applied systems support a limited and often non-crossing set of authentication methods. Moreover, the credentials format in various systems may not coincide (from the banned use of certain symbols up to problems with coding).

The accomplishment of this task requires:

  • specialized agents to which the application can delegate authentication functions (under the condition that the application is capable of actually delegating this function);
  • intermediary authentication servers to convert credentials from one format into another.

Among the chief parameters characterizing IAM-systems are:

  • document management properties
  • flexible use and application for organizations with their own traditions
  • the possibility of integration with existing document management systems
  • the possibility of applying the electronic digital signature

in the compilation and approval of requests

  • a list of supervised platforms and applications including requested rates of creating new agents for new platforms
  • accounting system development.

Changing Software Architecture and Refactoring

skypeRecently a tendency has arisen towards lifecycle growth of successful program projects. As a result, the volume of the ancestral code supported by the community of developers also grows. This fact helps explain the exceptional importance of tasks related to facilitating the development of the existing program code. At the same time, these tasks receive little attention from the scientific community and tool developers. As a result, contemporary methodologies overestimate the significance of the initial stage of a program system’s life cycle and practically neglect its further evolution. Therefore, there is currently an apparent lack of methodologies and efficient tools for supporting work with a corresponding code.

The situation changes when the question of how transformations can be used systemically as a centrally organizing principle in the process of the development and support of the existing software arises. However, the majority of researchers study transformations at a very narrow angle: as transformations at the level of the initial code, refactoring. Meanwhile, there are practically no studies dealing with transformations at a higher level of abstraction, i.e. at the level of software architecture. At the same time, many scenarios of the support and development of the existing code presuppose a change in the architecture of the existing system. Therefore, the development of the methodology and supporting tools aimed at the organization of a foreseeable and manageable process of changing software architecture is very interesting.

See Softage case study on phone number recognizer refactoring here: Phone Number Recognizer refactoring

Decentralized Planning

Division managers need to carry out planning in a specialized environment tailored to suit their personal needs and requirements. For instance, one particular manager might want to view only those expense departments and cost centers with which he is working, and not the entirety of the information held on the divisions. Since the majority of solutions give no opportunity for decentralized planning, many organizations use MS Excel. However, if every manager were to draw up an Excel-budget, the organization would have a number of budgets, each of which would be performed in its format and compiled according to its criteria. As a result, the aggregation of data  would be an arduous, erroneous and time-consuming task.

The Budgeting and Planning product allows for decentralized planning enabling managers to create budgets in the most comfortable environment. The user creates an individual planning interface for data entry and access to it. At the same time, the information is stored on a centralized basis. In this case, there is no need for manual data consolidation.

General information and transaction data come from InfoCubes contained in the SAP Business Information Warehouse. Since this data can be easily integrated with general and transaction data in SAP R/3 CO-CCA, it is also possible to integrate a corresponding cost center, cost element and currency data from R/3 to SAP SEM.

For further information on similar solutions see Softage Case Study: Investment Planning Software

HP to Release a Netbook for Elementary School

HP-Mini-210-1099SE_Vivienne-Tam-edition_2HP has announced a release of a netbook for schools – the HP Mini 100e Educational Edition. The device will cost 300 USD and it is aimed for elementary school children.

The CRT size of the HP Mini 100e is 10,1 in with a 1024x 600 px resolution. The display is equipped with a photodiode nightglow.

The netbook is equipped with the Intel Atom N455 processor and a set of Intel NM10 Express microchips. The HP Mini 100e also has a gigabyte of DDR3 ram. The keyboard is protected against   moisture. The keyboard is 92 percent of the size of a typical keyboard. The device weighs around 1,45 kg.

The netbook can be supplied with a preinstalled Windows XP Home OS, Windows 7 Starter or SuSE Linux 11. Together with Windows, students also get a limited version of Microsoft Office 2010 as well as Microsoft Math and Microsoft Security Essentials.

Google Makes Search Results 50 Percent More Accurate

google_caffeineGoogle has introduced a new website indexing system called Caffeine. According to Google’s blog, the new index makes search results 50 percent more accurate as compared with the previous version.

Caffeine will have the largest volume of Internet content of all the other indexing systems used by the search engine previously. At the same time, Google reports, the index will be updated faster than before. Therefore, users will see links to new sites in their search results faster than before.

The blog also explains that the previous version of the index consisted of several layers which were updated periodically, with each layer being refreshed at different rates. The new index will analyze internet sites on a continuous basis in small fragments.

The total volume of the Caffeine database exceeds 100 million gigabytes. Several hundred thousand gigabytes of new data added to the index.

User testing of the new system began in 2009 and continued through November of last year.

Microsoft Releases “Cloud” Office

microsoft-cloud officeOn June 7 Microsoft Corporation released an office web-application package Office Web Apps for its “cloud” file storage system SkyDrive.

Any user registered with Windows Live can create, edit and download their office documents in Office Web Apps. The program also supports the creation of Word documents, Excel tables, PowerPoint presentations and OneNote notes.

Web Office doesn’t just operate in Internet Explorer but in a number of other browsers. Documents can also be viewed through a browser on smartphones. In the future, Office Apps for Web will also have an embedded system for accessing Hotmail .

The new service is available to all residents of the USA, Great Britain, Canada and Ireland. People in other countries can also use it. For this they need to follow a special link. Moreover, Microsoft gives no guarantee so far that the program will work smoothly with other languages as different from English.

Google to Release Chrome OS by End of the Season

google-chrome-osGoogle Corporation plans to release the Chrome OS by the end of the year, said Sundar Pichai, Vice President of Google, at the Computex computer exhibition, which took place in Taiwan.

According to Mr. Pichai, who supervises the Chrome project at Google, the first version of the OS will be developed especially for laptops. At the same time, the company will be quite selective in terms of the future distribution of the platform at the market.

It is also expected that the free Google OS will be made compatible with Microsoft’s systems which dominate 90 percent of the computer operation systems market. Google’s Chrome internet browser will be in the basis for the Chrome OS. Mr. Pichai also points out that from the very first day of release of Chrome OS, several web-applications supported by the browser will be available for the platform.

Google announced its plans concerning the creation of its own Linux-based OS in 2009, , (and it will be oriented to work in the Internet?).

In November the company demonstrated the OS and revealed its source code for developers. It was also revealed that Chrome OS will support HTML5 and Flash technology.