top of page

Group

Public·8 members
Parker Lopez
Parker Lopez

Software Testing Standards and Procedures: A Practical Guide for Software Engineers (PDF Download)



Software Testing Standards and Procedures: A Comprehensive Guide




Software testing is a vital process that ensures the quality and reliability of software applications. Software testing involves verifying and validating that the software meets the specified requirements and expectations of the end users. In this article, you will learn more about software testing standards and procedures, which are essential for conducting effective and efficient software testing.




Software Testing Standards And Procedures Pdf Download


DOWNLOAD: https://www.google.com/url?q=https%3A%2F%2Furlcod.com%2F2ubTyg&sa=D&sntz=1&usg=AOvVaw3xQ1uhCsC4YaubB2BCNISS



What is Software Testing?




Definition and Importance of Software Testing




Software testing is the process of checking the functionality, performance, usability, security, compatibility, and other aspects of a software application under specified conditions. Software testing can be done manually or automatically, using various tools and techniques.


Software testing is important because it helps to:



  • Detect and fix defects or bugs before the software is delivered to the client or end user.



  • Ensure that the software meets the functional and non-functional requirements.



  • Improve the user satisfaction and trust in the software.



  • Reduce the cost and risk of software maintenance and failure.



  • Enhance the reputation and competitiveness of the software developer or provider.



Software Testing Stages




Software testing typically follows a systematic process that consists of several stages. These stages are:


Requirement Analysis




This stage involves analyzing and understanding the expectations and needs of the end users for a software application that is to be built or modified. The test engineer needs to perform the following tasks to complete the requirement analysis:



  • Read each requirement to check for completeness, clarity, ambiguity, if any.



  • Verify that all possible scenarios have been considered in the requirement analysis phase, and try to identify any uncovered cases or gaps.



  • Discuss any questions or doubts that arise out of the requirement analysis with the stakeholders or team members.



  • Use a requirements traceability matrix (RTM) to ensure the complete requirement coverage of the software under test. An RTM is a document that maps each requirement to one or more test cases that verify it.



Test Planning




This stage involves defining the test objectives, scope, strategy, schedule, estimation, deliverables, and resources required to perform software testing on a software application. The test engineer needs to create a test plan document that describes these aspects in detail. A test plan helps in:



  • Determining the efforts and costs required to validate the quality of the software application.



  • Identifying the test environment, tools, techniques, and methodologies to be used for testing.



  • Defining the roles and responsibilities of the test team members.



  • Establishing the communication and reporting mechanisms among the stakeholders.



  • Managing the risks and issues related to testing.



Test Design




This stage involves designing and developing the test cases that are required for testing the software application. Test cases are the set of inputs, actions, expected results, and postconditions that are used to verify a specific functionality or feature of the software. Test design is performed based on the test plan and the requirements. The test engineer needs to perform the following tasks to complete the test design:



  • Write clear, concise, and comprehensive test cases that cover all the requirements and scenarios of the software application.



  • Use test design techniques such as boundary value analysis, equivalence partitioning, use case testing, and impact based testing to ensure complete test coverage on happy path and negative scenario testing.



  • Map the test cases with the RTM to ensure that each requirement is verified by one or more test cases.



  • Review and optimize the test cases to eliminate any redundancy, inconsistency, or ambiguity.



Test Environment Setup




This stage involves setting up and configuring the hardware, software, network, data, and other components that are required to execute the test cases on the software application. The test environment should be similar to the production environment where the software will be deployed. The test engineer needs to perform the following tasks to complete the test environment setup:



  • Install and verify the functionality of the software application under test.



  • Install and verify the functionality of the test tools and frameworks that are used for testing.



  • Create and populate the test data that are needed for testing.



  • Ensure that the test environment is secure, stable, and isolated from any external interference.



Test Execution




This stage involves running the test cases on the software application and comparing the actual results with the expected results. The test engineer needs to perform the following tasks to complete the test execution:



  • Select and prioritize the test cases based on the test strategy and plan.



  • Execute the test cases manually or automatically using the appropriate tools and techniques.



  • Record and report any defects or deviations that are found during testing.



  • Rerun the failed or fixed test cases until they pass or are resolved.



Test Closure




This stage involves evaluating and concluding the software testing process. The test engineer needs to perform the following tasks to complete the test closure:



  • Analyze and summarize the test results and metrics.



  • Evaluate whether the test objectives and criteria have been met.



  • Prepare and deliver the test deliverables such as test reports, defect reports, RTM, etc.



  • Conduct a lessons learned session to identify the strengths, weaknesses, opportunities, and threats of the testing process.



  • Provide feedback and recommendations for improving the software quality and testing process.



What are Software Testing Standards?




Definition and Purpose of Software Testing Standards




