2016/03/31

Software Test Services: Boundary Values Method


The given black box method uses Boundary Values. Input or output boundary value is on the edges of the selected equivalent area and, as a rule, are the minimum and maximum values of the area. 

When performing Boundary Value Analysis, test or test scenarios are created based on the chosen boundary values for input or output data. The given method complements the equivalence partition method.

Boundary Value Method is Characterized by the Following Definitions:
- Boundary values for "acceptable" equivalent area referred to as "permissible threshold values".
- Boundary values for "unacceptable" equivalent area referred to as "Invalid threshold values".

Tests are developed to cover both the boundary values of the permissible and not permissible values.

When Designing Tests by Means of This Method, Testers Use:
- 3 Value Boundary Approach. Boundary values are three numbers: boundary value itself and coming to him left and right, taking into account the multiplicity of values:
  • with multiplicity equal to 1, for edge number 7, testers choose for the tests the number 6, 7 and 8;
  • with multiplicity equal to 0.1, for edge number 7, testers choose he numbers 6.9, 7 & 7.1.

- 2 value Boundary Approach. For the boundary value, testers pick up 2 numbers, taking into account the multiplicity; there are left hanging, or right hanging approach to border:
  • with the left approach to the border and when multiplicity equal to 1, for edge number 7, tester chooses perimeter number 6 & 7 for tests;
  • with the right approach to the border and when multiplicity is equal to 1, for the edge number 7, testers choose 7& 8 numbers.

In practice, it is better to use an approach with three values at the border, because immediately achieved maximum coverage and defect are detected more often. 
This method can be applied at all levels of testing, taking into account input and output criteria cover.

2016/03/29

Software Test Services: Equivalence Partition Method


In order to understand the given method, at first, you should be familiar with the following terms. They are: 

Equivalence Partition – it is part of the area of input or output data, for which the execution behavior of a program's functionality will be the same.
Equivalence Partitioning - is a kind of developing by means of black box method, with which tests or test scripts are created to validate elements of equivalent scope, and each area is covered by a test at least once.

In practice, this method is one from other test developing methods, which is based on the analysis of input and output data in the program and allows identifying the minimal amount of data values from the equivalent field that is enough to cover the functionality with a minimal test kit. 

Equivalence Partition Method performs its main function – reduces the number of tests, which can be executed and testers also can provide the information with a minimal data about the health of functionality.

When using this method, it is important to identify equivalent areas.

NB! When also using this method, it’s crucial to prevent Defect Masking, when one defect doesn’t let to detect the other one. If you need to verify some input parameters with the relevant equivalent areas, so it’s essential initially to verify each input parameter separately.
 If one input parameter has a defect in data processing and introduces simultaneously two, three or more input parameters, the program will process the data and get the wrong result, allegedly due to already known defect. 

Although, it is often the presence of a defect and also when processing different input parameter.
This method can be applied at all levels of testing, taking into account input and output criteria for coverage.

2016/03/25

Software Test Services: Specification-Based Test Design Techniques


In this post and the next ones, we will study Specification-Based Test Design Techniques, their features and objectives. So, what are Specification-Based Test Design Techniques and with what to eat them? 
Dedicated testers also call them Black Box Technique and it can be used as a synonym. 

This testing type, functional or non-functional, is performed:
- Without knowledge of the internal structure of the component or the entire system.
- Using analysis available on the project documentation and requirements for the software product being developed, taking into account the functional and non-functional aspects.
- Using specifications to your developed product or model anticipated system.

Test and Test scenarios are created based on these criteria. There are methods of developing tests based on the following specifications:
- Equivalence Partitioning.
- Boundary Value Analysis.
- State Transition Testing.
- Decision Table Testing.
- Use Case Testing.

This method can be applied at all levels of testing.

All the information is provided by TestMatick company - the main provider of software and QA services. If you enjoy reading our blog - visit our official website for more interesting and useful information about IT testing services.

2016/03/24

Software Test Services: Category Types & Methods Structure of Test Design


All the programs are validated by means of various software testing services and there are lots of Test Design Techniques that are useful when you need to define necessary Test data and Test Conditions. The complexity of the developed software always increases, accordingly the number of tests also growths. These tests must be executed within a limited time conditions and human resources. 
When selecting any software development model, fast and qualitative information from testers about the program health allows estimating the project/product risks and identify the direction in which you want to attach additional test efforts.

