{"id":36136,"date":"2022-05-16T14:47:43","date_gmt":"2022-05-16T11:47:43","guid":{"rendered":"https:\/\/orbitsoft.com\/blog\/?p=36136"},"modified":"2023-06-29T12:55:26","modified_gmt":"2023-06-29T09:55:26","slug":"systems-testing-at-orbitsoft","status":"publish","type":"post","link":"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/","title":{"rendered":"Systems testing at OrbitSoft"},"content":{"rendered":"\n<p>QA engineers at OrbitSoft test each product in several stages: smoke testing \u2192 functional \u2192 regression \u2192 and acceptance testing. Through careful testing, a customer receives the functionality they expect. In this article, we describe our work process in detail.<\/p>\n\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-Z2niUkJ\"><h2 class=\"article__h\">Stage 1: Requirements Analysis and Documentation <\/h2><\/div>\n\n\n<p>Testing starts after product development finishes. Before starting work, testers prepare documentation: a test plan, checklists, and test cases.<\/p>\n\n\n\n<p>The test plan is a document describing the tested functions, strategies, and starting and ending dates of testing.<\/p>\n\n\n\n<p>The checklist is a list of checks for testing a product.<\/p>\n\n\n\n<p>The test case is a description of a task from a checklist with an expected result, and a set of preconditions and input values.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-1rcg7I\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/1.png\" alt=\"\">\n    <\/div>\n                <figcaption> Selecting a list for payment &#8211; 4.2 Hold &#8211; 4.3 Fixing the wiring &#8211; 4.4 Result of fixing the writing &#8211; 4.5 Confirmation\/Cancellation of Hold <\/figcaption>\n    <\/figure><\/div>\n\n\n<p>Testers write a test plan based on the terms of reference which were drawn up by the developers. For example, based on the terms of reference for the form of payment on the site.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-Z1uC2l6\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/2-2.png\" alt=\"\">\n    <\/div>\n                <figcaption>This is an example of a checklist from one of the projects: description of functions and status, and whether they work or not.<\/figcaption>\n    <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-CE7NE\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/3-2.png\" alt=\"\">\n    <\/div>\n                <figcaption>This is an example of a test case: a description of the steps involved in checking the performance of each function.<\/figcaption>\n    <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-WHrV9\"><h2 class=\"article__h\">Stage 2: Smoke testing <\/h2><\/div>\n\n\n<p>To find obvious bugs, we run black box testing. This process is also called smoke testing, The main goal is to check the stability of the system as a whole.<\/p>\n\n\n\n<p>For example, a project won\u2019t be able to make money if the system isn\u2019t able to process payments. To make sure that everything works, testers go to the page with payments and check whether the system outputs correctly or not.<\/p>\n\n\n\n<p>If this stage is passed successfully, the tester moves on. If the tester finds an error, they create a task for developers to revise.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-VdkvB\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/4.png\" alt=\"\">\n    <\/div>\n                <figcaption>Orbit Ad Server screenshot: on the Manage Bank Payments page, the administrator should be able to view all bank payments made through the system<\/figcaption>\n    <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-2tono8\"><h2 class=\"article__h\">Stage 3: Functional testing <\/h2><\/div>\n\n\n<p>At this stage, we check how the functions correspond to the terms of reference: we look at functionality, accessibility, usability, and the user interface. The main goal is to test the logic of the operation of each function on different data sets and under different conditions. The result of functional testing will be a description of all inconsistencies and errors.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-24Vf1E\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/5.png\" alt=\"\">\n    <\/div>\n        <\/figure><\/div>\n\n\n<p>If the result during testing differs from the desired outcome, and the cause of the error isn\u2019t obvious, engineers form an SQL query into the database, or refer to the log files for the system under test for additional information.<\/p>\n\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-Z1MjfWr\"><h2 class=\"article__h\">Stage 4: Regression testing <\/h2><\/div>\n\n\n<p>After testers find and describe inconsistencies, regression testing is performed.<\/p>\n\n\n\n<p>This stage is divided into two parts. The first part is to check the corrections of errors found in the previous stage, and the second is to recheck all the functions. This must be done, as after fixing bugs there is no guarantee that the component that was checked earlier won\u2019t break with the new corrections.<\/p>\n\n\n\n<p>For example, say developers have fixed a bug in the display of the calendar, and now dates are in a single format. This fix may have affected performance. Testers go to the admin panel and check the functions, e.g., whether reports are now created with dates in the required format, and whether all types of reports are available.<\/p>\n\n\n\n<p>If a function fails, testers create a task for the developers to fix the bug. After the correction, a second check will be performed. If everything works and there are no more bugs, no improvements will be needed. Then we move on to the final stage of testing.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-Z2iREte\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/6-1.png\" alt=\"\">\n    <\/div>\n                <figcaption>This is how the admin panel looks after fixing the bugs. Testers click on each field and check that the reports are available, and that the dates are displayed in the correct format.<\/figcaption>\n    <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-ZetTSw\"><h2 class=\"article__h\">Stage 5: acceptance testing <\/h2><\/div>\n\n\n<p>Final testing before release. I\u2019is carried out in order to check how the script corresponds to the task described by the customer. Acceptance testing verifies core functionality.<\/p>\n\n\n\n<p>For example: the site opens on different devices, the user can send contacts through the form, a video plays, a banners open.<\/p>\n\n\n\n<p>When the development is completed and all tests have been passed successfully, at the request of the customer, QA engineers conduct production testing on the customer&#8217;s equipment.<\/p>\n\n\n<div class=\"wp-block-lazyblock-figure lazyblock-figure-ZzBUeD\"><figure class=\"article__figure \">\n        <div class=\"article__figure-img\" >\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-2021-12-28-\u0432-08.37.52.png\" alt=\"\">\n    <\/div>\n                <figcaption>OrbitSoft has a wide range of devices from different manufacturers and model years. For example, in Asia, phone models that have already gone out of production are popular, so for testing Asian projects, such gadgets are stored at our testing facilities.<\/figcaption>\n    <\/figure><\/div>\n\n<div class=\"wp-block-lazyblock-heading lazyblock-heading-WacU9\"><h2 class=\"article__h\">Comparison of test types <\/h2><\/div>\n\n\n<p><strong>Smoke-testing.<\/strong> First tests. The main goal is to check the stability of the system, so that we may proceed with further development and more detailed testing of functions. Custom scripts. Non-functional requirements. Test plan, checklists, test cases. Black box model.<\/p>\n\n\n\n<p><strong>Functional testing.<\/strong> When the individual functions of the system are implemented. Confirms that the system meets the requirements according to the terms of reference. All the logic of the implemented functions: accessibility, usability, user interface, database API. Performance testing (load testing, stress testing, stability testing), installation testing, security testing, configuration testing. Test plan, checklists, test cases. Black and gray box model, database requests, API requests.<\/p>\n\n\n\n<p><strong>Regression testing.<\/strong> After the functional testing phase. Checks that system works correctly after modifications. Correctness of fixes and improvements of defects that were found at the previous stage.  All functions are being revised so that new fixes do not affect already-tested system functions. Functions that worked correctly in the previous step, if none of the developer fixes could affect the state and logic of these functions. Test plan, checklists, test cases. Black and gray box model, database requests, API requests.<\/p>\n\n\n\n<p><strong>Acceptance testing.<\/strong> Final testing before the delivery of project to the customer. Confirms that developers have implemented everything as requested by the customer. User\u2019s interface scenario check. Each function separately. Test plan, checklists, test cases. Black box model.<\/p>\n\n\n<div class=\"wp-block-lazyblock-heading3 lazyblock-heading3-27AXFQ\"><h3 class=\"article__h3\">Examples from OrbitSoft projects<\/h3><\/div>\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Customer<\/td><td>Project<\/td><td>Tests performed<\/td><\/tr><tr><td>European video entertainment service<\/td><td>Add a new ad slider feature to the Orbit Ad Server online ad management system<\/td><td>On the advertiser&#8217;s side we tested: internal content formats.<br>On the publisher&#8217;s side: advertising settings, types of display ads.<br>On the side of the administrator, advertiser and publisher, we checked how the system of monetary settlements works, setting up reports.<br>On the side of the system: creating and displaying ads, moderation, downloading videos of any formats, placing links for pulling videos from a third-party service, correct operation of the online advertising management system when changing settings and adding new functions, service availability &#8211; all operating systems, browsers, VPN, and under high load (traffic).<\/td><\/tr><tr><td>Advertising agency &#8220;Playmedia&#8221;<\/td><td>Change site functions: change the script for displaying ads on the site so that the ad is not visible immediately, but at the moment of scrolling through the page to the desired content<\/td><td>We tested the scripts for displaying all types of advertisements in accordance with the terms of reference in different parts of the web page.<br>Through the browser console, we checked the operation of the script, which determines at which moment the advertisement is loaded.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<div class=\"wp-block-lazyblock-important-block lazyblock-important-block-ZJA9wz\"><div class=\"important-box\">\n  <div class=\"important-box__main\">\n          <p class=\"important-box__h\">Technical block<\/p>\n      \t<p>SQL-requests to the database<\/p>\n<p>Searching and reading logs via the Kibana web interface<\/p>\n<p>Logging: collecting logs &#8211; Logstash, processing logs &#8211; Elasticsearch<\/p>\n<p>Deployment of test benches:<\/p>\n<p>Web Servers: Nginx, Apache Kafka, Apache ZooKeeper, Apache Cassanda<\/p>\n<p>Server Data Base: MySQL, PostgreSQL, MariaDB<\/p>\n<p>Environment to run (compile): Visual Studio<\/p>\n<p>Programming languages: C#, Python, Ruby<\/p>  <\/div>\n  <\/div><\/div>\n\n<div class=\"wp-block-lazyblock-banner lazyblock-banner-1m0hFM\"><div \n  class=\"banner\n   \n  \" \n  >\n    <div class=\"banner__body\">\n        <h2 class=\"banner__h\">We\u00a0release projects for online and offline business<\/h2>\n        <div class=\"banner__content\">\n            <p><strong>We\u00a0work with businesses of\u00a0any scale.<\/strong>\u00a0Our clients include international companies, large and medium-sized businesses, and startups.<\/p>\n<p><strong>Telecom<\/strong>: cellular operators, Internet service providers.<\/p>\n<p><strong>Finance<\/strong>: electronic payment systems, insurance companies and brokers.<\/p>\n<p><strong>Retail<\/strong>: stores, trade networks.<\/p>\n<p><strong>Internet advertising<\/strong>: advertising agencies, advertising networks.<\/p>\n<p><strong>Medicine<\/strong>: clinics, medical services.<\/p>        <\/div>\n                            <div \n              class=\"banner__button button js-form-modal\n               button_style_light-on-promo2\">\n              Discuss or order development                          <\/div>\n            <\/div>\n    <div class=\"banner__photo\">\n        <img decoding=\"async\" src=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/friendship.png\" alt=\"\" class=\"banner__img\">\n    <\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>QA engineers at OrbitSoft test each product in several stages: smoke testing \u2192 functional \u2192 regression \u2192 and acceptance testing. Through careful testing, a customer receives the functionality they expect. In this article, we describe our work process in detail. Testing starts after product development finishes. Before starting work, testers prepare documentation: a test plan, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":36147,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[195],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Systems testing at OrbitSoft - OrbitSoft Blog<\/title>\n<meta name=\"description\" content=\"QA engineers at OrbitSoft test each product in several stages: smoke \u2192 functional \u2192 regression \u2192 and acceptance testing\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Systems testing at OrbitSoft - OrbitSoft Blog\" \/>\n<meta name=\"twitter:description\" content=\"QA engineers at OrbitSoft test each product in several stages: smoke \u2192 functional \u2192 regression \u2192 and acceptance testing\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435-\u043a\u0432.png\" \/>\n<meta name=\"twitter:creator\" content=\"@orbitsoft\" \/>\n<meta name=\"twitter:site\" content=\"@orbitsoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Systems testing at OrbitSoft - OrbitSoft Blog","description":"QA engineers at OrbitSoft test each product in several stages: smoke \u2192 functional \u2192 regression \u2192 and acceptance testing","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/","twitter_card":"summary_large_image","twitter_title":"Systems testing at OrbitSoft - OrbitSoft Blog","twitter_description":"QA engineers at OrbitSoft test each product in several stages: smoke \u2192 functional \u2192 regression \u2192 and acceptance testing","twitter_image":"https:\/\/orbitsoft.com\/blog\/wp-content\/uploads\/\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435-\u043a\u0432.png","twitter_creator":"@orbitsoft","twitter_site":"@orbitsoft","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/","url":"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/","name":"Systems testing at OrbitSoft - OrbitSoft Blog","isPartOf":{"@id":"https:\/\/orbitsoft.com\/blog\/#website"},"datePublished":"2022-05-16T11:47:43+00:00","dateModified":"2023-06-29T09:55:26+00:00","author":{"@id":"https:\/\/orbitsoft.com\/blog\/#\/schema\/person\/e515b3fa91e283750477594c4f028b7b"},"description":"QA engineers at OrbitSoft test each product in several stages: smoke \u2192 functional \u2192 regression \u2192 and acceptance testing","breadcrumb":{"@id":"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/orbitsoft.com\/blog\/systems-testing-at-orbitsoft\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/orbitsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Systems testing at OrbitSoft"}]},{"@type":"WebSite","@id":"https:\/\/orbitsoft.com\/blog\/#website","url":"https:\/\/orbitsoft.com\/blog\/","name":"OrbitSoft Blog","description":"Discover the latest in news and resources for OrbitSoft","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/orbitsoft.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/orbitsoft.com\/blog\/#\/schema\/person\/e515b3fa91e283750477594c4f028b7b","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/orbitsoft.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b1b269c579caf059f82b6d114c63fc49?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b1b269c579caf059f82b6d114c63fc49?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/orbitsoft.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts\/36136"}],"collection":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=36136"}],"version-history":[{"count":7,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts\/36136\/revisions"}],"predecessor-version":[{"id":36584,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/posts\/36136\/revisions\/36584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/media\/36147"}],"wp:attachment":[{"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=36136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/categories?post=36136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orbitsoft.com\/blog\/wp-json\/wp\/v2\/tags?post=36136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}