Tuesday, February 5, 2013

QA Standards and Processes in a Product Development Scenario



Introduction:
In current scenario maintaining a full fledge QA standard process is must for a product based environment. If a given QA standard is followed in a proper way, it will always leads to a well defined user oriented quality product. Maintaining a QAStandard Process in a Product Development Scenario is very crucial and important. A software process provides a framework for managing activities that can very easily get out of control. Only a good software process can leads to a good high quality software products. The best indicators of how well a software process has worked are the quality, timeliness, and long-term viability of the resulting software product.
The Two Principles included in QA are: "Fit for purpose", the product should be apt for the intended purpose; and "Right first time", mistakes should be eliminated as and when it occurs.

Processes for Maintaining QA Standards:
1
 Waterfall Model:Designing a base system, Implementing to a system, Verification and Maintenance, just look like flowing steadily downward.
Initially, requirement review and Test Planning for a given product is done. Then Test Cases Designing is done using Test Cases review is performed. In this continuation all test execution functional, Usability, cross browser, Security testing is done to Log all bugs in each cycle. This is continued by the resolution of bugs accessed through a proper regression testing.

2
-      Agile Test Framework: In agile framework the process is performed in a very close vicinity of both Developers and Testers. In fact QA plays an extensively vital role in development phase only. The development is done in a break up released cycle followed by a software testing process. Development is performed in smaller chunks before the release is done. The entire team takes the responsibility for maintaining the quality. The process involves just the right amount of documentation. The response must be very fast and quick. Offshore QA team always plays a very vital role in agile framework. Analysis of requirement and discuss on any queries related to any business flow and scope through mails/scrum call is done.


3
-      Rapid Action Model:  This model promotes strong collaborative atmosphere and dynamic gathering of requirements. It uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. Business owner actively participates in prototyping, writing test cases and performing unit testing.

4-      V-Model:  This Model was initially involved from waterfall Model.  Every single phase must be completed before the next phase is started.  This is not a linear process like waterfall, the process steps is bent upwards after the coding phase that gives a typical V shape.  Testing is emphasized in this model more than in the waterfall model.  It is a structured approach to testing.  Brings high quality into the development of the products. Majorly this model initiates from Unit testing to Integration, system and acceptance testing. V Model restricts the fault multiplication that avoids the downward flow of defect. Automatically quality and reliability is improved and amount of Re-work is reduced.  Validation and Verification at each level of stage containment that allows testers to be active in the project early in the project’s life cycle.
  • Unit Testing: The most minimal level of Testing. A unit is equal to smallest software component that can be tested. It involved the Objects, methods and Procedures performed by Programmer. A tester can always help to ensure that the component is working according to the detailed design to build the specifications of a module. It is also called as component, module, or program testing.
  • Integration Testing: Testing of more than one unit together to see if the function runs correctly. This focuses on interfaces or Communication between several units and is done using the integration test design prepared during the architectural design phase. It helps to assemble to increment a whole system just to ensure the correct ‘flow’ of data from the first to the last component. It is done by both developers and testers in collaboration. This is also known as Interface Testing or Assembly Testing.
  • System testing: This is also known as the system as a whole or a Black-box type testing which is based on overall requirements specifications and covers all combined parts of a system. It ensures that the system must meet all functional as well as business requirements. It focuses and verifies the specifications. It validates the system that can be used in the intended purpose. The system test design is derived from the system design documents and is used in this particular phase.  It may involve a number of specialized types to check performance, stress, documentation etc. Sometimes testing is automated using appropriate testing tools. It is done by an Independent testing group.
  • Acceptance testing: It is used to determine whether the given system satisfies its acceptance criteria with business requirements or not. This is similar to system testing in which the whole system is checked, but then too important difference is the change in focus. It is always done by the real business users. It enables the customer to determine whether to accept the system or not. It is also called as Beta Testing, Application Testing or End User Testing. Customer should be able to perform any test based on their business processes.
Business Users Involvement:
All test cases must be approved from the Business Team. Test Plans must also be shared and approved from the Business Team. Bugs must be assigned to the business users who are directly related to the requirements or changes for closure. A thread may be opened to the business user for any requirement clarification which is not cleared by the Test Team. Testers can provide a weekly status to a Business Team to make sure that the requirements are being met and all pending issues can be discussed. Release notes must be Business Users centric. Before signing off every build approval should be from the Business Team. One common test environment should be arranged where test and Business team can test and build together on the same database. Any Change Requested must be converted to use test cases is approved from business team.
Bug Regression will be the main concerned throughout all given testing phases. All bugs that are resolved as “Fixed, Needs Re-Testing” will be regressed when testing team is notified of the new drop containing the fixes. The Test Lead will be responsible for tracking and reporting to development and product management the status of regression testing. Testing will be suspended on the affected software module when various levels of test case bugs are discovered. Testing will always be suspended if there is critical scope change that impacts the Critical Path. A bug report should be filed by Development team. After fixing the bug, Development team will follow the drop criteria to provide its latest drop for additional Testing.  Adopters will always regress the bug and when it passes continue testing the module.

Conclusion:
There is always a question arises what to review in a proper assigned manner to assure a given QA standard process is followed. There are many tools and techniques that are available to use. A proper bug free testing always requires a proper tester's creativity, experience and intuition, together with proper techniques. Testing is more than just debugging. Testing is not only used to locate defects and correct them. It is also used in validation, verification process, and reliability measurement. A good tester must always conduct a proper gap analysis to evaluate the project results and match the original objectives. He must review all delivered documents and ensure either that these have been delivered to an acceptable level of quality, or that an acceptable substitute is in place. If still gap is there, the given project goal must be achieved where error rates must be minimal. The necessary controls and systems in place must works properly. A proper established QA standard process not only assures a bug free well established software product within budget.