Three Categories of Test Development Methods for Software Product

- Specification Based Test Design Techniques.
- Structure Based Test Design Techniques.
- Experience Based Test Design Techniques.

Necessary Model or Its Combinations Testers Choose According to: 

- Complexity of the project.
- Type of system under development.
- SDLC.
- Test levels.
- Level of risk.
- Type of risk.
- Documentation available.
- Requirements (legislative, contractual, client) to the developed product.
- Testers’ knowledge.
- Time & budget.
- Test objectives.

At this point, software development with each passing day becomes more difficult to implement. In the process of the product creation, testers use the number of various technological combinations on different platforms and this multilateral dependence on many factors affect the development process. 

Ideally, tester must know how to use each technique. Depending on the objectives of the project, you must use each of them at the appropriate level of testing.

2016/03/21

Software Test Services: Defects Management

                            

Defect Management is the process of identification and recognition, research and elimination of incidents. Software testers together with other project members (developers and customers) conduct the logging of incidents (defects), their classification and determination of the degree of influence on the software product under development.

Defects can occur in different stages of SDLC and software testing services:
- The stage of writing the requirements.
- The stage of code writing.
- When creating testing documentation (Test Plan, Test Design, Test Scenario).
- When reviewing the developed product.
- In help documentation, user guide, installation guide and other documents. 

All incidents (defects), after the identification, must be selected in the chosen project tool for management and monitoring. 
Such instruments are: 
- Incident Management Tool.
- Defect Tracking Tool.
- Defect Management Tool.

The main tasks of such tools are:
- Recording and tracking the status of incidents.
- Changes in their description.
- Add files to them, through which they can reproduce.
- Generating statistical data on their status in the form of reports.
- Their distribution between the project participant (programmers and testers).

Bug Report has the following structure and data (the content depends on the chosen tool):
- The date of defect occurrence.
- Name of the company, organization or project.
- Name of the person who found the defect.
- The title of the defect.
- Steps or scenario of defect reproduction.
- Expected and actual results.
- The description of the software configuration (name & version) or test environment (used programmes & equipment).
- Test Logs.
- Screenshots.
- Configuration files.
- The level of impact on customer’s interests.
- Urgency/Priority fix.
- Defect Status:
`New.
`Open.
`Assigned.
`Rejected.
`Deferred, Suspended.
`Duplicate.
`Waiting to be fixed.
`Fixed awaiting re-test.
`Test.
`Reopened.
`Verified.
`Closed.
- Comments & recommendations from the project participants.
- History of changes in the defect.
- Test link, where the defect was found.
-  Link to the program file and version with comments that were fixed.
- The information about developers’ actions for defect identification, its localization, and the degree of impact on other functionality.

2016/03/18

Software Test Services: The Evaluation of Risks in the Product Under Development



Product Risks are directly related to the test object, and these risks directly associated with the quality of software product. 

Characteristics of poor product quality are:

- The program does not perform the functionality that was declared in the specification.
- Software and equipment, which it serves, can cause damage to the person or company.
- Program unreliable from the point of view of its unexpected shutting down or rebooting.
- The program has a low level of reliability, performance, ease of use.
- When processing or transmission information, it changes on the wrong algorithm, it can also be lost or transformed with the deviation from accepted standards.

There are other problems connected with developed software product. Risk analysis in this direction allows determining in which direction and what functionality you must make a greater effort to test. In the case of a "pesticide paradox" or "defects clustering ", new tests or test scripts are updated or created for localization issues and to identify their causes. 

Testing helps to identify risks in the product, namely, defects or incorrect operation of the program. Measures were taken to reduce project risks (hotfix functionality or fixing) reduces the probability of their occurrence when the program will be used by the users.

Risks in the product can even be connected with the developers of the program. If the previous project developer made critical errors (this is confirmed by the collected metrics), then there is a high chance that this project and the developer can write a low-quality code. 

Perhaps, such a developer needs to undergo some additional training on weak competence, or periodically analyzing a written code, before assembling the program. Testers also give more attention to functionality; a developer often makes mistakes.

If you are interested in software, various testing types or just looking for more additional information - visit our website! =)

2016/03/16

Software Test Services: Risk Issues



