Custom Software Development

INDUSA Blog


Friday, May 29, 2009

Advent of Custom Software Development in India

Custom software development services and offshore software consulting services are being a rage and have redefined the traditional concepts of the IT industry. Today, the IT world is changing with respect to innovations and inventions which are pouring out at a frantic pace. Software development from offshore service providers have resulted in savings of billions of dollars, especially in the western world. Now all companies, big or small are inclined to opt for offshore software consulting services and try to avail its large benefits and services.

It is obvious that each and every organization or firm will have a different set of divisions as well as requirements. Most of the firms would not want generic softwares fulfill their tasks but will need tailor-made products to execute them efficiently.

Here is where custom software development plays an important role. As competition between companies is increasing day by day, offshore software development centres seek to capitalize on their manpower and economy to promote cheap services in the IT field. Looking at what the current economic scenario demands, the role of customized development of softwares cannot be ignored. It has been proved time and again that offshore development centres in India, China, and Phillipines have been instrumental in the profitability of many western markets within US and UK. Companies tend to save at least 75% of the costs through outsourcing software services to the eastern countries.

Additionally, every firm is searching for custom software development services in India for its cost-effectiveness, high quality software solutions, a financially cheap workforce which can perform and is result-oriented. The offshore partners also invariably use cutting-edge technologies for providing stat-of-the-art services tailored towards a firm’s business needs. Another benefit of custom software creation and development is that companies need not buy generic office software and then adjust according to the software’s features. Furthermore, the companies wouldn’t also want to shell money for its licenses, especially when a custom software product can be bought with a one-time payment.

It is also essential to approach a right company or right software developer. The requirements should be properly conveyed to the offshore company before it starts work on the project.

The software developers one engages should also have sound software coding sense along with the ability to comprehend the business requirements. It is also essential to take care of the expenses and the estimation which the provider has quoted for its services. Any deal between the software provider and the client company should be beneficial and lucrative to both the parties to commence on custom software development services project proposed by the client.

Labels: , ,


Wednesday, May 13, 2009

Software Testing Services — an Overview of Types of Performance Testing

Performance testing is an integral part of the whole software testing process. It can be divided into:

• Load testing
• Stress testing
• Endurance testing
• Spike testing
• Capacity testing

Load testing:
Load testing involves performance testing which is centric to the determination or validation of performance characteristics of the software product under test. This is basically accomplished by subjecting the software to different workload models and load volumes which are anticipated beforehand.

Load Testing helps to evaluate the competency of the load balancer. It also detects functionality errors during the process and determines the scalability of the application. Load testing assesses whether the database server can handle data of a particular size and the number of users it can handle at a time.

Stress testing:
Stress testing is an important part of software testing process and is a vital part of performance testing. Stress testing is focused on determining under what conditions an application can fail and how. It also monitors the indicators which can warn the user of an impending failure. Stress testing uses ways to test if data can be corrupted stressing the system above its capacity and establishes application monitoring triggers to forewarn a failure.

Endurance testing:
Endurance testing is focused on determining or validating performance characteristics of the product under test. Endurance tests slow memory leaks and checks for performance degradation due to insufficient data storage capacity. It also checks for consistency in performance, the outward threats which might hamper performance etc.

Spike test:
Spike test helps to identify memory leaks, Disk I/O (thrashing) etc. It also assesses likely scenarios like what would happen if the peak load is underestimated and planning of strategies to ward off chances of failures.

Capacity testing:
Capacity testing is a software testing process which is related to stress testing. It assesses the server’s ultimate failure point. The tests are basically to assess future growth, such as an increase in the number of users and helps in chalking out a scaling strategy. The process also helps to provide actual data to validate or enhance their predictions. Capacity testing involves determination of the current capacity of the system to help in capacity planning.

Performance testing is in short, a software testing process, done in another perspective, and is used to determine how well a system can perform under a particular workload. Performance Testing itself has a lifecycle which includes RequirementStudy of the Performance needs, Design of the Scenarios that would be carried out, Execution, Analysis & Identification of the Application Bottlenecks. Performance testing is evolving as a separate science with the help of several testing tools such as Rational Performance Tester, HP's LoadRunner, SilkPerformer, TestComplete, WebLoad & open source tools like OpenSTA & JMeter.

Labels: , , ,


Tuesday, May 12, 2009

Effective Database Archiving Solutions, Are They Useful Enough?

Most of the companies’ information originates and gets stored in a database or databases. Most of them use a database: Oracle or Microsoft SQL Server for their business applications whether it be financial, human resources or any other sector. That is why it is essential to have the Oracle database archiving solution in every company. Over a period of time, these applications fill up the database with every transaction and record there is, to be updated. This causes the database to get overloaded causing performance problems.