Thanks,
360logica Business Team! 
www.360logica.com


Wednesday, December 5, 2012

Mobile application testing - Best Practices



The need for mobile application testing has increased manifold following fast expansion of the telecom sector. Daily new mobiles are introduced with multiple operating systems, variety of hardware specifications, and wide-ranging software applications. Many third-party applications compatible with advanced mobile phone versions are also unveiled. All these underlined by concern for performance and user acceptance demand foolproof and comprehensive mobile application testing.

Understand Mobile Application Testing
A thorough understanding of applications put for testing is a perquisite. Check whether it is developed in-house or by third party. For in-house software, mobile application testing should be run simultaneously during the development process. For third-party applications, a complete review of structure, function, update frequency, security, stress, and support options is required. Mobile application testing is required to examine all device feature requirements for GPS, Bluetooth, Wi-FI, games, and others. Their performance, accessibility, and security perspective must be clearly understand and authenticated. The focus should remain on what type of platforms the application is meant for, what are high risk areas, and who are the targeted audience.

Types of Mobile Application Testing
       Functional Testing: Mobile application testing examines functionality of software and its integration with device, OS platforms, and technology. It looks into the compatibility issues, intended functional results, and ability to offer users a fulfilling experience.
       Usability Testing: Carried on from a customer perspective, this type of mobile application testing checks if it is easy to understand and use the application, allows a good experience, how it differs from other applications in the market, and it meets the OS requirements intended for.
       Performance Testing: Mobile application testing is carried out to identify problems related to network, display, speed and stress, graphical interface, power utilization, etc, that impact performance. All limitations are delineated and improvements are marked.
       Security Testing: All penetration and firewall problems are sorted out to ensure that no one can access information on your device while using a particular application.
       Crash-Free Testing: This enables to check stability of the application and ability to take load. Testing experts also examine if its impacts other applications leading to bad user experience.
       Peer Testing: This mobile application testing is conducted in a real-time environment and companions are challenged to find out drawbacks. 

Mobile Application Testing: Three Key Challenges
       Platform Diversity: The ever growing variety of mobiles in shape, screen size, hardware, and operating system calls for mobile application testing astute skills and expertise. An application must be widely tested for its compatibility and flawless functionality on all platforms.
       Rapid Technological Changes: The fast-changing mobile technology poses a challenge for mobile application testing experts. The older technology is becoming obsolete rapidly, and new platforms are introduced by competing manufacturers quickly. Testing experts require to update their knowledge and skills effectively in the changing scenario.
       Cost Vs Skill: Soaring competition in the market calls for low cost and high quality mobile application testing services. Balancing cost with the demanding technical and skill requirements require astuteness on the part of testing companies.


Thanks,
360logica Business Team!
www.360logica.com


Independent Testing services Mapping Advantages



Independent Testing Services: Mapping Advantages
Independent testing services have become mainstay of low-cost and infallible software solutions. Outsourcing testing and QA to independent service provider accelerates business, cut down costs, and mitigates risks. While an independent evaluation of software solutions that assures the product quality, it enables to keep testing costs low and offer solutions for businesses within the budget. Specialized support from independent testing services enables faster validation, mature testing process, and superior software standard.
The following are key advantages of hiring independent testing services.

Impartial Quality Check
The testing process is widely viewed as a value creator. Independent testing services help establish a quality differentiator and assure that the industry standards are strictly followed. Testing of a software is a carried out to ensure that application quality is attested and customer requirements are fully reflected. In-house testing by developer is likely to include bias and subjective influence in the testing process compromising the quality. On the other hand, independent testing services map an application based on stringent quality requirements impartially and certify it only when the application is 100 percent error free.

Better Customer Perspective
Independent testing services are poised to think and check an application from better customer perspective.  Testing is no more a standalone service. It should look into the greater business ambiance and the role the application in furthering the same. Market trends, business analysis, and the end-user perception also demand adequate consideration. Software developers may not have time or expertise to consider all these. Their subjective feeling also hampers the validation of these concerns. Independent testing services specialized in their trade ensure an application is tested for all concerns with definite outcomes and measurable results.

Expert Testing Services
Most of the independent testing services providers have dedicated labs for exclusive testing jobs where experts judge performance, security, and functionality of an application from all angles. Their specialization in software testing and expertise help authenticate compatibility, configuration, and user acceptance. They are better placed to employ latest tools and methodology that examine and identify scalability, load, regression, integration testing, and system problems. 

Low Cost and Faster Testing Services
Software developers may find it costly to have experts offering independent testing services on their payroll. Outsourcing testing tasks to independent service providers, on the other hand, reduces testing services considerably. You can get expert and guaranteed services without any investment. These vendors have dedicated teams exclusively focusing on client testing projects and deadlines. This helps in faster project turnaround allowing faster market introduction of software products. 

Other Advantages
       Service maturity of independent testing services adds value to software testing process and the final product outcome.
       Independent testing services adds to business strategy in the form of better expertise, security audit, performance enhancement, and custom testing solutions.
       Superior knowledge of testing techniques allows robust application validation and adds to low-cost life cycle management.
       Independent testing services offer a better alternative for non-IT enterprises in the form of risk reduction, low cost, and availability of requisite skills.



Thanks,
360logica Business Team!
www.360logica.com