Software testing standards are a set of guidelines, rules, best practices, and processes that define how software testing should be performed. Software testing standards are developed by various organizations such as ISO, IEEE, ISTQB, etc., to ensure consistency, quality, and professionalism in software testing. Software testing standards serve various purposes such as:



  • Providing a common terminology and framework for software testing.



  • Establishing a baseline for measuring and improving software testing performance.



  • Ensuring compliance with regulatory and contractual requirements.



  • Fostering collaboration and communication among software testing stakeholders.



  • Promoting innovation and excellence in software testing.



Types of Software Testing Standards




There are many types of software testing standards that cover different aspects of software testing. Some of the most widely used software testing standards are:


ISO/IEC/IEEE 29119 Series




This is a series of international standards for software testing that define an internationally agreed set of standards for software testing that can be used by any organization when performing any form of software testing. The ISO/IEC/IEEE 29119 series consists of five parts:



  • Part 1: Concepts and Definitions - This part provides a common vocabulary for software testing terms and concepts.



  • Part 2: Test Processes - This part provides a generic process model for software testing that can be applied to any type of software system or organization.



  • Part 3: Test Documentation - This part provides templates for various types of test documents such as test plan, test case, test report, etc.



  • Part 4: Test Techniques - This part provides guidance on how to select and apply various types of test techniques such as black-box testing, white-box testing, etc.



Part 5: Keyword-Driven Testing - This part provides a framework for keyword-driven testing that allows the creation and execution of test cases using keywords that describe the actions and data of the software application. Keyword-driven testing can be used for both manual and automated testing, and it has several advantages such as:



  • It simplifies the test design and development process by separating the test logic from the test data and the test implementation.



  • It enhances the readability and maintainability of the test cases by using descriptive and meaningful keywords.



  • It increases the reusability and modularity of the test cases by using common keywords for common functionalities.



  • It reduces the dependency on technical skills and programming languages by using a data-driven approach.



  • It supports multiple levels of abstraction and granularity by using high-level and low-level keywords.



A typical keyword-driven testing framework consists of four components:



  • Keyword Library: This is a repository of keywords that define the actions and data of the software application. Each keyword has a name, a description, a set of parameters, and a corresponding function or script that implements it.



  • Test Data: This is a set of data that are used as inputs or outputs for the keywords. Test data can be stored in various formats such as Excel sheets, CSV files, databases, etc.



  • Test Cases: These are a set of keywords and test data that are arranged in a specific sequence to verify a particular functionality or feature of the software application. Test cases can be stored in various formats such as Excel sheets, CSV files, databases, etc.



  • Test Runner: This is a tool or framework that executes the test cases by reading the keywords and test data, invoking the corresponding functions or scripts, and reporting the results.



An example of a keyword-driven testing framework is shown below:


Keyword Description Parameters Function/Script --- --- --- --- OpenBrowser Opens a browser window with a specified URL BrowserName, URL open_browser(BrowserName, URL) EnterText Enters text into a specified textbox TextBoxName, TextValue enter_text(TextBoxName, TextValue) ClickButton Clicks on a specified button ButtonName click_button(ButtonName) VerifyText Verifies that a specified text is present on the web page TextValue verify_text(TextValue) CloseBrowser Closes the browser window None close_browser() Test Case ID Keyword Parameters --- --- --- TC_01 OpenBrowser Chrome, https://www.guru99.com TC_01 EnterText SearchBox, Keyword Driven Testing TC_01 ClickButton SearchButton TC_01 VerifyText Keyword Driven Testing Tutorial: A Comprehensive Guide With Examples ... TC_01 CloseBrowser None The test runner would execute the test case TC_01 by performing the following steps:



  • Open a Chrome browser window with the URL https://www.guru99.com



  • Enter the text "Keyword Driven Testing" into the textbox named "SearchBox"



  • Click on the button named "SearchButton"



  • Verify that the text "Keyword Driven Testing Tutorial: A Comprehensive Guide With Examples ..." is present on the web page



  • Close the browser window



IEEE 829 Standard for Test Documentation




This is a standard for documenting various types of test artifacts such as test plan, test design specification, test case specification, test procedure specification, test item transmittal report, test log, test incident report, test summary report, etc. The IEEE 829 standard defines the format and content of each type of test document, as well as their relationship and usage. The IEEE 829 standard helps to:



  • Ensure consistency and completeness of test documentation across different projects and organizations.



  • Facilitate communication and collaboration among software testing stakeholders.



  • Support traceability and accountability of software testing activities and results.



  • Provide evidence and justification for software testing decisions and outcomes.



An example of a test plan document based on IEEE 829 standard is shown below:


Test Plan




Test Plan Identifier




TP_01: Test Plan for Guru99 Bank Demo Website


References




RS_01: Requirement Specification for Guru99 Bank Demo Website


DS_01: Design Specification for Guru99 Bank Demo Website


ST_01: Software Testing Standards and Procedures


Introduction




