Functional testing

Functional tests measure the level of effectiveness and efficiency of the application, that the results or outputs of the system are exactly those that are defined in the specifications and requirements defined by the user. The output or product of the software module must be what the user exactly expects and requires.

The functional tests will be performed on the modules-components-applications that the user defines, through the execution, revision and feedback of the functionality of the module to be tested to verify, that the result obtained is equal to the function defined in the functional requirements, with Which was designed the software, with a test scheme that contemplates the input, process and output cycle, called the black box scheme. Likewise, the test can detect faults in its operation

To develop the functional testing process, the following steps must be followed:

1. Test Planning

A test plan is prepared, including the following:                                            

  • Scope of the test: Determines which functionalities or modules of the product and / or software will be tested, and the priority of evaluation and the depth or rigor of the test.
  • Test Strategy: Specifies the criteria, arguments or input and output data for the development of the test.
  • Output Criteria: specifies which output you want to obtain to determine if the test fails or is successful.
  • Resources, times, environments: includes an estimation of the time, roles and / or resources that will be part of the process, the preparation of the test environment, basic schedule.

2. Test Design

Existing documentation related to the system is reviewed and analyzed. These can be: use cases, user stories, system architecture, designs, diagrams, lessons learned, user manuals (if they exist), and technical manuals (if they exist).

The design of evidence should consider the development of positive and negative cases.

Finally, the test data necessary for the execution of the designed test cases are defined.

3. Execution of Tests:

To start the execution of the test, you must have the necessary test data for the test.

The execution of these cases can be done manually or automated, according to the documentation available or with the knowledge and expertise of the user who knows and handles the process. 

The system must validate online the data entered by the test user.

Once the defect has been corrected by the technical area in its respective debugging process, the test (re-test) must be run again to confirm that the defect was successfully solved.

Finally, a Rollback must be run to ensure that defects corrected in the debugging process have not triggered other types of defects in the system. 

4. Evaluation of Exit Criteria

It should be clearly defined which is the expected result against which the test result is compared and establish whether the test is successful or erroneous.

You can also determine if the result is successful if you have metrics, against which the result obtained is compared.

5. Test reports

The formats or documents of the development of the test are filled out, attach the supporting documents, attach the information of the errors found, document the lessons learned to apply it in future tests or projects.

The reports must be socialized to the responsible users and interested in the process of the execution of the tests

To finally issue the certificate of the test performed.

Web Service Testing

Web Service tests are carried out using computer tools to perform the analysis, interpretation and structure of the Web Service by sending information through a generated frame or generated data and obtaining the response that shows the Web Service on which the test is being performed .

Mobile Testing

Through the Mobile tests functional tests of the APP are performed, to analyze and verify the correct functioning of the different platforms available in the market such as:

  • Android
  • IOS
  • Windows Phone

Usability Testing

The usability tests evaluate the ease and effort necessary to use the software by the user expert in the handling of the process that develops with the use of the software module that serves as a support tool for the execution of the tasks of the respective process that to be evaluated.

Methodology

Pruebas de rendimiento

Non – Functional Tests 

Through Non-Functional Tests, it is verified that the developed software meets the non-functional requirements established by the client and focuses on HOW the system works, verifying software performance according to different measurement criteria. Non-functional tests describe the tests required to measure system performance and software

Application Tour Testing

It consists of running the application from an end user point of view, where:

  1. All actions per formed, requests (requests), responses (response), size of responses and response time will be recorded.
  2. It will be analyzed the existence of actions that can be simplified, existence of redundant queries, size of each answer that must be found within the acceptable criteria, gzip is used to compress the traffic; In addition will verify the existence of requests that generate errors

The development of these tests allows to identify:

  • Size in bytes of each action (click and / or postbacks)
  • Redundant actions.
  • Actions that could be simplified to reduce the number of steps to complete a flow of activities. 

Concurrent SQL Query Simulation Tests

The development of these tests consists of simulating concurrently, a determined number of users, executing SQL queries, through the following activities.

Pruebas de rendimiento

Concurrent MDX Query Simulation Tests in OLAP Cube

Simulator concurrently, a certain amount of users, executing MDX queries in OLAP cube, through the following activities:

1. Identify the queries to be evaluated

  • Generate the queries available in the Cube.
  • Perform a trace on the cube during its use by users, to obtain MDX queries performed.

2. Set number of users to simulate

  • Determine, as planned, how many concurrent MDX queries are expected on the database.

3. Establish Test Topology

  • Identify the cube access topology and its possible effect during testing.

4. Establish test plan

  • Develop test cases and scripts.
  • Determine number of tests, number of users, and time for each test.

5. Test

  • Start the tests in the established time windows.

In order to identify:

  • Behavior of the Cube with minimum and maximum load.
  • Point at which the Cube begins to respond at response times greater than acceptable criteria.

Document Printing Simulation Testing

It simulates the continuous sending of documents to print servers, through the following activities:

1. Identify the impressions to be evaluated

  • Trace standard prints.

2. Set number of users to simulate

  • Determine, as planned, how many concurrent impressions are expected on the print server.

3. Establish Test Topology

  • Identify the topology of access to the print server and its possible effect during the tests.

4. Establish test plan

  • Develop test cases and scripts.
  • Determine number of tests, number of users, and time for each test.

5. Test

  • Start the tests in the established time windows.

In order to identify:

  • Behavior of the Print Service with minimum and maximum load.
  • Point at which the Print Service begins to respond at response times greater than acceptable criteria.

Dynamic testing of source code

Dynamic code analysis is the method by which an application is tested during execution. The dynamic analysis process can be divided into several stages: preparation of the input data, running a program execution test, obtaining the necessary parameters, and analyzing the output data. When the execution test is performed, the program can run either on a real server or a virtual server. The source code must necessarily be compiled into an executable file, that is, you cannot use this method to parse a code that contains compilation or compilation errors.

This dynamic analysis can be done in programs written in different programming languages: C, C++, Java, C#, PHP, Python, Erlang, and many others.

The dynamic test is one of the most important, since it tests the reliability of the program, the response times and the resources consumed. It can be, for example, a system of real time management of a responsible production of area or of a database server. Any failure that occurs in these systems can be critical.

Dynamic testing ensures that the product works well or reveals errors by showing that the program does not work as expected-

For more information:

Pablo Benavides G. | Consulting and Systems Manager
E-mail: pablo.benavides@co.gt.com
Tel. Office +57 1 7059000 Ext. 1701; Mobile 310 232 4660

Receive our Alerts and newsletters Subscribe