Sunday 19 August 2012

Architecture principles for different businesses

If you are in a position where you have to architect enterprises and different business applications where you have to use different COTS products & come out with architecture solutions around these products. Then you should follow these easy and simple principles that would help you architect different solutions for your business. The first rule is to keep everything stupid and simple. You should not use complex and complicated words or terms that would make the readers scratch their heads. Some people think that the more complicated the more professional which is terribly wrong because if the readers do not understand it then it is of no use. So make sure to keep everything clear and a simple for the stakeholders whether its IT, Infra Team or Business.

The second principal is communication. Maintaining a strong network of communication of architecture to the whole team is essential and vital to the success of your solutions. This includes both external & internal stakeholder’s teams. Your side includes the development, deployment, testing and PMO teams. As for the other side, the client’s side it includes IT, security and business. Connecting all of the above teams together is one of the ingredients of success.

The third principal is the flexibility in the requirements. You have to be prepared and ready to accept changes that might occur. This is essential because as much as we would like for everything to stay the same but things change. For instance the requirements that always change include HTML appearance, the layout of the content and so on. On the other hand there are requirements that never change such as auditing, messaging and logging. This is why in order for your architecture solutions to work, it has to be flexible and for you to accept changes. Not only to accept them but to be prepared for them and to expect them.

Lastly, in any given architecture project and design, decisions will have to be made. People tend not to take decisions in order to avoid the risk of being wrong. The best thing to do is to take a look at the data and information available and to take decisions according to them for the project to move along. Even if you are wrong, the project and the design will move on. Plus, you gave your best decision according to the available data. So you did the best you can with what you had.

Click here to know more about Architecture.

Thursday 16 August 2012

The difference between architecture & engineering

The question that has kept all the art historians and philosophers wondering and yet failed to find a clear and a specific answer, “what is architecture?” Not only them, as many of us find themselves wondering the same thing. It can be explained as any piece of work that has some sort of substance that has acquired a physical state. Any work that has the mentioned characteristics would pass as being architecture.

Whenever an architect starts his project, his main goal is to capture and realize a dream that he has in his mind. Every architectural design is aiming to achieve a concept or a goal that is set by the architect himself. This dream or goal can be a form, a function or a philosophy. An architect uses all of his past experiences and collective knowledge to achieve all of that, the end result of it all is what architecture means.

Some people mix between architecture and engineering. They think that they are the same because they both result in buildings and construction. They cannot be any more wrong. There is a very thin line between architecture and engineering. Engineering is the act of eliminating any kind of emotions or feelings while designing, this result in an emotionless design that is very objective and has the function as its first and only priority. On the other hand architecture is the absolute opposite of that as it is all based around the emotions, feelings and dreams of the designer and architect. The end result of a design made by an architect would be the result of all of his emotions and feelings. This is why the design is not revolved around the objectivity which is the function but rather around the emotions and dreams.

To sum it up, the difference between engineering & architecture lies in the emotional force and philosophical concept of the architect that is embedded into the design. For instance, reading a script of an opera and reading it objectivity from the paper differs completely from hearing it and seeing it being performed on stage. You will certainly feel a rush of emotions and feelings when watching it and you will not get that feeling if you are just reading the notes and the script objectively from the paper. This is why architecture is looked upon as a piece of art and as any piece of art, it has to be filled with emotions and as far as it can be from subjectivity.

The steps of release management

Release management can be applied on the whole company or an organization in order to achieve great success in any given project. The first step that would be undertaken by an organization in order to implement release management is to set a group of applications to be recognized as the goal and the target of the project. These applications would include vital and essential applications such as business terms and SoX managed applications. Also schedules should be set to identify and allow changes to occur. These changes are developed and then conveyed to a production control team. The setting of these applications should be accompanied by a less known implementation which is the development of different policies for the above mentioned applications in terms of release management.

