You have been recruited as a TAE by a large travel agency and are now responsible for a mature TAS that is dedicated to functional testing of the company’s booking system, which covers flights, hotels, and packaged holidays. This application contains a complex UI and a lot of functionality. It is undergoing constant maintenance and enhancement by an Agile team that adds tests to the regression test suite at the end of every iteration.
The TAS supports structured scripting and this has been implemented to a high standard, with a well-managed script library and minimal code duplication. The TAA will not support any more advanced scripting techniques. The test automation that has been achieved so far was well received at first but is now the target of increasing criticism. It is perceived as being old-fashioned, poorly documented and, in particular:
1. The test script maintenance overhead is becoming excessive because the test analysts frequently want data values to be changed.
2. Test analysts are complaining that a new test which is similar to an existing one, except for data values, requires a new high-level script, and that they must ask a technical test analyst to do this for them.
3. The nightly full regression run is taking a long time and there is a risk that, as more tests are added, it will soon take too long to run in the available window.
4. Some tests break frequently because of slow response from the SUT.
5. Some transactions are difficult to verify because they rely on variables that cannot be seen through the UI of the SUT.
6. The UI of the TAF is difficult to learn.
The SUT architect is planning a major new release and they have offered to include features that will enhance its testability. You already have plans to deal with items 1, 2 and 3 on the list, so now you are considering how you might mitigate items 4, 5 and 6.
Which TWO improvements will BEST address items 4, 5 and 6?
a) Add an event mechanism to the SUT which the TAF can subscribe to
b) Adopt a set of standard setup and teardown methods
c) Add an API to the SUT that will make the internal variables observable
d) Update and improve the documentation of the TAA
e) Implement hard-coded waits in scripts that have been affected by slow SUT response
You are a TAE responsible for a TAS that is used on several products, all of which have complex UIs. It has been decided that all radio buttons in one of the products will be changed to checkboxes; checkboxes have not been used in the UI before.
You are updating the TAS to align with this change. Which TWO actions would be MOST appropriate?
a) Write a function to handle checkboxes and add it to the function library
b) Amend the function that handles radio buttons to also handle checkboxes
c) Update the Test Automation Architecture
d) Identify all test scripts that will be affected by the change
e) Amend the library naming conventions to accommodate the change
You are currently conducting a Proof of Concept (PoC) aimed at selecting a tool that will be used for the development of a TAS. This TAS will exclusively be used by one team within your organization to implement automated UI-level test scripts for two web apps. The two tools selected for the PoC use JavaScript/TypeScript to implement the automated test scripts and offer capture and playback capabilities. Three test cases for each of the two web apps were selected to be automated during the PoC. The PoC will compare these two tools in terms of their effectiveness in recognizing and interacting with UI widgets exercised by the test cases, to quickly determine whether test automation is possible and which tool is better. Which of the following TAFs is BEST suited for conducting the PoC?
(Which of the following statements refers to a typical advantage of test automation?)
(In User Acceptance Testing (UAT) for a new SUT, in addition to the manual tests performed by the end-users, automated tests are performed that focus on the execution of repetitive and routine test scenarios. In which of the following environments are all these tests typically performed?)
Consider a TAS implemented to perform automated testing on native mobile apps at the UI level, where the TAF implements a client-server architecture. The client runs on-premise and allows creation of automated test scripts using TAF libraries to recognize and interact with the app’s UI objects. The server runs in the cloud as part of a PaaS service, receiving commands from the client, translating them into actions for the mobile device, and sending the results to the client. The cloud platform hosts several mobile devices dedicated for use by this TAS. The device on which to run test scripts/test suites is specified at run time. You are currently verifying whether the test automation environment and all other TAS/TAF components work correctly. Which of the following activities would you perform to achieve your goal?
Which of the following should be done when checking the composition of the test suite?
Consider a TAS aimed at implementing and running automated test scripts at the UI level on web apps. The TAS must support cross-browser compatibility for a variety of supported browsers, by ensuring that the same test script will run on such browsers in the same way without making any changes to it. This is achieved by introducing appropriate abstractions into the TAA for connection and interaction with different browsers. Because of this, the TAS will be able to make direct calls to the supported browsers using each different browser’s native support for automation. Which of the following SOLID principles was adopted?
Which option correctly pairs test automation design principles and patterns with their characteristics?
1. Hides implementation details to expose only what the testers need to create in their test cases.
2. Creates a class file so that updates to locators need to be made in only one place.
3. Includes the idea that components should be freely substitutable with no adverse impact.
4. Introduces an additional facade which stores user actions that interact with page objects.
A CI/CD pipeline consists of two phases: build and deployment. The build phase, among other activities, runs automated test cases at the following test levels: Component Testing (CT) and Component Integration Testing (CIT). If the build phase is successful, the deployment phase is started. The deployment phase first provisions the test environment infrastructure needed to deploy the SUT, then deploys the SUT to this environment, and finally triggers another separate pipeline that runs automated test cases at the following test levels: System Testing (ST) and Acceptance Testing (AT). Which of the following statements is TRUE?
A TAS is used to run on a test environment a suite of automated regression tests, written at the UI level, on different releases of a web app: all executions complete successfully, always providing correct results (i.e., producing neither false positives nor false negatives). The tests, all independent of each other, consist of executable test scripts based on the flow model pattern which has been implemented in a three-layer TAF (test scripts, business logic, core libraries) by expanding the page object model via the façade pattern. Currently the suite takes too long to run, and the test scripts are considered too long in terms of LOC (Lines of Code). Which of the following recommendations would you provide for improving the TAS (assuming it is possible to perform all of them)?
You are employed as a TAE on a project to build a purchasing system. The main requirements for the system are:
1) Allow users to enter details of items that they wish to have purchased and, from these details, create a purchase request.
2) Take each purchase request through a workflow that will allow the requestor's line manager to approve the request, reject it, or return it for clarification/modification.
3) Forward approved requests to the Purchasing Department.
4) Allow purchasers to find the best available supplier and place the request on that supplier as a purchase order.
Requirement 1 has now been delivered and has been satisfactorily tested manually. In parallel, you have developed a TAS so that functional suitability testing can be automated.
You intended to use the implementation of Requirement 1 as a pilot for the TAS. Which TWO of these objectives are MOST appropriate for this pilot?
a) Generate prototypes for the implementation options of the TAS
b) Demonstrate the suitability of at least one TAS implementation option
c) Expose any risks to further deployment of this TAS
d) Assess the quality of the implementation of Requirement 1
e) Enable a calculation of the likely return on investment for this TAS
Which statement correctly describes what a Test Automation Architecture should do?
An automated test case that should always pass sometimes passes and sometimes fails intermittently (non-deterministic behavior) when executed in the same test environment, even if no code (i.e., SUT code or the test automation code) has been changed. Which of the following statements about the root cause of this non-deterministic behavior is TRUE?
As a TA-E, you have successfully verified that a test automation environment and all other components of the TAS are working as expected. Now your goal is to verify the correct behavior for a given automated test suite that will be run by the TAS. Which of the following should NOT be part of the verifications aimed at achieving your goal?
(Which of the following statements about how test automation is applied across different software development lifecycle models is TRUE?)
Your company is about to start a project to replace an old sales and merchandising system with a new version that will be based on modern platforms. The main requirements for the system are:
1. Loading sales data, sent electronically from the stores each evening, into a central database.
2. Producing sales reports for the merchandisers, whose job is to manage stock levels in stores.
3. Producing forecast reports, used to predict future demand for each product, based on a combination of sales history and forecasting parameters. The parameters will be entered by the merchandisers into a browser-based front end and the reports will be produced overnight. The users will be able to retrieve the reports, on screen or in print, via an interactive feature.
Requirements 1 and 2 were already met by the old system and will be rewritten in the new system with some minor functional changes. The sales data will, as before, be loaded in an overnight batch run. There have been problems with the old system at peak periods when this run has taken longer than scheduled, so that dependent jobs could not finish before the start of the next working day. The Data Centre manager requires that the new system’s overnight batch runs take 10% less time than the old one, including the new reports, to allow time for all jobs to complete.
Requirement 3 is new. The functionality provided by the UI will be simple and the Sales & Merchandising manager requires that it be easy to use.
The data for testing the reports will be extracted from the old system in production and will be anonymized before use.
The system will be developed using an Agile lifecycle with iterations of fixed length. This will be the first full deployment of this methodology, which has just completed a successful pilot. It is a relatively simple development and is expected to be completed in three releases, each taking approximately 2 months.
You are an experienced TAE and have been recruited to implement test automation on this project and have started to evaluate candidate tools to automate functional and some non-functional testing. It is already clear that no single tool will meet all requirements, and that the developers’ existing Integrated Development Environment will meet the automation needs of their testing. The TAS will need to support CI/CD.
When reviewing your tool comparison table, what two tool capabilities will be MOST beneficial for this project?
i) The ability to support multiple and configurable test environments.
ii) The ability to manage test data in a way that supports version control of the data sets.
iii) The ability to be compatible with other tools that are likely to be used on the project.
iv) The ability to expand the overall test architecture and to be scalable and modifiable.
v) The ability for non-technical users to enter requests for customizable reports.