SOFTWARE TESTING


       Technovision Software provides independent validation and verification services for your applications. Our Testing methodologies help organizations significantly reduce issues related to performance, quality and reliability. Technovision Software helps enterprises significantly lower post implementation costs of IT applications by providing

“Quality is never an accident; it is always the result of high intention, sincere effort, intelligent direction and skillful execution; it represents the wise choice of many alternatives.”

Systematic software quality assurance. Our testing services include:

-   Functional and Regression Testing
-   Performance Testing
-   Usability Testing
-   Load/Stress Testing
-   Automation Testing


        Software testing is the process used to measure the quality of developed computer software. Usually, quality is constrained to such topics as correctness, completeness, security, but can also include more technical requirements, such as capability, reliability, efficiency, portability, maintainability, compatibility, and usability. Testing is a process of technical investigation, performed on behalf of stakeholders, that is intended to reveal quality-related information about the product with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding errors. Quality is not an absolute; it is value to some person. With that in mind, testing can never completely establish the correctness of arbitrary computer software, testing furnishes a criticism or comparison that compares the state and behavior of the product against a specification. An important point is that software testing should be distinguished from the separate discipline of Software Quality Assurance (QA), which encompasses all business process areas, not just testing.

Regression Testing:

        The selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.

        Also referred to as verification testing, regression testing is initiated after a programmer has attempted to fix a recognized problem or has added source code to a program that may have inadvertently introduced errors. It is a quality control measure to ensure that the newly modified code still complies with its specified requirements and that unmodified code has not been affected by the maintenance activity.

        Regression means going back. With testing processes we mean that you need to repeat previously successful tests any time there is a chance that subsequent changes could have affected an aspect of the solution.

        The testing process involved building a sequence of tests, many of which stood upon the successful results of earlier tests. If a component of the solution has been changed, all other components which relied upon it might have been affected. Similarly, all tests that relied on an earlier test might no long be valid. Consider carefully which solution and testing components need to be re-validated.

        Regression testing can be used not only for testing the correctness of a program, but it is also often used to track the quality of its output. For instance in the design of a compiler, regression testing should track the code size, simulation time, and compilation time of the test suites

Functional Testing :

       Functional testing covers how well the system executes the functions it is supposed to execute-including user commands, data manipulation, searches and business processes, user screens, and integrations. Functional testing covers the obvious surface type of functions, as well as the back-end operations (such as security and how upgrades affect the system). Validating the behavior of Application.

        Although functional testing is often done toward the end of the development cycle, it can-and should, say experts-be started much earlier. Individual components and processes can be tested early on, even before it's possible to do functional testing on the entire system. eg., BlackBox Testing

Performance Testing :

        Testing conducted to evaluate the compliance of a system or component with specified performance requirements. It includes Load Testing and Stress Testing.

        The goal of performance testing is not to find bugs, but to eliminate bottlenecks and establish a baseline for future regression testing. To conduct performance testing is to engage in a carefully controlled process of measurement and analysis. Ideally, the software under test is already stable enough so that this process can proceed smoothly.

Usability Testing :

        Usability testing is a black-box testing technique. The aim is to observe people using the product to discover errors and areas of improvement. Usability testing generally involves measuring how well test subjects respond in four areas: efficiency, accuracy, recall, and emotional response. The results of the first test can be treated as a baseline or control measurement; all subsequent tests can then be compared to the baseline to indicate improvement.

Performance -- How much time, and how many steps, are required for
people to complete basic tasks? (For example, find something to buy,
create a new account, and order the item.)
Accuracy -- How many mistakes did people make? (And were they fatal
or recoverable with the right information?)
Recall -- How much does the person remember afterwards or after
periods of non-use?
Emotional response -- How does the person feel about the tasks
completed? Is the person confident, stressed? Would the user
recommend this system to a friend? Orientation

Load/Stress Testing :

        Load and Performance testing is to test software intended for a multi-user audience for the desired performance by subjecting it with an equal amount of virtual users and then monitoring the performance under the specified load, usually in a test enviromnent identical to the production, before going live.

Automation Testing :

        Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.

Benefits of Automation Testing

If you have to run a set of tests repeatedly, automation is a huge win for you.
It gives you the ability to run automation against code that frequently changes to catch regressions in a timely manner.
It gives you the ability to run automation in mainstream scenarios to catch regressions in a timely manner.
Aids in testing a large test matrix (different languages on different OS platforms). Automated tests can be run at the same time on different machines, whereas the manual tests would have to be run sequentially.