The next step is the mapping. At this step, a great amount of tension would occur. This mapping process basically studies and sets what is going to be changed and when is it going to change in respect to the current time schedule. In the usual cases, the mapping plan or vision would have two years in horizon. One year, or twelve month would be firm and ninety days would be locked. Of course, big organizations that develop services or products plan to be very responsive to the client and users. So if an organization is trying to achieve a specified goal or target, locking ninety days will obviously not work. Also there will be no horizon of two years; it would only be a six month horizon.

There is another huge problem that would face the release management of regular projects. The fact is that any given framework and time schedule includes the project itself but it doesn’t allow for the sudden changes that has to be made. Sometimes the whole plan and scope of the project can change in the middle of it which will need more time. So if the timeframe if the project didn’t account for that, it would be a major setback.

Although, once the project’s goals and requirements are set and specified clearly, there should be no delay what so ever in the deployment of the project. There also should be no need for a schedule that has more than ninety days in its horizon. In order for a release management of a project to go as smoothly as it can be, it has to account for all the above mentioned problems and address them in order to avoid any setbacks in the project.

Click here to learn more steps in release management and hire expert in release management.

The tasks of the release management staff

Back in the 80s when organizations first decided to automate their systems, it was the role of the project manager to oversee and supervise the development. The functions that could be done by using an IT system were very limited and the work that had to be done was distributed between the manpower and the computer. For someone at that time to become the leader of the project or the release management, he didn’t need any certifications or knowledge in the language of programming. All what was needed is for him to be successful in analyzing business systems.

In this day, it is a different story as the management systems now are 100% automated and the role of manpower and the human agents have been decreased drastically until it became minimal. This is due to the fact that many decisions that had to be taken by the human operates are now being taken by the computers and the automated management system. Any management system has to be accompanied by 3rd party applications and programming languages.

Only a few decisions have to be taken by the head of the release management team. This is why these decisions would require the release or project manager to have a specific amount of knowledge in programming language in order to take decisions related to it. This is why he will need to be familiar with the various 3rd party applications in order to make the best decisions and to choose the best one that would fit the system.

This is why the only persons who have enough knowledge and familiarity with the programming languages and the 3rd party applications available on the market and their efficiency with the programming language that the management system uses can become the head of the release management team. After the system successes in passing the testing stage, any mistakes that are found and discovered by the configuration manager are then conveyed to the head of the release management team. The release manager then sends the system back to the software developers in order to carry on the necessary tweaks and changes to avoid such defects. The very first two steps will keep repeating until the program is found perfect by the configuration managers in order to make sure that the final outcome of the program doesn’t contain any errors. Of course, even after the implementation, there will still be the need for the developers to give the release manager the IT support he needs.

Visit http://www.tlconsulting.com.au/testing-services/release-management to know more about release management.

The problems that face release management

In order for release management to succeed and achieve the expected results it has to begin with analyzing the problems then propose different solutions and finally to apply tremendous effort implementing these solutions. There are several problems that face any company or an IT firm that tries to implement it.  The first one that causes a lot of confusion is defining and understanding what are the things that fall under the control of release management. This is why the first step is stating and defining what is under the control of change control and what is not.

For example, for an IT business the things that would be under the management of release management will include several things. These things include anything that is related to network configurations and any changes with the production computing environment of the data center. This includes application software changes that are asked by the customer or the IT team. It also included any upgrades that need to be implemented to the infrastructure of the server or the network which includes DBMS, hardware and OS among others. As for the things that were not included. It was the needed application fixes for the emergency production software. Any emergency fixes should be the responsibility of the software developer team and its manager and not the responsibility of the release manager.

The second issue is to know who is responsible for what parts of the project. The projects are always managed from the start to the end by project managers. The problem is at any big organization, any four project managers would have from two to five projects under their control. These projects include fixing bugs and client service change among other things. This is why each project manager has to know his own tasks and to recognize the tasks of the stakeholders. Release management will succeed if the release manager himself known his tasks which will then be conveyed to the different stakeholders who will then recognize the scope and the tasks tasked to them.

