The purpose of this article is listing system test team roles, emphasizing the importance of the main role and ways to achieve it. In addition, this article will explain the importance of system test group in general and in a project life cycle. I will say that being part of system test group even for a short period of time is mandatory. Gaining vertical system knowledge and understand better and quicker the system functionalities can be achieved by being a tester in system test group for certain period of time, proven! There is a meaningful trade-off between test effort investment and providing the desired quality in context of software complexity. System test will be more efficient if the software is more complex. It does not mean that system test will not positively impact the software quality by testing simple software. From experience, other testing groups as Sub System Test or Unit Test can provide high quality for simple software changes or one module as well as system test. These groups are integrated in the development teams, so that efforts can be saved. The most important role of system test is detecting all critical and high severities defects. Test cases definition and execution should target directly for achieving this role. In a project life cycle system test team is starting testing right after development phase is finished. An official software delivery to the customer is performed right after system test phase is finished. Thats why the defects with major severity must be detected, fixed and re-tested during system test period. Delivering software with critical or high severities defects can cause many problems such as: 1. Crises with the customer that impact future potential businesses. 2. Loss of money. 3. Law sues or other legal issues. 4. Losing end users (consumers) of customer. System test is the last gate before delivery to customer. From personal experience of managing different testing groups in both customize and product software I must say that when system test successfully fulfilled the mentioned role above the whole project of implementing a version was declared as successful project. There are many positive businesses, professional and personal implications for a success project. System test must be strong professional team. A professional tester must know the system from all sides as well as being accurate, assertive and fluent. The attitude against system test team is not a very nice one. There are several reasons for that: 1. Many people from a specific project or company are not completely understanding system test importance or tasks, they usually dont have enough quality assurance awareness. 2. Developers do not like that someone is detecting defects in their code. 3. A bad report of system test related to the overall system stability, can delay the delivery to the customer, managers definitely dont like it. A professional strong system test team will change this attitude for the benefit of the project by providing high quality software. How to achieve the main role of detecting all critical and major severity defects? In software, several components or modules are connected. Some of them are internal and others are external. A complex system will have many different interfaces, some of them are GUI applications others are receiving flat files etc. System test needs to understand the entire components and interfaces work flows. All inputs, outputs, data bases, variables, configuration, definitions, business implementation etc should be clear to system test. With this knowledge testers can write test cases which reflect the system performances from regression and changes point of views. Each test case is simulating a real live scenario. Test cases should be written and executed with priorities according to the real live volume of each scenario. System test will identify all the cross application scenarios and test them carefully. An output of one application is an input of another one and so on. Test execution will run on environments which close to the production platform from data and infrastructure point of views. Last regression execution should run on special production like environment. System test should get higher focus from the entire project during the execution period. Quick software solutions should be provided from the development team in order to be able to perform re-testing activity and keep the defined time table. This method is working! You might think that part of the above system test activities are more UAT oriented, but its not. UAT have a lot more to test in order to approve software to production phase. UAT is going over rate after rate, button after button, row after row etc. Many managers, even system test mangers, are thinking that system test should only execute the many flow scenarios or check that the system is musician. This is a wrong approach! In addition to the bad quality the customer will get, UAT will never complete the work on time and bugs will be found in production. Other system test roles are pretty trivial: 1. Information source System test is functioning as information source almost all for involved groups in the project. Managers, development team, implementation team, training for UAT etc. 2. Test Cases Design System is responsible for documenting new test cases due to new software changes as well as maintaining the regression test scenarios. 3. Tracking Defects The whole management of defect tracking is done by system test. 4. Status Report Reports of test cases coverage (executed), number of open high severity defects and over all of the system stability are generated by system test and providing an important information for the project management. |