<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian</link><pubDate>Thu, 18 Jul 2024 14:31:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Current Revision posted to Guide by joel.larin on 7/18/2024 2:31:28 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="during_development"&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2 id="leading_up_to_go_live"&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2 id="during_hardening"&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2 id="deployment"&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2 id="downloadables"&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/Appian_5F00_testing_5F00_one_5F00_pager.pdf"&gt;community.appian.com/.../Appian_5F00_testing_5F00_one_5F00_pager.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: testing, Architecture&lt;/div&gt;
</description></item><item><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian/revision/6</link><pubDate>Tue, 23 Apr 2024 13:23:38 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>Appian Max Team</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Revision 6 posted to Guide by Appian Max Team on 4/23/2024 1:23:38 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="during_development"&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2 id="leading_up_to_go_live"&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2 id="during_hardening"&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2 id="deployment"&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2 id="downloadables"&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/3757.TestingOnePagerPlaybook.pdf"&gt;community.appian.com/.../3757.TestingOnePagerPlaybook.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: testing, Architecture&lt;/div&gt;
</description></item><item><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian/revision/5</link><pubDate>Thu, 22 Feb 2024 21:18:23 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>Appian Max Team</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Revision 5 posted to Guide by Appian Max Team on 2/22/2024 9:18:23 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="during_development"&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2 id="leading_up_to_go_live"&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2 id="during_hardening"&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2 id="deployment"&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2 id="downloadables"&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/3757.TestingOnePagerPlaybook.pdf"&gt;community.appian.com/.../3757.TestingOnePagerPlaybook.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: testing, Architecture&lt;/div&gt;
</description></item><item><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian/revision/4</link><pubDate>Wed, 01 Nov 2023 14:55:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Revision 4 posted to Guide by joel.larin on 11/1/2023 2:55:17 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="during_development"&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2 id="leading_up_to_go_live"&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2 id="during_hardening"&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2 id="deployment"&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2 id="downloadables"&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/3757.TestingOnePagerPlaybook.pdf"&gt;community.appian.com/.../3757.TestingOnePagerPlaybook.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: testing, Architecture&lt;/div&gt;
</description></item><item><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian/revision/3</link><pubDate>Wed, 01 Nov 2023 14:53:02 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Revision 3 posted to Guide by joel.larin on 11/1/2023 2:53:02 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="during_development"&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2 id="leading_up_to_go_live"&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2 id="during_hardening"&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2 id="deployment"&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2 id="downloadables"&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/3757.TestingOnePagerPlaybook.pdf"&gt;community.appian.com/.../3757.TestingOnePagerPlaybook.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Fundamentals of Testing in Appian</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian/revision/2</link><pubDate>Wed, 01 Nov 2023 14:50:01 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Revision 2 posted to Guide by joel.larin on 11/1/2023 2:50:01 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/3757.TestingOnePagerPlaybook.pdf"&gt;community.appian.com/.../3757.TestingOnePagerPlaybook.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Testing-tedst</title><link>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian/revision/1</link><pubDate>Wed, 01 Nov 2023 14:49:18 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7e5fd8d4-d42b-4897-906e-78449b0086d1</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3409/fundamentals-of-testing-in-appian#comments</comments><description>Revision 1 posted to Guide by joel.larin on 11/1/2023 2:49:18 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/800x601/__key/communityserver-wikis-components-files/00-00-00-00-46/testing_5F00_overview_5F00_3.png" /&gt;&lt;/div&gt;
&lt;p&gt;Testing is vital to ensure that only high-quality projects are produced. Throughout the application&amp;#39;s lifecycle, testing strategies can be categorized into the following stages:&lt;/p&gt;
&lt;ol style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Before development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;During development&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Leading up to go-live&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;During hardening&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This article will provide an overview of the varied activities and types of tests that can be conducted at each development stage.&lt;/p&gt;
&lt;h2&gt;Before Development&lt;/h2&gt;
&lt;p&gt;At the start of the development cycle, the project team should convene to establish a testing strategy. This strategy ensures that project requirements are met, necessary resources are allocated, and potential risks are identified.&lt;/p&gt;
&lt;h3&gt;User Story Testing Standards&lt;/h3&gt;
&lt;p&gt;User stories are non-technical descriptions of an application&amp;#39;s feature and are central to agile software development. Before development begins, the Appian team and the customer team should agree on standards for testing. A &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;User Story Testing Checklist&lt;/a&gt; can be used to test each story. Each user story will be required to pass the criteria set forth in its &lt;a href="/success/w/guide/3315/ready-to-done-streamline-user-stories-in-appian"&gt;Definition of Ready&lt;/a&gt;, so test cases should be created ahead of time to give the developer a better idea of the requirements.&lt;/p&gt;
&lt;h3&gt;Performance and Load Testing&lt;/h3&gt;
&lt;p&gt;These tests assess the application&amp;#39;s behavior under varying conditions. Performance testing observes the system during peak usage, while load testing focuses on its response to a large user base. Factors like data size, peak usage, and user count are essential. Before initiating performance testing, it&amp;#39;s crucial to:&lt;/p&gt;
&lt;ul style="font-size:110%;"&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify test data&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Establish expected workflow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Identify different usage scenarios.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Determine the performance test environment.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional resources can be found in &lt;a href="/success/w/guide/3215/performance-testing-methodology/"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Automated Testing&lt;/h3&gt;
&lt;p&gt;Automated testing is a software tool that automates the process of application testing by running a series of test cases. While automating manual end user tests can decrease the time needed for testing, there&amp;rsquo;s a time and cost involved in creating the tests for the entire application. The project team and stakeholders should meet to determine what types of automated tests will take place based on the time and resources that are available. Some types of automated testing tools are &lt;a href="/b/appmarket/posts/fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;, &lt;a href="/b/appmarket/posts/cucumber-for-appian"&gt;Cucumber for Appian&lt;/a&gt;, and &lt;a href="/b/appmarket/posts/appian_2d00_selenium_2d00_api"&gt;Appian&amp;rsquo;s Selenium API&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;During Development&lt;/h2&gt;
&lt;p&gt;Throughout the development sprint, a variety of tests are conducted. Most are performed by the development team, but as the sprint concludes, the client or their QA team should undertake some.&lt;/p&gt;
&lt;h3&gt;Expression Rule Test Cases&lt;/h3&gt;
&lt;p&gt;In an expression rule object, test cases can be written and stored to determine if the expected results are being achieved based on certain input. Test cases can be run within the expression rule or through the Manage Test Cases dialog from the Settings menu in the Appian Designer.&amp;nbsp;See &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;&amp;nbsp;to learn more.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;Unit testing is for testing individual units or small interconnected functionalities of the application. Typically performed by the developer, test cases are created before development. Objects such as expression rules and decision rules have an expected result, so code is written to test all possible scenarios. More information can be found in &lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;and &lt;a href="/success/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;Creating Expression Rule Test Cases&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/960x720/__key/communityserver-wikis-components-files/00-00-00-00-46/2350.expressionImage2.png" /&gt;
&lt;figure style="display:inline-block;font-size:100%;margin-top:0.6rem;"&gt;&lt;em&gt;An example expression rule that has coverage and error handling tests.&lt;/em&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3&gt;System Integration Testing&lt;/h3&gt;
&lt;p&gt;After Unit Testing, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;System integration testing (SIT)&lt;/a&gt; is used to assess the overall functionality and interactions between the different components. This testing includes workflows, integrations with outside systems, and database connections.&lt;/p&gt;
&lt;h3&gt;Peer Testing&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-weight:400;"&gt;During a sprint, peer reviewers (fellow developers from the team) should be utilized to conduct similar tests performed by the developer, as well as to ensure best practices and common design standards are followed.&amp;nbsp;&lt;/span&gt;Review&amp;nbsp;the &lt;a href="/success/w/article/3217/user-story-testing-checklist"&gt;user story testing checklist&lt;/a&gt; completed prior to development and use it as a guide for your developer and peer review testing.&amp;nbsp;&lt;/span&gt;Consider adopting the&amp;nbsp;&lt;span&gt;&lt;a href="/b/appmarket/posts/aquaman"&gt;AQuAMan&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;framework to automate and speed up some of the peer review process.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;User Acceptance Testing&lt;/h3&gt;
&lt;p&gt;While user acceptance testing (UAT) is typically performed as the final phase in the development sprint and prior to software launch, it should also be done throughout the duration of the project. UAT is designed to make sure an application meets the needs of the business, is free of bugs, and functions as intended.&amp;nbsp;See &lt;a href="/success/w/guide/3337/user-acceptance-testing-overview"&gt;User Acceptance Testing Overview&lt;/a&gt;&amp;nbsp;for more.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression testing is used to ensure that any changes or updates in the software will not negatively affect the working functionality of the application amidst the new changes.&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Exploratory&amp;nbsp;Testing&lt;/h3&gt;
&lt;p&gt;&lt;a href="/success/w/guide/3339/exploratory-testing"&gt;Exploratory testing&lt;/a&gt; is used to identify potential edge cases, i.e. problems that occur only under unique, rare conditions. This type of testing is performed by testers themselves rather than automated scripts. Be sure to incorporate exploratory testing as it&amp;#39;s useful for catching&amp;nbsp;bugs that might otherwise go undetected.&lt;/p&gt;
&lt;h2&gt;Leading Up to Go Live&lt;/h2&gt;
&lt;p&gt;Prior to the Go Live, stringent user acceptance testing should be performed at a level of granularity that is appropriate for the scope of work.&lt;/p&gt;
&lt;h2&gt;During Hardening&lt;/h2&gt;
&lt;p&gt;During &lt;a href="/success/w/guide/3338/how-to-undergo-a-hardening-sprint"&gt;Hardening&lt;/a&gt;, the team&amp;rsquo;s time is focused on full end-to-end testing, catching and resolving bugs, and fine tuning application performance. While most major bugs and issues should have already been resolved in prior testing phases, hardening provides an opportunity to catch more minor flaws and UX adjustments, thereby mitigating risk and improving overall confidence in the production release.&lt;/p&gt;
&lt;h3&gt;End to End Testing&lt;/h3&gt;
&lt;p&gt;In end to end testing, the focus is on the entire system&amp;rsquo;s functionality. It&amp;rsquo;s purpose is to ensure the flow of data is maintained and the software works as intended in all environments. End to end testing can be performed/assissted by automated testing tools like &lt;a href="/success/w/guide/3313/automated-testing-with-fitnesse-for-appian"&gt;Fitnesse for Appian&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Exploratory Testing&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s a good idea to again use exploratory testing during the hardening phase, as edge cases can be hard to find using automated tools.&lt;/p&gt;
&lt;h2&gt;Deployment&lt;/h2&gt;
&lt;p&gt;Testing during the deployment stage allows the team to evaluate the functionality of the application in the exact environment where it needs to function.&lt;/p&gt;
&lt;h3&gt;Systems Integration Testing&lt;/h3&gt;
&lt;p&gt;After deployment, &lt;a href="/success/w/guide/3341/system-integration-testing"&gt;SIT&lt;/a&gt; is again performed to evaluate the behavior of the entire integrated system and to make sure that all connections have been maintained.&lt;/p&gt;
&lt;h3&gt;Unit Testing&lt;/h3&gt;
&lt;p&gt;When inspection occurs during direct deployment, Appian will check the package for any failing test cases. Review and rerun test cases until the issues are resolved. See&amp;nbsp;&lt;a href="/success/w/guide/3336/functional-testing"&gt;Functional Testing&amp;nbsp;- Unit Testing&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;h3&gt;Regression Testing&lt;/h3&gt;
&lt;p&gt;After work completes on development, regression testing should be performed by the QA team to ensure that all components are still functional and work as intended.&lt;/p&gt;
&lt;h3&gt;Health Check&lt;/h3&gt;
&lt;p&gt;Health Check is a process that provides insights into an application. It can identify services and nodes that pose a high risk to the performance of the application, check to make sure that best practices are being followed, and provide graphs detailing historical trends in the environment. See the &lt;a href="https://docs.appian.com/suite/help/23.3/health-check.html"&gt;Health Check&lt;/a&gt; documentation for more.&lt;/p&gt;
&lt;p&gt;Testing is an important step in the development of any application. Tests need to be planned and executed during every stage of software development. By having a proper test plan, you can identify bugs, errors, and missing requirements, which will guarantee the quality of the application.&lt;/p&gt;
&lt;h2&gt;Downloadables&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;This one-pager identifies critical testing strategies that should be embedded in every Appian delivery team and recommends others that are dependent upon the client and solution being developed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-46/3757.TestingOnePagerPlaybook.pdf"&gt;community.appian.com/.../3757.TestingOnePagerPlaybook.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>