The solution for this problem is SPOC. SPOC stands for single point of contact. This was a great model to be used in order to follow the responsibility of different team and team members and to hold every one accountable for his responsibility. By using this model, the SPOC, it was easy to follow the progress of each team in order to hold them accountable for their outcome.

How important is the process of software testing?

Businesses involved in software should always make sure that their software product is free of bugs, and almost there are errors or any kind of risks which cause problems to their customers(end-users), should be fixed before releasing the product to the market. Even though it is not possible to deliver 100% bug-free software product, software businesses should ensure that their product is almost free of all possible bugs/errors. To do so, they should follow software testing procedures or any kind of other testings from start to end of software development.

Software developing industry is very competitive industry to do business with. There are many software products compete in the market for a particular problem/need of customers. For an example, there are various software products like SAP, Tally and etc are competing in accountancy filed. So, it is very important that the software which you produce is very reliable, user-friendly, functional, secure and etc. Specially if a software provides solutions to business functions like accounting, it  has to be very secure, specially  from cracking, hacking and virus attacks to end-users' data. To do so security of the product should be tested well during process of software testing.

Usually there are software firms run out of time for extended testing due to tight deadline and/or delays on earlier software development phases. It leads to release the software with bugs/errors, which in return gains poor reputation to the brand. To overcome such things, software testing should not be omitted/ignored/shortened. Overall Software testing cycle should be followed. Alpha testing, beta testing, verification & validations too have to be considered during software testing process.

Unit testing should be carried out to ensure each unit of the software, operates correctly. Apart form that when the units are integrated, integration testing should be carried out to ensure software units continue working properly when those are integrated. Assuming that integrated software will work fine because of unit testing is carried out and all units are working well, there are cases where integrated software fail to work well, so integration testing is the must.

Software should perform what is supposed to perform in other words,  software should perform as what stated in software development specification which is filtered out/translated from customer requirements. To test this performance testing should be carried out.

Functionality of the software also important to compete in high competitive software industry. Each functions should work properly, individually as well as when those are integrated. Functional testing should be done to do so.

Regression testing also important when some reported issues are fixed. Other than that compatibility and usability testing should be performed before final release of the software product.

Beta version of software can be distributed to other/existing customers, which allow customers to work on it and report any issues. It helps to find out errors/bugs under different environment.

Finally even software testing is time consuming process. It is very essential to deliver quality and error free software product which in turn gives more high brand reputation and more businesses in near future.


Software testing : Things to know about

Software Testing Vs Software Quality Assurance
Executing software program purposefully with intention to “find bugs”, “measuring quality, security, functionality and performance” can be defined as software testing. Making sure that the standard procedures are adopted in all the phases of SDLC (Software Development Life Cycle), monitoring & improving process of all phases of SDLC and intend to solve identified all the problems is known as software quality assurance. Software testing is done to detect errors and Software quality assurance is oriented towards “prevention”.

SDLC Vs STLC
Preliminary analysis, Systems analysis, Systems design, Development, Installation & deployment and Maintenance are phases of SDLC.

The need of software begins when a business is in need of computerized solution for its problems or when the business identifies the opportunity for computerized solution. As next step, goals and scopes are defined along with system boundary, cost-benefit analysis and feasibility study. Then, project development plan is developed and other planning documents are prepared. Once that is done, analysis of user requirements is carried out and detailed functional document is developed. On the next phase the requirements are transformed into system design, and then the system design is converted into information system - at this phase system installation, creating and setting up the databases, coding, compiling and refining the programs are done.

Further in testing, STLC (Software Testing Life Cycle) is applied, which has the following phases:
System Study
Test planning
Test case preparation
Test case review
Execute test case
Identify bugs
Report bugs

Types of testing are Defect testing the failed scenarios, including defect tracking, Path testing, Data set testing, Unit testing, System testing, Integration testing, Black-box testing, White-box testing, Regression testing, Automation testing, User acceptance testing, Software performance testing

