Software Testing Career

More

Software Testing Jobs & Resume

More

Software Testing Skills

More
7
Apr
2015
0

Test Design Techniques

A test design technique provides an approach to design test cases, which helps to select a good set of tests from the total number of all possible tests for a given system.

There are many different types of software testing techniques. Each single technique is good at finding specific kinds of defect and comparatively poor at finding other types.

Test Design Techniques are used to recognize test conditions and test cases via which effective and proficient test cases can be written.

Using test design techniques is a best approach rather the test cases picking out of the air as it helps in achieving high test coverage.

These techniques assist in attaining high test coverage and help in providing vision into the quality of a test object.

Types of Test Design Techniques:

test_design_technique_image

[Figure: Test Design Techniques]

1. Static Testing Technique:

Static Testing is used to test software without executing the code. This includes, testing the work-products other than the code (typically requirements or specification documents) and the testing of code without actually executing it.

There are two types of Static Testing:

1.1 Review: used to discover and eliminate errors and ambiguities in documents before they are used in the development process, i.e. decreasing one cause of defects in the code.

Reviews are usually done manually.

  • The types of defects most normally establish by reviews are:
    • Deviances from standards either internally defined or managed and regulatory/ legally defined by organization.
    • Requirements defects – e.g. requirements are vague, or omitted elements.
    • Design defects – e.g. design does not match the wants.
    • Insufficient maintainability – e.g. code is too complex to maintain.
    • Incorrect interface specifications – e.g. the interface requirement doesn’t match the design or the receiving or sending interface.

The kinds of review are created on the level of formality:

levels_of_reviews_image

[Figure: Types of Reviews]

1.1.1 Informal review (least formal): No prescribed procedure for reviewing.

This may be documented though many informal reviews are not documented. The reviews provided may be valuable subject to who has piloted the review.

For e.g. the reviewer may not have technical skills however can ensure if the document makes sense. This is one of the low-cost ways of identifying a defect to attain a limited advantage.

1.1.2 Walkthrough: Review Sessions/meetings are organized by the writer of the document and are joined by the writer’s team members.

Sessions are open-ended with drive to facilitate learning about the content of the document under review, to assist team member’s to develop an understanding of the content of the document, and to find defects.

Walkthroughs usually explore scenarios, or conduct dry runs of code or process.

1.1.3 Technical review: Technical reviews are documented and is a precise defect detection procedure that comprises of team members and technical experts.

Reviewers organize checklists, and review report with a list of findings.

Technical reviews may differ from being informal to very formal and has a number of purposes, including discussion, decision making, evaluation of alternatives, finding defects, solving technical problems and examining conformance to requirements and standards.

1.1.4 Inspection (most formal): Inspections are run by a qualified moderator who is not the writer of the document and ordinarily involves individual inspectors working within defined roles.

The inspection process is formal, created on rules and checklists, and uses entry and exit criteria.

Pre-meeting preparation is important and comprises of reading of any source documents to confirm consistency.

An inspection report, with a list of findings is created, which contains ways to aid improvements to the procedure as well as fixing defects in the document under review.

1.2 Static Analysis

It allows code to be analysed for structural defects or systematic programming flaws which may lead to defects.

Static analysis is generally done automatically using tools. Like reviews, static analysis looks for defects without using the code.

Though, reviews static analysis is done once the code has been written.Its purpose is to find defects in software source code and software models.

 

Also Read: Test Case, Test Suite, Test Script, Test Plan

 

2. Dynamic Testing Technique

Dynamic Testing is to test the application or software at the time of execution which is done through the validation process. Dynamic techniques are sub-divided into:

 2.1 Specification-based (also known as ‘Black-box’ or ‘Behavioral’) Technique:

Specifications based techniques is testing the products against the requirements stated in the document.

It is also known as Black-box or input/ output driven testing techniques. These methods are based on test conditions and test cases derived from the Requirement Documents.

The five main types of Black-box techniques are as follows:

2.1.1 Equivalence Partitioning: In Equivalence Partitioning, the test cases are separated into valid data (values that are accepted) and invalid data (values that are not accepted) and only one test case of each is tested.

The equivalence partitioning technique takes benefit of the properties of equivalence partitions to minimize the number of test cases to be written.

Since all the values in an equivalence partition are handled in exactly the same way by a given program, we need to only test one of them as a representative of the partition.

For e.g. we have to test an ATM machine for withdrawal and the withdrawal limits are minimum $10 to a maximum of $100.

  •       Input data is huge thus, we divide the data into three groups:
    • 0-$9 (values not to be accepted),
    • $10-$100 (values to be accepted) &
    • $101 and above (values not to be accepted).

So, we choose only one test case for each group and test. This is called Equivalence partitioning.

2.1.2 Boundary Value Analysis: Boundary value analysis is to find the fault in the boundary area.

Boundary values comprises of minimum value, maximum value, just inside boundaries, just outside boundaries.

It is comparatively easy to apply and its bug finding ability is high and can be applied at all test levels.

For e.g. we have a login ID box accepting 6 to 12 characters. With Boundary Value Analysis, we test for Minimum characters i.e. 6, Maximum characters 12, just inside boundaries that is 7 and 11, just outside boundaries that is 5 and 13.

2.1.3 Decision Tables: Decision Table deals with mixture of inputs generating a set of diverse results.

When creating decision tables, the requirements are analysed and conditions and actions of the system are recognized.

The input conditions and actions are mostly stated in ‘True’/ ‘False’ form. The pros of decision testing is, it generates a blend of conditions that may not have been otherwise exercised by testing.

For eg,

dynamic_testing_image

Follow the below steps to answer:

i) Match Conditions with existing rules as input

ii) When all conditions match in that example, confirm respective rule condition for that answer.

For example in test Case 1, Flyer member is available with Rule 1 and Rule 2. Now check for the travelling business class. Here only Rule 1 matches the condition. So, Rule 1 satisfies both Condition 1 and Condition 2. So, according to Rule 1, Test Case 1 offers upgrade to Class First.

2.1.4 State Transition Testing: State Transition Testing is used where some features of the system can be labelled as ‘finite state machine’.

It lets the tester to vision the Software in terms of its states, transition among states, inputs or actions that activate state changes and the activities which result from these transitions.

This testing is mostly used in embedded software’s and technical automation.

This technique is also good for modelling a business object with specific states or testing screen dialogue flows (internet applications or business scenarios).

For e.g. Entering Pin Number for ATM card.

atm_pin_use_case_image

[Figure: State Transition for entering Pin Number for ATM card]

2.1.5 Use Case Testing: Use case testing is one way of identifying functionality for business scenarios or process flows. It captures the individual exchanges between ‘actors’ and the system.

An actor denotes a specific type of user and the use cases capture the interactions that each user takes part in to generate some output, which is of value.

Test cases based on use cases at the business process level, often called scenarios and are mainly useful in exercising business rules or process flows and regularly identify gaps or flaws, which might have not been found by exercising individual components in isolation.

This marks use case testing very effective in defining acceptance tests as the use cases denote actual likely use.

2.2 Structure-based (‘White-box’ or ‘Glass-Based’) Technique:

Structure-based Technique is also called Glass based technique or White Box technique, as the testers  required to know how the software is applied and how it works.

It is a way of testing software that tests the internal configurations of an application. It is usually done at unit level.

Types of Structure based techniques:-

2.2.1 Statement Testing and Coverage: It is the valuation of the percentage of executable statements which have been exercised by a test case suite. This testing technique derives test cases to execute specific statements generally to increase statement coverage.

2.2.2 Decision Testing and Coverage: It is connected to branch testing, that is the percentage of decision outcomes that have been exercised by a test suite called Decision coverage.

2.2.3 Liner Code Sequence and Jump (LCSAJ): LCSAJ is a software analysis method used to identify structural units in code under test.

2.3 Experience-based Techniques:

People’s understanding, expertise and background are vital to test conditions and test cases in experience-based technique.

It uses the testers and users experience to identify the most significant areas of the system and to use these areas in a way, which is aligned with expected use and likely to be sites of errors.

This technique goes hand-in-hand with Specification based and Structure based techniques and is extensively used, where there is no specification document or specification is insufficient or outdated.

It is used in low risk systems and may also be used when there is extreme time pressure. There are two types:

Types of Experience based techniques:-

2.3.1 Error Guessing: Error guessing can discover a number of errors that systematic techniques may fail to identify.

This involves tester’s skills, intuition and knowledge in similar software to recognize special tests, which may not be found by formal techniques.

The chief disadvantage of this is, its unpredictable effectiveness as it dependent on the experience of the tester deploying it.

2.3.2 Exploratory Testing: This testing conglomerates experience of tester with an organized approach to testing, where requirements are absent/insufficient or when there is a time pressure.

It is the most efficient and effective approach which produces valuable results in first hours of testing and identify the biggest bugs faster than any other approach.

You now know what all types of test techniques are at your disposal, choose the best according to your need. Usually it is combination of some but don’t trust us, just keep an open mind and keep on exploring.

Do drop in your comments if you like the post or suggestions if any !!


Comments 0

  • HERE IS WHAT YOU’LL RECEIVE

    • Get Articles on Upcoming Training, Seminars and Workshops1
    • Get Tips and Tricks for Resume, Coverletter and Interview Prepration
    • Latest Industry Updates
    • Your Details are safe with us
  • Other Training Courses

    JMeter is an open source Java application designed to load test, functional behavior and effective performance testing tool for QA. This course is designed for QA to familiarize with JMeter load test tool. The main focus is to practically use of…

    More

    Software Testing Intensive(STI) is designed to assist newcomers to join the software testing field and gain intermediate to advanced level software testing skills. The candidates will be able to manage to perform testing throughout the test life cycle. This course also helps the intermediate testers to gain the absolute confidence in software testing field in web as well as mobile application.

    More

    This course include includes an intensive workshop where you are learning all the mental barriers you need to avoid and the game plan you should be creating. You will also be practically doing and updating all the necessary marketing collateral for your job applications with confidence by using world class material and resources this course provides to all its students.

    More

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Appium as a tool for mobile test automation is getting very popular in the market for mobile automation testing not only it is an open source but also is absolutely free for open discussions in communities to get quicker solutions.

    More

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    This course include includes an intensive workshop where you are learning all the mental barriers you need to avoid and the game plan you should be creating. You will also be practically doing and updating all the necessary marketing collateral for your job applications with confidence by using world class material and resources this course provides to all its students.

    More

    .Net Developer Advanced Training

    This course is about to gain understanding of advanced level knowledge of Microsoft .Net framework. It will cover advance development using ASP.NET, Data Binding and Web Configuration, C# Advance features, Web Service Implementation and many more advanced topics.

    More

    .Net Developer Training

    This course is about to gain understanding of current IT industry and prepare yourself for Microsoft .Net Developer Position. In this course, you will learn various Microsoft .Net tools and technologies. It will help you to build and deploy website from scratch using .Net framework. At the end of this course, you will be able to give web solutions using .Net technologies to the businesses, and able to attend interview for .Net developer position.

    More

    Advanced LinkedIn For Job Seekers

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    Agile Testing Intensive (AgTI)

    Understanding of Fundamentals Software Testing

    More

    AJS1: AngularJS Development Level 1

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    AJS2: AngularJS Development Level 2

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Automation Testing Intensive Level 2(ATI2)

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Blockchain Fundamentals 101 Training

    The Blockchain Fundamentals 101 training course provides and excellent platform to learn the basics of the blockchain. This course is for the professionals who want to understand background of the development of the blockchain, what are the major players and the full ecosystem around blockchain. You’ll also learn various business use cases for the Blockchain and the industries using it.

    More

    Oracle Training

    The Oracle well known, widely used Database is an object-relational database management system produced by Oracle Corporation. This is the ideal course for any tech savvy programmer, DBA, SQA…

    More

    Ruby Scripting Training

    Ruby is a scripting language designed by Yukihiro Matsumoto, also known as Matz. It runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX. Ruby Scripting language is dynamic and object oriented. In a sense, it’s a purist’s language for those who love object-oriented languages. Everything, without exception, is automatically an object, whereas in other programming languages this isn’t true. It is simple enough for beginning programmers to use while also powerful enough for experienced programmers to have all the tools they’d need.

    More

    SQL for Testers Training

    If you are new to software testing or looking for a career change to become a software tester Understanding the relational data model behind an application enables you to design additional tests…

    More

    SQL Training

    SQL (Structured Query Language) is a programming language intended for managing data held in relational database management systems (RDBMS). SQL expertise are advantageous in a number of professions such as database developers, report writers, business analysts, computer programmers, web developers, testers and data analysts. SQL has a shorter learning curve compared to other skills like business analysis or computer programming or testing.

    More

    VB Scripting Training

    VB Script is a subset of Visual Basic 4.0 language. It was developed by Microsoft to provide more processing power to Web pages. VB Script can be used to write both server side and client side scripting.

    More

    Front End Web Development

    Front End Web Development (FED) is a training which will allow candidates to understand about HTML5, CSS3 and JavaScript, Ajax along with a few key frameworks such as Bootstrap and jQuery. This course also helps you work on creating your own basic application throughout the course.

    More

    FWD2: Frontend Web Development Level 2

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Interview Like a Pro

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    ISTQB Certification Training

    ISTQB foundation course allows you to learn from the very core fundamentals to advance level software testing concepts. The course is intended for anyone who is new to testing or has been in the testing and wants to learn more in details…

    More

    Java Development

    Skiva is a leading IT consulting firm based in Sydney, Australia. Our team of dedicated developers and experienced IT professionals allows us to develop every kind of software application required for improving and max imising the functionality of both new and existing websites. Our sole aim is to help you grow your business, by developing an informative and dynamic website that produces effective and profitable conversion rates for website traffic.

    More

    Java Fundamentals Training

    Fundamentals of Java is a very comprehensive yet simple course on java programming which concentrates on basic concepts of Java. This course is great because it covers just the right amount of Java which is needed for automation, but this course does not cover Selenium WebDriver or any other type of automation tool. Java is one of the most and useful programming languages to learn. You will get the best in class support from the instructor for any question you have related to the course.

    More

    LoadRunner Training

    One of the most crucial test tool to load test the application and measure the performance. Why to load test application, Is application scalable to withstand concurrent number of users? All such answers and application performance…

    More

    Mobile App Testing

    Mobile App testing consists of several of the same processes as other software testing. Application software which has been created, or enhanced for any portable devices, is checked to ensure that it is consistent in results, usable, and functions as it was intended to. Mobile applications may be factory installed or installed from a software distribution platform, while the growth of the number of mobile devices has been matched by the opportunities for new smartphone and other apps.

    More

    Mobile Test Automation With Appium

    Appium as a tool for mobile test automation is getting very popular in the market for mobile automation testing not only it is an open source but also is absolutely free for open discussions in communities to get quicker solutions.

    More

    Psychology & Mindset For Job Seekers

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    QTP Test Automation Training

    QTP (Quick test professional) course series designed for beginner automation QA to advanced level QA for automation. This course covers all concepts and basics fundamental with complete in depth examples…

    More

    Rockstar Resume & Compelling Cover Letter That Sells

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    Salary Negotiation to Probation and Promotion

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    Software Testing Training Career Package

    Software Testing course allows you to learn from the very core fundamentals to advance level testing course which is intended for anyone who is new to testing or have been in the testing and want to learn more in details.

    More

    Ultimate Job Search Strategies To Find Hidden Job Market

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    User Acceptance Testing

    User Acceptance Testing is normally the pre-production testing that is done by Users or probably the Product Owners in Agile terms.

    More