DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Because the DevOps movement has redefined engineering responsibilities, SREs now have to become stewards of observability strategy.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Related

  • Testing Level Dynamics: Achieving Confidence From Testing
  • 7 Best Practices for Salesforce Testing
  • Functional Testing for Ensuring Failsafe Operation of SaaS Applications
  • How Do You Choose the Best Test Cases to Automate?

Trending

  • Can You Run a MariaDB Cluster on a $150 Kubernetes Lab? I Gave It a Shot
  • AI Speaks for the World... But Whose Humanity Does It Learn From?
  • Distributed Consensus: Paxos vs. Raft and Modern Implementations
  • AI Agents: A New Era for Integration Professionals
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Testing, Tools, and Frameworks
  4. 8 Types of Functional Testing

8 Types of Functional Testing

Software testing has two categories; Functional and Non-functional Testing. In this article, I have described several functional testing types.

By 
Devangi Shah user avatar
Devangi Shah
·
Updated Apr. 08, 22 · Analysis
Likes (7)
Comment
Save
Tweet
Share
8.7K Views

Join the DZone community and get the full member experience.

Join For Free

Functional testing types

Functional and non-functional testing are the two types of software testing. There are various types of functional testing, that are as below:

  1. Unit Testing
  2. Integration Testing
  3. System Testing
  4. Regression Testing
  5. Smoke Testing
  6. Sanity Testing
  7. Acceptance Testing
  8. User Acceptance Testing

Brief Description of Functional Testing Types

Unit Testing

Unit testing ensures that every piece of code written in a segment produces the best results. Developers just look at the interface and the determination for a part during unit testing. It provides documentation of code progression because each unit of code is thoroughly tested before moving on to the next.

Integration Testing

At least two unit-tested elements of the software are coordinated and tested to ensure that their communication is accurate.

Integration testing can be performed in three different ways:

  1. Top-Down Approach: Modules from the high level of either control stream or as suggested by the design configuration are evaluated first, followed by the low level of modules. A stub is used in the event that a low-level module isn't available.
  2. Low-level modules are tried first, and then important level modules are gradually added, in a reverse of the Top-Down process. In the event that an elevated level module is not available, a driver is used.
  3. Top-Down and Bottom-Up approaches are combined in a hybrid method. At both levels, testing begins and merges at the intermediate level.

System Testing

All of the framework's components are connected, and the framework is tested for consistency and correctness against the required details (Functional or System).

It's a Black-Box testing approach that gives the green light to the coordinated system. In the STLC, it is always tested before the User Acceptance Testing (UAT) (Software Testing Life Cycle). System testing is carried out in a nearly real-world environment and in accordance with real-world usage.

Regression Testing

It turns out that running the relapse test suite after specific upgrades or code updates by developers is critical. Relapse is rushed to ensure that these code modifications haven't impeded present working functionality or introduced any new flaws into the code. Regression experiments are a subset of current Functional Tests that cover the system's most important features. The application modifications should refresh, add, and remove regression cases.

Because they are run frequently and take time to execute, regression test cases are the greatest option for automation testing.

The regression test cases to be run might be selected in one of three ways:

  • Complete the relapse test suite.
  • Choose the relapse suite's high-need trials.
  • Select cases from the relapse suite that will be used to test the features that have been found as a result of the code changes.

Smoke Testing

Following the turn of events, when a new form is issued, Smoke Testing is performed on the application to ensure that all-important functionalities work from start to finish. Smoke testing is usually done for prototypes created during the early stages of development for an application that is not yet stable. During testing, if any significant usefulness isn't working as intended, that specific form is discarded. Designers must fix the bugs and create a new form for further testing.

Sanity Testing

Sanity stability tests are selected from the Regression Test suite and cover key application features. Sanity testing is performed on a new form designed by engineers for somewhat consistent use. When an application successfully passes the Sanity Testing, it is ready to move on to the next level of testing. It's not difficult to get mixed up between the smoke and reasonable soundness testing. Smoke Testing is used to test an underlying application after another form has been completed. Sanity Testing is done on a similar application after several deployments and anytime it has picked up soundness.

Acceptance Testing

The acceptance of the application by the end-user is tested during Acceptance Testing. The goal of this testing is to guarantee that the built framework meets all of the requirements that were established following the formulation of the business requirements. It occurs shortly after System Testing and before the application's final arrival in reality. Acknowledgment testing serves as a foundation for the client to accept or reject the framework. It's a Black-Box testing technique since we're only interested in knowing how well the software is prepared for the market and real users.

User Acceptance Testing

User Acceptance Testing (UAT) is a sort of testing in which the end-user or customer verifies and accepts the software system before it is moved to the production environment. After functional, integration, and system testing, UAT is performed in the final step of testing.

  • Alpha Testing- Performed at the developer’s site by talented testers.
  • Beta Testing- Genuine users perform beta testing at the client's site.

Conclusion

Functional testing, in my opinion, is critical in transforming a client's understanding of customer demands into apps that meet those goals. The repercussions of releasing programs with significant functional flaws can be severe. Functional testing enables the delivery of a quality product when all of the above types of functional testing are conducted at the appropriate time during the development process.

Functional testing unit test Acceptance testing Software system application Smoke testing (software) System testing Integration testing Black-box testing

Published at DZone with permission of Devangi Shah. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Testing Level Dynamics: Achieving Confidence From Testing
  • 7 Best Practices for Salesforce Testing
  • Functional Testing for Ensuring Failsafe Operation of SaaS Applications
  • How Do You Choose the Best Test Cases to Automate?

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!