Once the testing phase is completed, system is implemented in production environment and further maintenance is carried out.

Further on Software testing
Test bed :
Test bed is setting up environment for testing, which includes configuring specific hardware, operating systems, network topology and etc to perform testing. In detailed test plan, “Test bed” should be consider in first point.

Test data :
What data to be tested with the software program. It is used to test effective controls of software with input.

In software testing, term “error” means - deviation of actual and expected output, term “bug” means - the error which can be found in development environment before delivery to customer and the term “defect” means - error which can be found in delivered product to the customer.

Reasons for errors on Software:
Communication gap on what the application should & should not do
Programmers mistake in codes
Changes of requirements
Running to meet deadlines

Only few things about software testing is discussed above out of several points to be considered about software testing.

Wednesday 15 August 2012

Essential of Software testing

Usually time allocated for software testing is less compare to other areas of software development. There are situations where actual testing is performed more quicker than actual allocated time for testing. Because, there are software developing companies getting pressure from other stakeholders like marketing team, management team and etc. The reason for the pressure may be the marketing department and management team may have allocated lots of money in advertising and promotion activities, as a result they always need to launch the product in time, even they prefer sooner is better. That obviously put less time on testing.

Usually, taking the software to end user is the goal of marketing and management teams. But it has to be ensured that that end users will not find any serious bugs on the software. That kind of considerations make stable positions for software in the market. Bugs in reporting format or etc usually has less impact on software product and end-users, anyway which should be fixed in upcoming releases of the product. Bugs like loosing data or crashing the program may cause serious impact on end users' data as well as on stability of the market for software. When software testing is planned, critical areas where system may crash or loose data, should be given high priority in testing.

Software testing includes quality assurance, validations and performance testing and etc. When planning a testing, specific areas should be tested, for an example if the performance testing is planned, there should not be more focus to be given to quality rather than performance. Such mis-leading things may lead to have hidden bugs in the software.

Nowadays software testing become very important in-order to deliver quality products which leads more need of software testing professionals and there are certification are introduced like ISEM, ISTQB and etc for software testing professionals. It is good news. However, it has to be noted that, software testing can ensure quality but it cannot ensure BUG-FREE.

Tuesday 14 August 2012

How to Use Web Testing Scorecard

Web testing scorecards will concentrate mainly on the GUI (Graphic user interface), GUI is used by websites to enable the users to browse easily within the pages of website. The website’s GUI functionality has great impact on the amount of traffic generated by a website.

GUI is created to provide effective control to the users on computers. In this case, control means the flexibility with which the Graphical User Interface reacts to the commands of users. Developing the website’s GUI quality will be the first thing that a web test scorecard will attempt to achieve. Logically the goal will be to give users the required graphic interface functionality by making use of the most appropriate web technology that is available.

The homepage will get the initial attention naturally, while testing a design of the website. The questions that you may ask here are: how the homepage is found by a visitor? Is easy navigation with the pages of website is allowed by the homepage menus? Does the design of the homepage and building inspire more visitors? Being biased, owner of a website or developer will tend to provide desired answers but there is a good and more precise way of measuring the functionality of homepage and that is, to ask the users about their opinion.

A web test will decide the efficiency of GUI by measuring the flexibility and speed with which users browse from the homepage to other pages of website and back and to link with important links. A good GUI pattern will often give obviously located navigation points in every page and graphic buttons that give graphic recognition, which informs searchers they are still within the domain of a website.

The creation of the site should give straight forward links to embedded pages within the website. A well planned GUI will not fall short of links that will make the searchers to come back to the homepage, otherwise, they will be clenched in the page and will not have any opportunity to come to other pages of the site. Every page should have links to other sections and pages, which is even better.