Here are the scenarios when database archiving solutions are not used and database information is kept on primary storage:

a) If the production database is kept intact, there might be performance issues creeping up. This causes the application to respond slowly because it is handling data much more than what it can actually do. As a result, queries are slower, updates take much larger time than earlier and the application runs not in the optimum form.

b) Data retention might be the right approach for compliance issues, but it is very expensive. This is because data is stored on the production server or primary storage which is costly in itself, the most expensive part in a data center. Data is exploding day by day, and keeping redundant data or data which is rarely accessed in an expensive medium is not the best way to spend dollars in this tight recession.

c) Inertia or inactivity is another way to face the problems which means that the database administrator does not have any solution for it.

Here are some of the benefits of implementation a database archiving solution in an enterprise:

1) Improvement of availability and performance of the production server for transactional reasons.

2) Meeting of SLAs (Service Level Agreements).

3) Improvement in user response times.

4) Less data to manage, hence less costs incurred in data management.

5) Quicker and efficient data backup because of less primary data stored in the production server while all static data is transferred to the archive.

6) Quick and timely response to compliance & eDiscovery requirements with an archive that automatically manages data retention, security and immutability.

7) Reduction in storage costs with a significantly reduced cost per GB.

ArchivePlus v1.0, the Database Archive and Purge Solution created by Indusa is now published in the Intel® (Intel® BX) Business Exchange Software and Partner Directory.The database archiving solution gives SQL access to archive and has the ability to use standard SQL and enterprise reporting tools to access archive data. It provides transparent application access and helps management of archived versions. ArchivePlus also provides extraction of selective data that can be purged or archived along with the feature of scheduler integration — the ability to schedule any of the archiving activity.

Labels: , ,


Friday, May 8, 2009

The Software Testing Process and its Types

Offshore software development centers in India have started out with independent testing services and quality assurance software testing. Some of the software testing types covered are:

1) System Testing: This includes complete product feature testing through Functional Testing by taking into account the business functions mapped with the implemented modules. Other areas covered are overall navigation, browsing features & GUI part of the application.

2) Regression Testing: It is carried out for each of the test cycle to validate the impact areas due to code change/fix. Regression testing is support with the use of Regression Test Suite & Traceability Matrix to identify the change impact.

3) User Acceptance Testing: SME’s & Domain Experts carry out the test to ensure that the software is as per the business requirements.

4) Compatibility testing: This test is for assessing the compatibility of the software on various systems of different domains, platforms, and interfaces. This is solved through virtualization, which helps in optimum utilization of resources.

5) Performance testing: This test is particularly with respect to web applications like CMS and interactive software. This is to gauge the performance of the different applications. Simulation tools are used for the same to check the stress (stress testing), the load which can be handled (load testing).

6) Integration Testing: Testing is done related to the integration of different modules in a logical manner for providing a seamless effect between modules.

7) Unit Level Testing: This type of testing involves tallying the specifications sent by the client with the product design. The process involves QC on the various intrinsic modules of the software.

8) Security testing: Security testing involves security measures and penetration testing of softwares to find traces of SQL and HTML injections as well as cross scripting, and get rid of them.

9) Alpha testing and Beta testing: The program is tested by third party users but only to a limited segment to remove left out kinks and errors.

10) API testing: APIs are basically used as a communication medium between the drivers and the systems, and are based below the kernel level. This test involves testing of APIs (application programming interfaces).

11) Black box and white box testing: Black box testing involves testing of output with a preset input to a certain application and test on the basis of results only. White-box testing is testing of the overall input-process-output streamline which pays attention to detail.

Software Processes involved throughout STLC (Software Testing Life Cycle):

- Test Maintenance: Execution, tracking, and analysis for an integral part of test maintenance. Tools such as Rational test manager, and quality center are used and test cases are made along with integration and management of scripts. Defects are also detected, if any.

- Test Automation: This process involves usage of automated tools to form test cases and analysis of results. E-testing is also a part of test automation which performs tests on e-commerce applications.

- Defect Management: This process involves task of logging, tracking & analysis of the defect that are found throughout the Testing phase. Defect Analysis is carried out with the view of identifying root cause & the preventive actions that needs to be carried out. Tools like Rational ClearQuest, Quality Center & other bug tracking tools are used for the same.

- Test Environment Management: This process involves task of setup, configuration & regular upgradation of Test Environment that would be used for Software Testing. Virtualization tools are used to setup Test Environment & Automation is done to ensure timely deployment & configuration of the Test Lab.

There are many other software testing types and processes along with approaches. It primarily depends on the client if he wants to rely on a provider of independent testing services or a quality assurance testing service provider or someone from its own in-house team of developers.

Labels: , ,

Top