Your cart is currently empty!
SayPro Explain test design methodology and techniques.
Black Box TestingBLACK BOX TESTING, also known as Behavioral Testing, is a software testing method in which the internal structure/design/implementation of the item being tested is not known to the tester. These tests can be functional or non-functional, though usually functional.This method is named so because the software program, in the eyes of the tester, is like a black box; inside which one cannot see. This method attempts to find errors in the following categories:
- Incorrect or missing functions
- Interface errors
- Errors in data structures or external database access
- Behavior or performance errors
- Initialization and termination errors
black box testing: Testing, either functional or non-functional, without reference to the internal structure of the component or system.black box test design technique: Procedure to derive and/or select test cases based on an analysis of the specification, either functional or non-functional, of a component or system without reference to its internal structure.ExampleA tester, without knowledge of the internal structures of a website, tests the web pages by using a browser; providing inputs (clicks, keystrokes) and verifying the outputs against the expected outcome.Levels Applicable ToBlack Box Testing method is applicable to the following levels of software testing:
- Integration Testing
- System Testing
- Acceptance Testing
The higher the level, and hence the bigger and more complex the box, the more black-box testing method comes into use.TechniquesFollowing are some techniques that can be used for designing black box tests.
- Equivalence Partitioning: It is a software test design technique that involves dividing input values into valid and invalid partitions and selecting representative values from each partition as test data.
- Boundary Value Analysis: It is a software test design technique that involves the determination of boundaries for input values and selecting values that are at the boundaries and just inside/ outside of the boundaries as test data.
- Cause-Effect Graphing: It is a software test design technique that involves identifying the cases (input conditions) and effects (output conditions), producing a Cause-Effect Graph, and generating test cases accordingly.
Advantages
- Tests are done from a user’s point of view and will help in exposing discrepancies in the specifications.
- Tester need not know programming languages or how the software has been implemented.
- Tests can be conducted by a body independent from the developers, allowing for an objective perspective and the avoidance of developer-bias.
- Test cases can be designed as soon as the specifications are complete.
Disadvantages
- Only a small number of possible inputs can be tested and many program paths will be left untested.
- Without clear specifications, which is the situation in many projects, test cases will be difficult to design.
- Tests can be redundant if the software designer/developer has already run a test case.
- Ever wondered why a soothsayer closes the eyes when foretelling events? So is almost the case in Black Box Testing.
White Box TestingWHITE BOX TESTING (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing or Structural Testing) is a software testing method in which the internal structure/design/implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation knowledge is essential. White box testing is testing beyond the user interface and into the nitty-gritty of a system.This method is named so because the software program, in the eyes of the tester, is like a white/transparent box; inside which one clearly sees.white-box testing: Testing based on an analysis of the internal structure of the component or system.white-box test design technique: Procedure to derive and/or select test cases based on an analysis of the internal structure of a component or system.ExampleA tester, usually a developer as well, studies the implementation code of a certain field on a webpage, determines all legal (valid and invalid) AND illegal inputs and verifies the outputs against the expected outcomes, which is also determined by studying the implementation code.White Box Testing is like the work of a mechanic who examines the engine to see why the car is not moving.Levels Applicable ToWhite Box Testing method is applicable to the following levels of software testing:
- Unit Testing: For testing paths within a unit.
- Integration Testing: For testing paths between units.
- System Testing: For testing paths between subsystems.
However, it is mainly applied to Unit Testing.Advantages
- Testing can be commenced at an earlier stage. One need not wait for the GUI to be available.
- Testing is more thorough, with the possibility of covering most paths.
Disadvantages
- Since tests can be very complex, highly skilled resources are required, with a thorough knowledge of programming and implementation.
- Test script maintenance can be a burden if the implementation changes too frequently.
- Since this method of testing is closely tied to the application being tested, tools to cater to every kind of implementation/platform may not be readily available.
Gray Box TestingGRAY BOX TESTING is a software testing method which is a combination of Black Box Testing method and White Box Testing method. In Black Box Testing, the internal structure of the item being tested is unknown to the tester and in White Box Testing the internal structure is known. In Gray Box Testing, the internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.Gray Box Testing is named so because the software program, in the eyes of the tester is like a gray/semi-transparent box; inside which one can partially see.ExampleAn example of Gray Box Testing would be when the codes for two units/modules are studied (White Box Testing method) for designing test cases and actual tests are conducted using the exposed interfaces (Black Box Testing method).Levels Applicable ToThough Gray Box Testing method may be used in other levels of testing, it is primarily used in Integration Testing.Agile TestingAGILE TESTING is a method of software testing that follows the principles of agile software development.This article on Agile Testing assumes that you already understand Agile software development methodology (Scrum, Extreme Programming, or other flavors of Agile).Agile Testing ManifestoThis is adapted from agilemanifesto.org and it might look a little silly to copy everything from there and just replace the term “development” with “test/ing” but here it is for your refreshment.We are uncovering better ways of testingsoftware by doing it and helping others do it.Through this work we have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items onthe right, we value the items on the left more.Agile Testing ValuesIndividuals and interactions over processes and tools: This means that flexible people and communication are valued over rigid processes and tools. However, this does not mean that agile testing ignores processes and tools. In fact, agile testing is built upon very simple, strong and reasonable processes like the process of conducting the daily meeting or preparing the daily build. Similarly, agile testing attempts to leverage tools, especially for test automation, as much as possible. Nevertheless, it needs to be clearly understood that it is the testers who drive those tools and the output of the tools depend on the testers (not the other way round).Working software over comprehensive documentation: This means that functional and usable software is valued over comprehensive but unusable documentation. Though this is more directed to upfront requirement specifications and design specifications, this can be true for test plans and test cases as well. Our primary goal is the act of testing itself and not any elaborate documentation merely pointing toward that goal. However, it is always best to have necessary documentation in place so that the ‘picture’ is clear and the ‘picture’ remains with the team if/when a member leaves.Customer collaboration over contract negotiation: This means that the client is engaged frequently and is closely in touch with the progress of the project (not through complicated progress reports but through working pieces of software). This does put some extra burden on the customer who has to collaborate with the team at regular intervals (instead of just waiting till the end of the contract, hoping that deliveries will be made as promised). But this frequent engagement ensures that the project is heading in the right direction and not toward the building of a frog when a fish is expected.Responding to change over following a plan: This means accepting changes as being natural and responding to them without being afraid of them. It is always nice to have a plan beforehand but it is not very nice to stick to a plan, at whatever the cost, even when situations have changed. Let’s say you write a test case, which is your plan, assuming a certain requirement. Now, if the requirement changes, you do not lament over the wastage of your time and effort. Instead, you promptly adjust your test case to validate the changed requirement. And, of course, only a FOOL would try to run the same old test case on the new software and mark the test as FAIL.Principles Behind Agile Testing ManifestoBehind the Agile Testing Manifesto are the following principles which some agile practitioners, unfortunately, fail to understand or implement. We urge you to go through each principle and digest them thoroughly if you intend to embrace Agile Testing. On the right column, the original principles have been re-written specifically for software testers.
We follow these principles: | What it means for Software Testers: |
Our highest priority is to satisfythe customer through the earlyand continuous delivery ofvaluable software. | Our highest priority is to satisfy the customerthrough the early and continuous delivery ofhigh-quality software. |
Welcome changingrequirements,Even late in development.Agile processes harness changefor the customer’scompetitive advantage. | Welcome changing requirements, even late intesting. Agile processes harness change for the customer’s competitive advantage. |
Deliver working softwarefrequently, from a couple of weeksto a couple of months,with a preference to theshorter timescale. | Deliver high-quality software frequently, from acouple of weeks to a couple of months, with apreference to the shorter timescale. |
Business people and developersmust work together daily throughoutthe project. | Business people, developers, and testers mustwork together daily throughout the project. |
Build projects around motivatedindividuals. Give them theenvironment and support they need,and trust them to get the job done. | Build test projects around motivated individuals.Give them the environment and support theyneed, and trust them to get the job done. |
The most efficient and effectivemethod of conveying informationto and within a development teamis a face-to-face conversation. | The most efficient and effective method ofconveying information to and within a test team isa face-to-face conversation. |
Working software is the primarymeasure of progress. | Working high-quality software is the primarymeasure of progress. |
Agile processes promotesustainable development. Thesponsors, developers, and usersshould be able to maintain aconstant pace indefinitely. | Agile processes promote sustainable developmentand testing. The sponsors, developers, testers, andusers should be able to maintain a constant paceindefinitely. |
Continuous attention totechnical excellence andgood design enhances agility. | Continuous attention to technical excellence andgood test design enhances agility. |
Simplicity–the art of maximizingthe amount of work not done–isessential. | Simplicity–the art of maximizing the amount ofwork not done–is essential. |
The best architectures,requirements, and designsemerge from self-organizing teams. | The best architectures, requirements, anddesigns emerge from self-organizing teams. |
At regular intervals, the teamreflects on how to become moreeffective, then tunes and adjusts its behavior accordingly. | At regular intervals, the test team reflects on howto become more effective, then tunes and adjustsits behavior accordingly. |
Importance of Testing MethodologiesAs software applications get ever more complex and intertwined and with the large number of different platforms and devices that need to get tested, it is more important than ever to have a robust testing methodology for making sure that software products/systems being developed have been fully tested to make sure they meet their specified requirements and can successfully operate in all the anticipated environments with the required usability and security.This page describes the various components of a thorough testing methodology and illustrates how Spira Test is best suited to help you implement and manage them on your projects.It is a complete solution that includes requirements management, test , release management and defect tracking all fully integrated from day one.Highly intuitive web application that provides a complete picture of a project’s status and health yet requires only a web-browser.Ability to leverage your existing technology investments.Functional TestingThe functional testing part of a testing methodology is typically broken down into four components – unit testing, integration testing, system testing and acceptance testing – usually executed in this order. Each of them is described below:Unit TestingThe Unit testing part of a testing methodology is the testing of individual software modules or components that make up an application or system. These tests are usually written by the developers of the module and in a test-driven-development methodology (such as Agile, Scrum or XP) they are actually written before the module is created as part of the specification. Each module function is tested by a specific unit test fixture written in the same programming language as the module.lncludes support for the management and execution of automated unit tests. With its library of plugins and extensions for all of the major unit test frameworks , Spira Test allows the test manager to ensure that there is full coverage of all program code and that all unit tests have passed.Integration TestingThe Integration testing part of a testing methodology is the testing of the different modules/components that have been successfully unit tested when integrated together to perform specific tasks and activities (also known as scenario testing). This testing is usually done with a combination of automated functional tests and manual testing depending on how easy it is to create automated tests for specific integrated components.Spira Test includes support for storing, managing and coordinating integration tests across various modules and components. With its library of plugins and extensions for different automated functional testing tools including our Rapise automation platform, Spira Test is the perfect solution for managing your integration testing.System TestingThe system testing part of a testing methodology involves testing the entire system for errors and bugs. This test is carried out by interfacing the hardware and software components of the entire system (that have been previously unit tested and integration tested), and then testing it as a whole. This testing is listed under the black-box testing method, where the software is checked for user-expected working conditions as well as potential exception and edge conditions.SpiraTest includes support for storing, managing and coordinating system tests across all the modules and components that make up a system. SpiraTest support data-driven testing where test cases are defined with input parameters and different combinations of test data can be passed to the manual and automated tests. This ensures that both expected and exception cases can be tested using the same test frameworks.Acceptance TestingThe acceptance testing part of a testing methodology is the final phase of functional software testing and involves making sure that all the product/project requirements have been met and that the end-users and customers have tested the system to make sure it operates as expected and meets all their defined requirements:SpiraTest provides a powerful manual testing solution that helps you coordinate and manage you acceptance testing activities, with all the test scripts, assignments, test results and associated defects/bugs all tracked in a single unified system. With SpiraTest’s requirements test coverage capabilities you can validate that all of your requirements have been fully tested to your customer’s satisfaction.Non-Functional TestingIn most testing methodologies, functional testing involves testing the application against the business requirements. Functional testing is done using the functional specifications provided by the client or by using the design specifications like use cases provided by the design team.On the other hand, non-functional testing involves testing the application against the non-functional requirements, which typically involve measuring/testing the application against defined technical qualities, for example: vulnerability, scalability, usability. Some examples of non-functional testing are described below:Performance, Load, Stress TestingThere are several different types of performance testing in most testing methodologies, for example: performance testing is measuring how a system behaves under an increasing load (both numbers of users and data volumes), load testing is verifying that the system can operate at the required response times when subjected to its expected load, and stress testing is finding the failure point(s) in the system when the tested load exceeds that which it can support.SpiraTest includes support for storing, managing and coordinating your performance, load and stress testing activities. With its library of plugins and extensions for different automated performance testing tools including LoadRunner, JMeter and NeoLoad, SpiraTest is the perfect solution for managing your performance testing.Security, Vulnerability TestingPreviously, security was something that was tested after-the-fact. With the rise in cyber-crime and the awareness of the risks associated with software vulnerabilities, application security is now something that needs to be designed and developed at the same time as the desired business functionality. Security testing tests the software for confidentiality, integrity, authentication, availability, and non-repudiation. Individual tests are conducted to prevent any unauthorized access to the software code.Usability TestingThe usability testing part of a testing methodology looks at the end-user usability aspect of the software. The ease with which a user can access the product forms the main testing point. Usability testing looks at five aspects of testing, – learnability, efficiency, satisfaction, memorability, and errors.Compatibility TestingThe compatibility part of a testing methodology tests that the product or application is compatible with all the specified operating systems, hardware platforms, web browsers, mobile devices, and other designed third-party programs. Compatibility tests check that the product works as expected across all the different hardware/software combinations and that all functionality is consistently supported.SpiraTest makes the managing and tracking of your cross-platform testing easy, it enabled you to quickly configure different test plans for the different hardware/software combinations and make sure that all of the requirements and test cases have been executed (and passed) against all of the specified combinations and configurations.Please visit our website at www.saypro.online Email: info@saypro.online Email: info@saypro.online Call: + 27 11 071 1903 WhatsApp: + 27 84 313 7407. Comment below for any questions and feedback. For SayPro Courses, SayPro Jobs, SayPro Community Development, SayPro Products, SayPro Services, SayPro Consulting, and SayPro Advisory visit our website to www.saypro.online
Leave a Reply