Interface speed is another web test that is good for measuring the functionality of website. Users are believed to give only 10 seconds of waiting time to enter websites before going somewhere else. This means, website interface should be assembled with access speed of majority users. Searchers on internet usually use dial-up connections. So it has to be aligned by considering that speed.  

Hire web testing professionals today...!!!

Monday 13 August 2012

Common Questions of Software Testing

1. What is quality assurance?
Questions and Answers of software involves the complete software development procedure, administering and enhancing the process, assuring that any standards and processes are followed, and making sure that standards and processes are followed, and making sure that issues are found and solved. It is correlated to prevention.

2. What is the Intention of testing?
Software testing is the procedure used to assist recognizing the security, quality, completeness and corrections of the computer software that is developed.

3. What is the distinctness between testing and QA?
Testing includes working of an application or a system under restricted conditions and assessing the results. It is aimed to detection. QA of software includes, ensuring that certain standards are followed properly, and also making sure that the problems are solved properly.

4. Explain the Life Cycle of Software Development
Aspects such as working design, documentation planning, coding, document preparation, functional design, retesting, requirement analysis, initial concept, integration, testing, phase-out, updates, maintenance and others are included in it.

5. What are STLC and SDLC and other phases of both?
SDLC includes coding, testing, release, design phase, requirement phase, maintenance. STLC includes report and defect, tracking of bug, test case review, test planning, system study, performing test care, writing scripts or test care.

6. Test bed, what is it?
Test bed is an accomplished environment composed for software testing. It includes particular hardware, operating system, product configuration to be under test, network topology, system software and many other applications. The test plan for a project has to be established from the test beds.

7. What is the meaning of Test Data?
Test data runs through a computer program for testing the software. It can be used to test the compatibility with efficient controls in the software.

8. Why there are bugs in software?
No communication or miscommunication about the information of what should be done by an application or not. Programmers can make the mistakes in some cases. There are also possibilities that the end user not comprehending the effects of changes, or may request them to redesign it anyway, effects of other projects, delaying the engineers, work completed already may be have to be done again. It is not very easy to prepare the software projects at best, they often need too much of guesswork. Mistakes are bound to happen when the crisis comes and deadlines are provided.

The Basics of Software Testing

The basics of software testing are the first piece of the ISEB Foundation examination and course study syllabus. ISEM suggest that students of Foundation spend 20% of their time of study on the basics of section of Fundamental course. The tile of the opening chapter is The Fundamentals of Software Testing in the official manual of ISEB software testing.

Determining the fundamentals of software testing is very important to accomplishing proficiency according to the professional standards of ISEB. But what, exactly are these basics and what do you need to understand to the examination of ISEB Foundation?

The necessity of testing: Peter Morgan, a freelancer testing practitioner and ISEB Accreditation and examination panel member says that, a needlessly high amount of IT systems are unsuccessful to fulfill expectations or fail to work, because of inadequate software testing before the release.

Software testing cannot assure against software issues, but it can reduce the dangers of faults developing when the software is working. It is important to take the causes and effect of IT systems failure, and important role played by testing in quality assurance into account, in order to understand the necessity of software testing.

The five most important learning requirements to be focused by The ISEB Foundation are:
1. The potential force of a failure of IT systems.
2. Effects and causes of software failure.
3. The necessity of software testing.
4. Fundamental terminology of industry.

Meaning of testing: It is a technique of recognizing mistakes in the product before the release, this consists faults in its execution and the software code, also any type of potential space between job of code and what it exactly does.

The examination of ISEB Software Testing foundation needs students to:
1. Understand the fundamental objectives of testing.
2. Know how these objectives implement in the context of using, supporting and creating software.

General principles of testing: The students in ISEB courses are introduced to 7 principles of software testing.
1. Testing can prove that complications exist, but they can’t show that the problems do not exist,
2. It covers a restricted category of sample conditions, and is not all inclusive.
3. When the problem is found sooner, the cost of fixing it will be less.
4. Imperfections are more likely to align around particular areas. These areas can be specifically aimed by testers.
5. A test set that run repeatedly will have abating effect.
6. The kind, pattern and concentration of testing will differ depending on the software tested.
7. A test that doesn’t show errors doesn’t prove that software is free of errors.