This document describes the test plan for testing the functionality, performance, usability, security, and compatibility of the Guru99 Bank Demo Website. The test plan defines the test objectives, scope, strategy, schedule, resources, deliverables, and risks involved in the testing process.


Test Items




The test items are the software components or features that are to be tested. The test items for this test plan are:



  • The web pages of the Guru99 Bank Demo Website that provide various banking services such as login, account creation, fund transfer, balance enquiry, etc.



  • The database of the Guru99 Bank Demo Website that stores the customer and transaction data.



  • The web server of the Guru99 Bank Demo Website that handles the requests and responses between the web pages and the database.



Software Risk Issues




The software risk issues are the potential problems or threats that may affect the quality or functionality of the software application. The software risk issues for this test plan are:



  • The web pages of the Guru99 Bank Demo Website may not display correctly or function properly on different browsers, devices, or screen resolutions.



  • The database of the Guru99 Bank Demo Website may not store or retrieve the data accurately or securely.



  • The web server of the Guru99 Bank Demo Website may not handle the load or traffic efficiently or reliably.



Features to be Tested




The features to be tested are the software functionalities or characteristics that are to be verified by testing. The features to be tested for this test plan are:



  • The functionality of the web pages of the Guru99 Bank Demo Website such as login, account creation, fund transfer, balance enquiry, etc.



  • The performance of the web pages of the Guru99 Bank Demo Website such as response time, throughput, resource utilization, etc.



  • The usability of the web pages of the Guru99 Bank Demo Website such as user interface design, navigation, error messages, help system, etc.



  • The security of the web pages and the database of the Guru99 Bank Demo Website such as authentication, authorization, encryption, data protection, etc.



  • The compatibility of the web pages of the Guru99 Bank Demo Website with different browsers, devices, and screen resolutions.



Features not to be Tested




The features not to be tested are the software functionalities or characteristics that are not within the scope of testing. The features not to be tested for this test plan are:



  • The content and layout of the web pages of the Guru99 Bank Demo Website such as images, fonts, colors, etc.



  • The functionality and performance of the third-party components or services that are integrated with the Guru99 Bank Demo Website such as payment gateways, social media plugins, etc.



  • The functionality and performance of the web browser or device that is used to access the Guru99 Bank Demo Website.



Approach




The approach describes the overall strategy and methodology that will be followed to conduct the software testing. The approach for this test plan is:



  • Use a keyword-driven testing framework to design and execute the test cases using keywords that describe the actions and data of the software application.



  • Use a combination of manual and automated testing techniques to verify the functionality, performance, usability, security, and compatibility of the software application.



  • Use various tools and frameworks such as Selenium, JMeter, TestNG, etc., to support the test design, execution, and reporting.



  • Use various types of testing such as functional testing, performance testing, usability testing, security testing, and compatibility testing to cover different aspects of software quality.



  • Use various levels of testing such as unit testing, integration testing, system testing, and acceptance testing to cover different stages of software development.



Item Pass/Fail Criteria




The item pass/fail criteria define the conditions or rules that determine whether a test item has passed or failed the testing. The item pass/fail criteria for this test plan are:



  • A test item passes the testing if it meets all the functional and non-functional requirements specified in the RS_01 document.



  • A test item fails the testing if it does not meet any of the functional or non-functional requirements specified in the RS_01 document.



  • A test item also fails the testing if it causes any critical or major defect that affects the functionality or performance of the software application.



Suspension Criteria and Resumption Requirements




The suspension criteria and resumption requirements define the conditions or rules that determine when to suspend or resume the testing activities. The suspension criteria and resumption requirements for this test plan are:



  • The testing activities will be suspended if any of the following conditions occur:



  • The test environment or test data is not available or not functioning properly.



  • The software application under test is not stable or not ready for testing.



  • The test resources such as test tools, test team members, etc., are not available or not sufficient.



  • The test schedule or budget is exceeded or compromised.



  • The testing activities will be resumed when all of the following conditions are met:



  • The test environment and test data are available and functioning properly.



  • The software application under test is stable and ready for testing.



  • The test resources such as test tools, test team members, etc., are available and sufficient.



  • The test schedule and budget are revised and approved.



Test Deliverables




The test deliverables are the documents or artifacts that are produced during or after the software testing process. The test deliverables for this test plan are:



  • Test Plan Document: This document describes the test objectives, scope, strategy, schedule, resources, deliverables, and risks involved in the software testing process.



  • Test Design Specification: This document describes how a feature or function is to be tested. It includes details such as test cases, test data, expected results, etc.



  • Test Case Specification: This document describes a set of inputs, actions, expected results, and postconditions that are used to verify a specific functionality or feature of the software application. It includes details such as test case identifier, test case description, test case inputs, test case outputs, etc.



Test Procedure Specification: This document describes


About

Welcome to the group! You can connect with other members, ge...

Members

bottom of page