When developing software, the dedicated testing team may face some project risks and product risks. 

Complex Projects are Characterized by the Following Risks:

- Safety – it includes security of data transmission and storage; 
authorization for data access, and so on.
- The interaction between Multiple Interfaces.
- Impacts on Client – reputation, time, and money.
- Government regulations and rules.

Also, It's Crucial to Determine Whether the Implementation of the Project From:

- Third-party manufacturers.
- Bad or incomplete product documentation.
- Complex functionality.

Product requirements in the event of a misunderstanding at the initial stage of the project are implemented in the form of improper behavior and logic in the program. Each product requirement must be checked. 
Requirements may vary by stage of software development, so if you change them all - project participants should be informed about it. Otherwise, developers can continue creating legacy program requirements, and testers will not update tests and testing properly. 

The Usage of Main Testing Principles Helps:

- Conduct early testing.
- Obtain the information about the quality of the product faster.
- Cluster defects and find potential problems.

The involvement of all participants in the meeting and brainstorm can help you identify risks at early stages of product development and help you take action to reduce them.
And the main thing to consider and take action so that risks do not recur in the future.

2016/03/14

Software Test Services: Test Planning & Control



Test Planning & Control

Test planning and control are the initial stages when software testers from various independent testing companies start their work on the project.  On the planning stage, testers identify aims (what they are going to test) and actions (the way the testing will be executed) in order to reach the goal. As a rule, testers analyze the requirements for the program or project, create a test plan. Test plan contains all documented strategies that would be used during the program software development life cycle. It’s done to validate if the product meets the declared design in specifications or some other requirements. The dedicated testing team creates, reviews and updates test plan in the process of the project execution. 

Test Plan

Depending on the product under development and the team structure there is a master test plan for complex programs that covers several testing levels. For individual components or complex functional programs, there are separate test plans, which has already described this particular components or features of the testing strategy. This decomposition is also relevant when developing systems using various developing teams that are working in different companies and even countries.

Test Control

Test control – is a continuous process that takes place from the beginning to the end of the project. It includes the comparison of actual results together with planned ones. If some differences happen, testers perform analysis of the situation, compile the report about the current status and offer measures to eliminate problems that have an impact on performing the job successfully. The problems can be: lack of necessary equipment, lack of qualified personnel, etc. 


2016/03/10

Software Test Services: Fundamental Test Process


Today we will start a new page in test software services – Fundamental test process. I hope that all the information about software development models was useful for you! 
Let’s think about the reasons why are the majority of top software testing companies so successful? The answer is simple – they have established test processes when performing various software testing services. Let’s study them!

Fundamental Test Process Includes The Following Primary Activities:

- Test planning & control.
- Test analysis & design.
- Test implementation & execution.
- Evaluating exit criteria & reporting.
- Test closure activities.

The above steps can be used all or partly depending on the developed product and process development. We will consider all of them in next posts in details. Try to analyze what actions do you use on your projects. If any of them does not run for your company or project, then try to think how you can implement and what benefits they will bring to the development process.

For more interesting and useful information visit our website!

2016/03/07

Software Test Services: Spiral Software Development Model


Spiral model of the software development lifecycle is similar to the Incremental model, but with more focus on the analysis of the requirements and risks. 

Development Phases of Spiral Model
- Planning.
- Risk Analysis.
- Development.

On the Planning stage, the dedicated testing team gathers the initial requirements. After the stage of risk analysis and software product prototyping – testers start writing the code, which finishes with performing software testing services. 
The last “spiral” stage ends with the period when customers evaluate all the done work. And when the work is excepted – testers can proceed to the next spiral.

Benefits:
- The software starts working already from the beginning of the SDLC.
-  Requirements definition and risk analysis in the product allow testers to create documentation and prevent critical risks in the following steps.
-  There is a possibility to add new functionality in later stages/rounds.

Drawbacks:
- The project success depends on a broad product analysis.
- This model requires highly qualified specialists.
- Is suitable for the small projects.
- It is an expensive model because of the attraction of business analytics and managers on requirements, who should be engaged in the process periodically on each of the first two stages of the Spiral model.

It is Recommended to Use When:
- There are significant risks in the developed product.
- Time-consuming project.
- Requirements can change depending on the market conditions.
- Complex requirements in the developed product.