Get Testing services today with help of TL Consulting based in Australia.

The Necessity of Outsourcing Your Software Testing

According to market research studies, 40% of undecided application break time is brought by failure of application or bugs, 20% by hardware and 40% by errors in application, disasters or environmental aspects. So, 80% of unexpected downtime can be eliminated by IT process improvements, complete training on operations and pre-arrangement testing. This is important, but it is not certainly the main activity of majority organizations that require it. Outsourcing the software testing process will help a company to focus on its other core activities while the software testing work is handled by the experts proficiently, making sure of quality results. The company will save time and money on the procedure that would be too annoying and pretty tiring if done internally.

Importance of Software testing: Software testing is an important step in any project of software development. Testers and developers should make sure that products that are newly developed match the performance and practical requirements and that those products are trustworthy to function constantly under each circumstance. The dangers of launching a product that is not accomplished fully are abundant now than before because of the change in demands and assumptions of the end consumers.

A consistent approach to quality, started early in the lifecycle of software, can reduce the cost of accomplishing and maintaining the software considerably. This largely minimizes the risk related with arranging low quality software.

The important improvements that come along with aligning software testing and accent the normally mentioned reasons are as follows:

1. Save money and time by recognizing defects sooner.
2. Reduce and avoid downtime of development
3. Give better customer service by developing a better application
4. Understand the requirements of users and satisfy them
5. Construct a desired modifications list and improvements for later version.
6. Recognize areas where developers and programmers require training.
7. Recognize areas where developers and programmers require training

Providers concentrate mainly on quality of product, which is determined through the below mentioned basic practices:

1. Find defects of software quality in documents.
2. Suggest on the noticed quality of software.
3. Prove and authorize the assumptions made in pattern and requirement features through strong demonstration.
4. Authorize that the products works according to the design.
5. Authorize that the requirements are applied properly.

Visit http://www.tlconsulting.com.au/testing-services to hire software testing professionals.

How to Chose a Software Testing Company

A software tester is the main area to concentrate while determining a company for software testing. There are two most well-known certifications these days and they are ISTQB and ISEB. Try and make sure that the testers that you chose have these certifications at base level. Another important factor related to software testers is their level of experience. Lot of software testing companies claim that their testers have I.T experience of five years, that means they have these five years of experience anywhere in Information Technology field. While choosing the software testing company, you should ask them about the actual years of professional software testing experience.

Most companies that test software offer a large range of services related to software testing. You should be very cautious while hiring them, as most of them will promote their services but it is not necessary them all of them have the proficiency or skill to do that. There are various types of software testing service that should be offered by professional companies and two of them are as follows:

Functional Testing: Usual products related to software these days include huge amounts of important functionality and difficult features, functional testing becomes most important in development of any software when added to the most important time stresses to have the product launched. Manual functional testing methods of a software tester have been shown to be very efficient at actually deciding whether the functionality actually works or not. Flexible software testers can operate from their own test cases or utilize any already existing test cases. Good software testers effortlessly make use of ad-hoc methods while accomplishing any tests to increase the coverage of test. The main intention at the time of occupational testing is to focus any issues as soon as possible so it can be clarified by the developers. This can of course efficiently minimize the development costs to the company.

Creation of Test Case: This is a famous service that normally involves making elaborated test cases, these cases can be used not only project under test, but also because of their high quality can be used again on upcoming projects and shape a good quality asset of test documentation. Reputed testers will gather all the necessary information to generate the test cases, normally from design documentation, developer interview and other needs. When the information has been observed, software tester will make a cultured spreadsheet of excel which consists of version details, test cases, environment setup and result sheets. In each stage of development of test cases clients are involved in the form of a process of test case review.